summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/SCsub168
-rw-r--r--tools/collada/SCsub2
-rw-r--r--tools/collada/collada.cpp66
-rw-r--r--tools/collada/collada.h2
-rw-r--r--tools/dist/ios_xcode/godot_xcode/godot_ios/main.m2
-rwxr-xr-xtools/dist/osx_template.app/Contents/Info.plist4
-rwxr-xr-xtools/dist/osx_tools.app/Contents/Info.plist8
-rw-r--r--tools/dist/uwp_template/AppxManifest.xml2
-rw-r--r--tools/doc/SCsub2
-rw-r--r--tools/doc/doc_data.cpp94
-rw-r--r--tools/doc/doc_data.h4
-rw-r--r--tools/doc/doc_dump.cpp37
-rw-r--r--tools/doc/doc_dump.h4
-rw-r--r--tools/editor/SCsub158
-rw-r--r--tools/editor/animation_editor.cpp402
-rw-r--r--tools/editor/animation_editor.h15
-rw-r--r--tools/editor/array_property_edit.cpp60
-rw-r--r--tools/editor/array_property_edit.h9
-rw-r--r--tools/editor/asset_library_editor_plugin.cpp132
-rw-r--r--tools/editor/asset_library_editor_plugin.h28
-rw-r--r--tools/editor/call_dialog.cpp33
-rw-r--r--tools/editor/call_dialog.h6
-rw-r--r--tools/editor/code_editor.cpp128
-rw-r--r--tools/editor/code_editor.h12
-rw-r--r--tools/editor/connections_dialog.cpp67
-rw-r--r--tools/editor/connections_dialog.h12
-rw-r--r--tools/editor/create_dialog.cpp95
-rw-r--r--tools/editor/create_dialog.h6
-rw-r--r--tools/editor/dependency_editor.cpp23
-rw-r--r--tools/editor/dependency_editor.h12
-rw-r--r--tools/editor/doc_code_font.h2
-rw-r--r--tools/editor/doc_font.h2
-rw-r--r--tools/editor/doc_title_font.h2
-rw-r--r--tools/editor/editor_asset_installer.cpp10
-rw-r--r--tools/editor/editor_asset_installer.h4
-rw-r--r--tools/editor/editor_audio_buses.cpp1192
-rw-r--r--tools/editor/editor_audio_buses.h186
-rw-r--r--tools/editor/editor_autoload_settings.cpp110
-rw-r--r--tools/editor/editor_autoload_settings.h4
-rw-r--r--tools/editor/editor_data.cpp31
-rw-r--r--tools/editor/editor_data.h4
-rw-r--r--tools/editor/editor_dir_dialog.cpp23
-rw-r--r--tools/editor/editor_dir_dialog.h4
-rw-r--r--tools/editor/editor_file_dialog.cpp145
-rw-r--r--tools/editor/editor_file_dialog.h10
-rw-r--r--tools/editor/editor_file_system.cpp61
-rw-r--r--tools/editor/editor_file_system.h8
-rw-r--r--tools/editor/editor_fonts.cpp19
-rw-r--r--tools/editor/editor_fonts.h2
-rw-r--r--tools/editor/editor_help.cpp503
-rw-r--r--tools/editor/editor_help.h12
-rw-r--r--tools/editor/editor_icons.h2
-rw-r--r--tools/editor/editor_import_export.cpp190
-rw-r--r--tools/editor/editor_import_export.h16
-rw-r--r--tools/editor/editor_initialize_ssl.cpp10
-rw-r--r--tools/editor/editor_initialize_ssl.h2
-rw-r--r--tools/editor/editor_log.cpp27
-rw-r--r--tools/editor/editor_log.h10
-rw-r--r--tools/editor/editor_name_dialog.cpp12
-rw-r--r--tools/editor/editor_name_dialog.h6
-rw-r--r--tools/editor/editor_node.cpp753
-rw-r--r--tools/editor/editor_node.h45
-rw-r--r--tools/editor/editor_path.cpp113
-rw-r--r--tools/editor/editor_path.h12
-rw-r--r--tools/editor/editor_plugin.cpp141
-rw-r--r--tools/editor/editor_plugin.h15
-rw-r--r--tools/editor/editor_plugin_settings.cpp9
-rw-r--r--tools/editor/editor_plugin_settings.h4
-rw-r--r--tools/editor/editor_profiler.cpp79
-rw-r--r--tools/editor/editor_profiler.h36
-rw-r--r--tools/editor/editor_reimport_dialog.cpp6
-rw-r--r--tools/editor/editor_reimport_dialog.h4
-rw-r--r--tools/editor/editor_resource_preview.cpp31
-rw-r--r--tools/editor/editor_resource_preview.h6
-rw-r--r--tools/editor/editor_run.cpp37
-rw-r--r--tools/editor/editor_run.h2
-rw-r--r--tools/editor/editor_run_native.cpp31
-rw-r--r--tools/editor/editor_run_native.h4
-rw-r--r--tools/editor/editor_run_script.cpp13
-rw-r--r--tools/editor/editor_run_script.h4
-rw-r--r--tools/editor/editor_scale.cpp29
-rw-r--r--tools/editor/editor_scale.h28
-rw-r--r--tools/editor/editor_settings.cpp436
-rw-r--r--tools/editor/editor_settings.h4
-rw-r--r--tools/editor/editor_sub_scene.cpp19
-rw-r--r--tools/editor/editor_sub_scene.h4
-rw-r--r--tools/editor/editor_themes.cpp10
-rw-r--r--tools/editor/editor_themes.h4
-rw-r--r--tools/editor/file_type_cache.cpp8
-rw-r--r--tools/editor/file_type_cache.h4
-rw-r--r--tools/editor/fileserver/SCsub2
-rw-r--r--tools/editor/fileserver/editor_file_server.cpp13
-rw-r--r--tools/editor/fileserver/editor_file_server.h4
-rw-r--r--tools/editor/filesystem_dock.cpp197
-rw-r--r--tools/editor/filesystem_dock.h22
-rw-r--r--tools/editor/groups_editor.cpp9
-rw-r--r--tools/editor/groups_editor.h4
-rw-r--r--tools/editor/icons/2x/icon_anchor.pngbin816 -> 828 bytes
-rw-r--r--tools/editor/icons/2x/icon_animation.pngbin907 -> 912 bytes
-rw-r--r--tools/editor/icons/2x/icon_area.pngbin231 -> 209 bytes
-rw-r--r--tools/editor/icons/2x/icon_auto_play.pngbin696 -> 699 bytes
-rw-r--r--tools/editor/icons/2x/icon_bit_map.pngbin0 -> 148 bytes
-rw-r--r--tools/editor/icons/2x/icon_bitmap_font.pngbin255 -> 191 bytes
-rw-r--r--tools/editor/icons/2x/icon_canvas_layer.pngbin857 -> 860 bytes
-rw-r--r--tools/editor/icons/2x/icon_canvas_modulate.pngbin536 -> 273 bytes
-rw-r--r--tools/editor/icons/2x/icon_color_rect.pngbin0 -> 289 bytes
-rw-r--r--tools/editor/icons/2x/icon_copy_node_path.pngbin0 -> 356 bytes
-rw-r--r--tools/editor/icons/2x/icon_create_new_scene_from.pngbin613 -> 639 bytes
-rw-r--r--tools/editor/icons/2x/icon_cube_map.pngbin0 -> 159 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_2d.pngbin0 -> 591 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_3d.pngbin0 -> 522 bytes
-rw-r--r--tools/editor/icons/2x/icon_dynamic_font_data.pngbin358 -> 379 bytes
-rw-r--r--tools/editor/icons/2x/icon_environment.pngbin0 -> 1270 bytes
-rw-r--r--tools/editor/icons/2x/icon_error.pngbin100 -> 155 bytes
-rw-r--r--tools/editor/icons/2x/icon_fixed_spatial_material.pngbin0 -> 768 bytes
-rw-r--r--tools/editor/icons/2x/icon_g_i_probe.pngbin0 -> 680 bytes
-rw-r--r--tools/editor/icons/2x/icon_g_i_probe_data.pngbin0 -> 662 bytes
-rw-r--r--tools/editor/icons/2x/icon_image_sky_box.pngbin0 -> 904 bytes
-rw-r--r--tools/editor/icons/2x/icon_interp_wrap_clamp.pngbin0 -> 348 bytes
-rw-r--r--tools/editor/icons/2x/icon_interp_wrap_loop.pngbin0 -> 548 bytes
-rw-r--r--tools/editor/icons/2x/icon_joypad.png (renamed from tools/editor/icons/2x/icon_joystick.png)bin380 -> 380 bytes
-rw-r--r--tools/editor/icons/2x/icon_key_next.pngbin534 -> 579 bytes
-rw-r--r--tools/editor/icons/2x/icon_large_texture.pngbin0 -> 211 bytes
-rw-r--r--tools/editor/icons/2x/icon_load.pngbin503 -> 523 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_shader.pngbin768 -> 342 bytes
-rw-r--r--tools/editor/icons/2x/icon_mesh_library.pngbin0 -> 631 bytes
-rw-r--r--tools/editor/icons/2x/icon_navigation_mesh.pngbin0 -> 806 bytes
-rw-r--r--tools/editor/icons/2x/icon_navigation_polygon.pngbin0 -> 640 bytes
-rw-r--r--tools/editor/icons/2x/icon_nine_patch_rect.png (renamed from tools/editor/icons/2x/icon_patch_9_frame.png)bin162 -> 162 bytes
-rw-r--r--tools/editor/icons/2x/icon_open.pngbin0 -> 228 bytes
-rw-r--r--tools/editor/icons/2x/icon_packed_data_container.pngbin0 -> 253 bytes
-rw-r--r--tools/editor/icons/2x/icon_particles_shader.pngbin0 -> 657 bytes
-rw-r--r--tools/editor/icons/2x/icon_patch_9_rect.pngbin0 -> 162 bytes
-rw-r--r--tools/editor/icons/2x/icon_polygon_path_finder.pngbin0 -> 491 bytes
-rw-r--r--tools/editor/icons/2x/icon_reference_rect.png (renamed from tools/editor/icons/2x/icon_reference_frame.png)bin160 -> 160 bytes
-rw-r--r--tools/editor/icons/2x/icon_reflection_probe.pngbin0 -> 533 bytes
-rw-r--r--tools/editor/icons/2x/icon_reparent.pngbin631 -> 741 bytes
-rw-r--r--tools/editor/icons/2x/icon_room.pngbin666 -> 567 bytes
-rw-r--r--tools/editor/icons/2x/icon_room_bounds.pngbin0 -> 631 bytes
-rw-r--r--tools/editor/icons/2x/icon_sample_library.pngbin0 -> 568 bytes
-rw-r--r--tools/editor/icons/2x/icon_script_create.pngbin0 -> 491 bytes
-rw-r--r--tools/editor/icons/2x/icon_script_remove.pngbin0 -> 787 bytes
-rw-r--r--tools/editor/icons/2x/icon_shader.pngbin768 -> 342 bytes
-rw-r--r--tools/editor/icons/2x/icon_shader_material.pngbin768 -> 342 bytes
-rw-r--r--tools/editor/icons/2x/icon_short_cut.pngbin0 -> 473 bytes
-rw-r--r--tools/editor/icons/2x/icon_spatial_shader.pngbin0 -> 704 bytes
-rw-r--r--tools/editor/icons/2x/icon_spot_light.pngbin714 -> 669 bytes
-rw-r--r--tools/editor/icons/2x/icon_sprite_frames.pngbin0 -> 691 bytes
-rw-r--r--tools/editor/icons/2x/icon_style_box_empty.pngbin0 -> 555 bytes
-rw-r--r--tools/editor/icons/2x/icon_style_box_flat.pngbin0 -> 695 bytes
-rw-r--r--tools/editor/icons/2x/icon_style_box_texture.pngbin0 -> 693 bytes
-rw-r--r--tools/editor/icons/2x/icon_tab_container.pngbin330 -> 334 bytes
-rw-r--r--tools/editor/icons/2x/icon_tabs.pngbin210 -> 222 bytes
-rw-r--r--tools/editor/icons/2x/icon_test_cube.pngbin612 -> 596 bytes
-rw-r--r--tools/editor/icons/2x/icon_texture_rect.png (renamed from tools/editor/icons/2x/icon_texture_frame.png)bin201 -> 201 bytes
-rw-r--r--tools/editor/icons/2x/icon_theme.pngbin0 -> 809 bytes
-rw-r--r--tools/editor/icons/2x/icon_tile_set.pngbin0 -> 242 bytes
-rw-r--r--tools/editor/icons/2x/icon_track_add_key.pngbin125 -> 127 bytes
-rw-r--r--tools/editor/icons/2x/icon_track_add_key_hl.pngbin126 -> 128 bytes
-rw-r--r--tools/editor/icons/2x/icon_viewport_container.pngbin0 -> 528 bytes
-rw-r--r--tools/editor/icons/2x/icon_viewport_texture.pngbin0 -> 404 bytes
-rw-r--r--tools/editor/icons/2x/icon_warning.pngbin100 -> 154 bytes
-rw-r--r--tools/editor/icons/2x/icon_world.pngbin0 -> 502 bytes
-rw-r--r--tools/editor/icons/2x/icon_world_2d.pngbin0 -> 584 bytes
-rw-r--r--tools/editor/icons/SCsub128
-rw-r--r--tools/editor/icons/icon_accept_dialog.pngbin336 -> 338 bytes
-rw-r--r--tools/editor/icons/icon_anchor.pngbin441 -> 451 bytes
-rw-r--r--tools/editor/icons/icon_animation.pngbin398 -> 399 bytes
-rw-r--r--tools/editor/icons/icon_area.pngbin196 -> 176 bytes
-rw-r--r--tools/editor/icons/icon_audio_effect_amplify.pngbin0 -> 379 bytes
-rw-r--r--tools/editor/icons/icon_auto_play.pngbin375 -> 370 bytes
-rw-r--r--tools/editor/icons/icon_bit_map.pngbin0 -> 113 bytes
-rw-r--r--tools/editor/icons/icon_bitmap_font.pngbin218 -> 160 bytes
-rw-r--r--tools/editor/icons/icon_bus_vu_db.pngbin0 -> 1136 bytes
-rw-r--r--tools/editor/icons/icon_bus_vu_empty.pngbin0 -> 1631 bytes
-rw-r--r--tools/editor/icons/icon_bus_vu_frozen.pngbin0 -> 267 bytes
-rw-r--r--tools/editor/icons/icon_bus_vu_full.pngbin0 -> 2463 bytes
-rw-r--r--tools/editor/icons/icon_canvas_layer.pngbin478 -> 474 bytes
-rw-r--r--tools/editor/icons/icon_canvas_modulate.pngbin348 -> 213 bytes
-rw-r--r--tools/editor/icons/icon_color_frame.pngbin360 -> 0 bytes
-rw-r--r--tools/editor/icons/icon_color_rect.pngbin0 -> 214 bytes
-rw-r--r--tools/editor/icons/icon_copy_node_path.pngbin0 -> 248 bytes
-rw-r--r--tools/editor/icons/icon_create_new_scene_from.pngbin322 -> 349 bytes
-rw-r--r--tools/editor/icons/icon_cube_map.pngbin0 -> 134 bytes
-rw-r--r--tools/editor/icons/icon_curve_2d.pngbin0 -> 342 bytes
-rw-r--r--tools/editor/icons/icon_curve_3d.pngbin0 -> 336 bytes
-rw-r--r--tools/editor/icons/icon_dynamic_font_data.pngbin237 -> 246 bytes
-rw-r--r--tools/editor/icons/icon_environment.pngbin0 -> 588 bytes
-rw-r--r--tools/editor/icons/icon_error.pngbin95 -> 121 bytes
-rw-r--r--tools/editor/icons/icon_fixed_spatial_material.pngbin0 -> 409 bytes
-rw-r--r--tools/editor/icons/icon_g_i_probe.pngbin0 -> 341 bytes
-rw-r--r--tools/editor/icons/icon_g_i_probe_data.pngbin0 -> 350 bytes
-rw-r--r--tools/editor/icons/icon_image_sky_box.pngbin0 -> 434 bytes
-rw-r--r--tools/editor/icons/icon_interp_wrap_clamp.pngbin0 -> 233 bytes
-rw-r--r--tools/editor/icons/icon_interp_wrap_loop.pngbin0 -> 309 bytes
-rw-r--r--tools/editor/icons/icon_joypad.png (renamed from tools/editor/icons/icon_joystick.png)bin239 -> 239 bytes
-rw-r--r--tools/editor/icons/icon_key_next.pngbin302 -> 321 bytes
-rw-r--r--tools/editor/icons/icon_large_texture.pngbin0 -> 156 bytes
-rw-r--r--tools/editor/icons/icon_load.pngbin301 -> 271 bytes
-rw-r--r--tools/editor/icons/icon_material_shader.pngbin409 -> 254 bytes
-rw-r--r--tools/editor/icons/icon_mesh_library.pngbin0 -> 349 bytes
-rw-r--r--tools/editor/icons/icon_navigation_mesh.pngbin0 -> 450 bytes
-rw-r--r--tools/editor/icons/icon_navigation_polygon.pngbin0 -> 384 bytes
-rw-r--r--tools/editor/icons/icon_nine_patch_rect.png (renamed from tools/editor/icons/icon_patch_9_frame.png)bin128 -> 128 bytes
-rw-r--r--tools/editor/icons/icon_open.pngbin0 -> 170 bytes
-rw-r--r--tools/editor/icons/icon_packed_data_container.pngbin0 -> 176 bytes
-rw-r--r--tools/editor/icons/icon_particles_shader.pngbin0 -> 367 bytes
-rw-r--r--tools/editor/icons/icon_patch_9_rect.pngbin0 -> 128 bytes
-rw-r--r--tools/editor/icons/icon_polygon_path_finder.pngbin0 -> 307 bytes
-rw-r--r--tools/editor/icons/icon_reference_rect.png (renamed from tools/editor/icons/icon_reference_frame.png)bin128 -> 128 bytes
-rw-r--r--tools/editor/icons/icon_reflection_probe.pngbin0 -> 370 bytes
-rw-r--r--tools/editor/icons/icon_reparent.pngbin320 -> 390 bytes
-rw-r--r--tools/editor/icons/icon_room.pngbin333 -> 375 bytes
-rw-r--r--tools/editor/icons/icon_room_bounds.pngbin0 -> 363 bytes
-rw-r--r--tools/editor/icons/icon_sample_library.pngbin0 -> 333 bytes
-rw-r--r--tools/editor/icons/icon_script_create.pngbin0 -> 288 bytes
-rw-r--r--tools/editor/icons/icon_script_remove.pngbin0 -> 411 bytes
-rw-r--r--tools/editor/icons/icon_shader.pngbin409 -> 254 bytes
-rw-r--r--tools/editor/icons/icon_shader_material.pngbin409 -> 254 bytes
-rw-r--r--tools/editor/icons/icon_short_cut.pngbin0 -> 272 bytes
-rw-r--r--tools/editor/icons/icon_spatial_shader.pngbin0 -> 483 bytes
-rw-r--r--tools/editor/icons/icon_spot_light.pngbin359 -> 341 bytes
-rw-r--r--tools/editor/icons/icon_sprite_frames.pngbin0 -> 332 bytes
-rw-r--r--tools/editor/icons/icon_style_box_empty.pngbin0 -> 333 bytes
-rw-r--r--tools/editor/icons/icon_style_box_flat.pngbin0 -> 398 bytes
-rw-r--r--tools/editor/icons/icon_style_box_texture.pngbin0 -> 411 bytes
-rw-r--r--tools/editor/icons/icon_tab_container.pngbin215 -> 214 bytes
-rw-r--r--tools/editor/icons/icon_tabs.pngbin147 -> 146 bytes
-rw-r--r--tools/editor/icons/icon_test_cube.pngbin392 -> 435 bytes
-rw-r--r--tools/editor/icons/icon_texture_rect.png (renamed from tools/editor/icons/icon_texture_frame.png)bin158 -> 158 bytes
-rw-r--r--tools/editor/icons/icon_theme.pngbin0 -> 451 bytes
-rw-r--r--tools/editor/icons/icon_tile_set.pngbin0 -> 174 bytes
-rw-r--r--tools/editor/icons/icon_track_add_key.pngbin113 -> 113 bytes
-rw-r--r--tools/editor/icons/icon_track_add_key_hl.pngbin113 -> 113 bytes
-rw-r--r--tools/editor/icons/icon_viewport_container.pngbin0 -> 284 bytes
-rw-r--r--tools/editor/icons/icon_viewport_texture.pngbin0 -> 227 bytes
-rw-r--r--tools/editor/icons/icon_vu_db.pngbin0 -> 1015 bytes
-rw-r--r--tools/editor/icons/icon_warning.pngbin95 -> 120 bytes
-rw-r--r--tools/editor/icons/icon_world.pngbin0 -> 254 bytes
-rw-r--r--tools/editor/icons/icon_world_2d.pngbin0 -> 328 bytes
-rw-r--r--tools/editor/icons/source/icon_accept_dialog.svg14
-rw-r--r--tools/editor/icons/source/icon_add_track.svg28
-rw-r--r--tools/editor/icons/source/icon_anchor.svg27
-rw-r--r--tools/editor/icons/source/icon_animation.svg53
-rw-r--r--tools/editor/icons/source/icon_area.svg99
-rw-r--r--tools/editor/icons/source/icon_area_2d.svg99
-rw-r--r--tools/editor/icons/source/icon_arrow_left.svg32
-rw-r--r--tools/editor/icons/source/icon_arrow_right.svg11
-rw-r--r--tools/editor/icons/source/icon_auto_play.svg45
-rw-r--r--tools/editor/icons/source/icon_back_buffer_copy.svg61
-rw-r--r--tools/editor/icons/source/icon_bake.svg22
-rw-r--r--tools/editor/icons/source/icon_baked_light.svg24
-rw-r--r--tools/editor/icons/source/icon_baked_light_instance.svg20
-rw-r--r--tools/editor/icons/source/icon_baked_light_sampler.svg18
-rw-r--r--tools/editor/icons/source/icon_bit_map.svg82
-rw-r--r--tools/editor/icons/source/icon_bitmap_font.svg66
-rw-r--r--tools/editor/icons/source/icon_canvas_layer.svg38
-rw-r--r--tools/editor/icons/source/icon_canvas_modulate.svg102
-rw-r--r--tools/editor/icons/source/icon_color_rect.svg156
-rw-r--r--tools/editor/icons/source/icon_connect.svg58
-rw-r--r--tools/editor/icons/source/icon_connection_and_groups.svg101
-rw-r--r--tools/editor/icons/source/icon_copy_node_path.svg98
-rw-r--r--tools/editor/icons/source/icon_create_new_scene_from.svg29
-rw-r--r--tools/editor/icons/source/icon_cube_map.svg120
-rw-r--r--tools/editor/icons/source/icon_curve_2d.svg82
-rw-r--r--tools/editor/icons/source/icon_curve_3d.svg82
-rw-r--r--tools/editor/icons/source/icon_dynamic_font_data.svg10
-rw-r--r--tools/editor/icons/source/icon_environment.svg82
-rw-r--r--tools/editor/icons/source/icon_error.svg7
-rw-r--r--tools/editor/icons/source/icon_fixed_spatial_material.svg169
-rw-r--r--tools/editor/icons/source/icon_g_i_probe.svg110
-rw-r--r--tools/editor/icons/source/icon_g_i_probe_data.svg108
-rw-r--r--tools/editor/icons/source/icon_image_sky_box.svg116
-rw-r--r--tools/editor/icons/source/icon_interp_wrap_clamp.svg110
-rw-r--r--tools/editor/icons/source/icon_interp_wrap_loop.svg121
-rw-r--r--tools/editor/icons/source/icon_joypad.svg (renamed from tools/editor/icons/source/icon_joystick.svg)2
-rw-r--r--tools/editor/icons/source/icon_key_next.svg31
-rw-r--r--tools/editor/icons/source/icon_large_texture.svg80
-rw-r--r--tools/editor/icons/source/icon_load.svg84
-rw-r--r--tools/editor/icons/source/icon_mesh_library.svg78
-rw-r--r--tools/editor/icons/source/icon_navigation_mesh.svg78
-rw-r--r--tools/editor/icons/source/icon_navigation_polygon.svg88
-rw-r--r--tools/editor/icons/source/icon_nine_patch_rect.svg (renamed from tools/editor/icons/source/icon_patch_9_frame.svg)0
-rw-r--r--tools/editor/icons/source/icon_packed_data_container.svg138
-rw-r--r--tools/editor/icons/source/icon_particles_shader.svg159
-rw-r--r--tools/editor/icons/source/icon_patch_9_rect.svg130
-rw-r--r--tools/editor/icons/source/icon_polygon_path_finder.svg77
-rw-r--r--tools/editor/icons/source/icon_reference_rect.svg (renamed from tools/editor/icons/source/icon_reference_frame.svg)2
-rw-r--r--tools/editor/icons/source/icon_reflection_probe.svg82
-rw-r--r--tools/editor/icons/source/icon_reparent.svg57
-rw-r--r--tools/editor/icons/source/icon_room.svg29
-rw-r--r--tools/editor/icons/source/icon_room_bounds.svg78
-rw-r--r--tools/editor/icons/source/icon_sample_library.svg87
-rw-r--r--tools/editor/icons/source/icon_script_create.svg99
-rw-r--r--tools/editor/icons/source/icon_script_remove.svg99
-rw-r--r--tools/editor/icons/source/icon_shader.svg141
-rw-r--r--tools/editor/icons/source/icon_short_cut.svg89
-rw-r--r--tools/editor/icons/source/icon_spatial_shader.svg165
-rw-r--r--tools/editor/icons/source/icon_spot_light.svg50
-rw-r--r--tools/editor/icons/source/icon_sprite_frames.svg119
-rw-r--r--tools/editor/icons/source/icon_static_body.svg66
-rw-r--r--tools/editor/icons/source/icon_static_body_2d.svg43
-rw-r--r--tools/editor/icons/source/icon_style_box_empty.svg140
-rw-r--r--tools/editor/icons/source/icon_style_box_flat.svg149
-rw-r--r--tools/editor/icons/source/icon_style_box_texture.svg140
-rw-r--r--tools/editor/icons/source/icon_tab_container.svg28
-rw-r--r--tools/editor/icons/source/icon_tabs.svg46
-rw-r--r--tools/editor/icons/source/icon_test_cube.svg20
-rw-r--r--tools/editor/icons/source/icon_text_edit.svg27
-rw-r--r--tools/editor/icons/source/icon_texture_rect.svg (renamed from tools/editor/icons/source/icon_texture_frame.svg)2
-rw-r--r--tools/editor/icons/source/icon_theme.svg144
-rw-r--r--tools/editor/icons/source/icon_tile_set.svg80
-rw-r--r--tools/editor/icons/source/icon_track_add_key.svg6
-rw-r--r--tools/editor/icons/source/icon_track_add_key_hl.svg15
-rw-r--r--tools/editor/icons/source/icon_viewport.svg22
-rw-r--r--tools/editor/icons/source/icon_viewport_container.svg82
-rw-r--r--tools/editor/icons/source/icon_viewport_texture.svg80
-rw-r--r--tools/editor/icons/source/icon_warning.svg17
-rw-r--r--tools/editor/icons/source/icon_world.svg89
-rw-r--r--tools/editor/icons/source/icon_world_2d.svg82
-rw-r--r--tools/editor/inspector_dock.cpp2
-rw-r--r--tools/editor/inspector_dock.h4
-rw-r--r--tools/editor/io_plugins/SCsub2
-rw-r--r--tools/editor/io_plugins/editor_atlas.cpp3
-rw-r--r--tools/editor/io_plugins/editor_atlas.h2
-rw-r--r--tools/editor/io_plugins/editor_bitmask_import_plugin.cpp55
-rw-r--r--tools/editor/io_plugins/editor_bitmask_import_plugin.h32
-rw-r--r--tools/editor/io_plugins/editor_export_scene.cpp7
-rw-r--r--tools/editor/io_plugins/editor_export_scene.h4
-rw-r--r--tools/editor/io_plugins/editor_font_import_plugin.cpp132
-rw-r--r--tools/editor/io_plugins/editor_font_import_plugin.h4
-rw-r--r--tools/editor/io_plugins/editor_import_collada.cpp318
-rw-r--r--tools/editor/io_plugins/editor_import_collada.h4
-rw-r--r--tools/editor/io_plugins/editor_mesh_import_plugin.cpp24
-rw-r--r--tools/editor/io_plugins/editor_mesh_import_plugin.h4
-rw-r--r--tools/editor/io_plugins/editor_sample_import_plugin.cpp74
-rw-r--r--tools/editor/io_plugins/editor_sample_import_plugin.h10
-rw-r--r--tools/editor/io_plugins/editor_scene_import_plugin.cpp171
-rw-r--r--tools/editor/io_plugins/editor_scene_import_plugin.h11
-rw-r--r--tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp62
-rw-r--r--tools/editor/io_plugins/editor_scene_importer_fbxconv.h6
-rw-r--r--tools/editor/io_plugins/editor_texture_import_plugin.cpp193
-rw-r--r--tools/editor/io_plugins/editor_texture_import_plugin.h8
-rw-r--r--tools/editor/io_plugins/editor_translation_import_plugin.cpp29
-rw-r--r--tools/editor/io_plugins/editor_translation_import_plugin.h4
-rw-r--r--tools/editor/multi_node_edit.cpp3
-rw-r--r--tools/editor/multi_node_edit.h4
-rw-r--r--tools/editor/node_dock.cpp33
-rw-r--r--tools/editor/node_dock.h30
-rw-r--r--tools/editor/output_strings.cpp14
-rw-r--r--tools/editor/output_strings.h4
-rw-r--r--tools/editor/pane_drag.cpp6
-rw-r--r--tools/editor/pane_drag.h6
-rw-r--r--tools/editor/plugins/SCsub2
-rw-r--r--tools/editor/plugins/animation_player_editor_plugin.cpp144
-rw-r--r--tools/editor/plugins/animation_player_editor_plugin.h10
-rw-r--r--tools/editor/plugins/animation_tree_editor_plugin.cpp128
-rw-r--r--tools/editor/plugins/animation_tree_editor_plugin.h8
-rw-r--r--tools/editor/plugins/baked_light_baker.cpp103
-rw-r--r--tools/editor/plugins/baked_light_baker.h18
-rw-r--r--tools/editor/plugins/baked_light_baker_cmpxchg.cpp2
-rw-r--r--tools/editor/plugins/baked_light_editor_plugin.cpp26
-rw-r--r--tools/editor/plugins/baked_light_editor_plugin.h16
-rw-r--r--tools/editor/plugins/camera_editor_plugin.cpp11
-rw-r--r--tools/editor/plugins/camera_editor_plugin.h8
-rw-r--r--tools/editor/plugins/canvas_item_editor_plugin.cpp451
-rw-r--r--tools/editor/plugins/canvas_item_editor_plugin.h35
-rw-r--r--tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp20
-rw-r--r--tools/editor/plugins/collision_polygon_2d_editor_plugin.h10
-rw-r--r--tools/editor/plugins/collision_polygon_editor_plugin.cpp42
-rw-r--r--tools/editor/plugins/collision_polygon_editor_plugin.h18
-rw-r--r--tools/editor/plugins/collision_shape_2d_editor_plugin.cpp15
-rw-r--r--tools/editor/plugins/collision_shape_2d_editor_plugin.h10
-rw-r--r--tools/editor/plugins/color_ramp_editor_plugin.cpp11
-rw-r--r--tools/editor/plugins/color_ramp_editor_plugin.h4
-rw-r--r--tools/editor/plugins/cube_grid_theme_editor_plugin.cpp25
-rw-r--r--tools/editor/plugins/cube_grid_theme_editor_plugin.h9
-rw-r--r--tools/editor/plugins/editor_preview_plugins.cpp98
-rw-r--r--tools/editor/plugins/editor_preview_plugins.h9
-rw-r--r--tools/editor/plugins/gi_probe_editor_plugin.cpp85
-rw-r--r--tools/editor/plugins/gi_probe_editor_plugin.h65
-rw-r--r--tools/editor/plugins/item_list_editor_plugin.cpp20
-rw-r--r--tools/editor/plugins/item_list_editor_plugin.h12
-rw-r--r--tools/editor/plugins/light_occluder_2d_editor_plugin.cpp22
-rw-r--r--tools/editor/plugins/light_occluder_2d_editor_plugin.h10
-rw-r--r--tools/editor/plugins/material_editor_plugin.cpp64
-rw-r--r--tools/editor/plugins/material_editor_plugin.h37
-rw-r--r--tools/editor/plugins/mesh_editor_plugin.cpp18
-rw-r--r--tools/editor/plugins/mesh_editor_plugin.h11
-rw-r--r--tools/editor/plugins/mesh_instance_editor_plugin.cpp42
-rw-r--r--tools/editor/plugins/mesh_instance_editor_plugin.h32
-rw-r--r--tools/editor/plugins/multimesh_editor_plugin.cpp78
-rw-r--r--tools/editor/plugins/multimesh_editor_plugin.h6
-rw-r--r--tools/editor/plugins/navigation_polygon_editor_plugin.cpp42
-rw-r--r--tools/editor/plugins/navigation_polygon_editor_plugin.h12
-rw-r--r--tools/editor/plugins/particles_2d_editor_plugin.cpp32
-rw-r--r--tools/editor/plugins/particles_2d_editor_plugin.h4
-rw-r--r--tools/editor/plugins/particles_editor_plugin.cpp27
-rw-r--r--tools/editor/plugins/particles_editor_plugin.h11
-rw-r--r--tools/editor/plugins/path_2d_editor_plugin.cpp30
-rw-r--r--tools/editor/plugins/path_2d_editor_plugin.h10
-rw-r--r--tools/editor/plugins/path_editor_plugin.cpp37
-rw-r--r--tools/editor/plugins/path_editor_plugin.h17
-rw-r--r--tools/editor/plugins/polygon_2d_editor_plugin.cpp115
-rw-r--r--tools/editor/plugins/polygon_2d_editor_plugin.h14
-rw-r--r--tools/editor/plugins/resource_preloader_editor_plugin.cpp51
-rw-r--r--tools/editor/plugins/resource_preloader_editor_plugin.h8
-rw-r--r--tools/editor/plugins/rich_text_editor_plugin.cpp11
-rw-r--r--tools/editor/plugins/rich_text_editor_plugin.h6
-rw-r--r--tools/editor/plugins/sample_editor_plugin.cpp35
-rw-r--r--tools/editor/plugins/sample_editor_plugin.h14
-rw-r--r--tools/editor/plugins/sample_library_editor_plugin.cpp51
-rw-r--r--tools/editor/plugins/sample_library_editor_plugin.h13
-rw-r--r--tools/editor/plugins/sample_player_editor_plugin.cpp15
-rw-r--r--tools/editor/plugins/sample_player_editor_plugin.h9
-rw-r--r--tools/editor/plugins/script_editor_plugin.cpp232
-rw-r--r--tools/editor/plugins/script_editor_plugin.h19
-rw-r--r--tools/editor/plugins/script_text_editor.cpp158
-rw-r--r--tools/editor/plugins/script_text_editor.h8
-rw-r--r--tools/editor/plugins/shader_editor_plugin.cpp282
-rw-r--r--tools/editor/plugins/shader_editor_plugin.h31
-rw-r--r--tools/editor/plugins/shader_graph_editor_plugin.cpp157
-rw-r--r--tools/editor/plugins/shader_graph_editor_plugin.h20
-rw-r--r--tools/editor/plugins/spatial_editor_plugin.cpp522
-rw-r--r--tools/editor/plugins/spatial_editor_plugin.h36
-rw-r--r--tools/editor/plugins/sprite_frames_editor_plugin.cpp64
-rw-r--r--tools/editor/plugins/sprite_frames_editor_plugin.h10
-rw-r--r--tools/editor/plugins/stream_editor_plugin.cpp11
-rw-r--r--tools/editor/plugins/stream_editor_plugin.h9
-rw-r--r--tools/editor/plugins/style_box_editor_plugin.cpp14
-rw-r--r--tools/editor/plugins/style_box_editor_plugin.h8
-rw-r--r--tools/editor/plugins/texture_editor_plugin.cpp40
-rw-r--r--tools/editor/plugins/texture_editor_plugin.h34
-rw-r--r--tools/editor/plugins/texture_region_editor_plugin.cpp107
-rw-r--r--tools/editor/plugins/texture_region_editor_plugin.h14
-rw-r--r--tools/editor/plugins/theme_editor_plugin.cpp41
-rw-r--r--tools/editor/plugins/theme_editor_plugin.h8
-rw-r--r--tools/editor/plugins/tile_map_editor_plugin.cpp191
-rw-r--r--tools/editor/plugins/tile_map_editor_plugin.h27
-rw-r--r--tools/editor/plugins/tile_set_editor_plugin.cpp16
-rw-r--r--tools/editor/plugins/tile_set_editor_plugin.h6
-rw-r--r--tools/editor/progress_dialog.cpp24
-rw-r--r--tools/editor/progress_dialog.h6
-rw-r--r--tools/editor/project_export.cpp389
-rw-r--r--tools/editor/project_export.h21
-rw-r--r--tools/editor/project_manager.cpp204
-rw-r--r--tools/editor/project_manager.h12
-rw-r--r--tools/editor/project_settings.cpp313
-rw-r--r--tools/editor/project_settings.h4
-rw-r--r--tools/editor/property_editor.cpp632
-rw-r--r--tools/editor/property_editor.h27
-rw-r--r--tools/editor/property_selector.cpp64
-rw-r--r--tools/editor/property_selector.h30
-rw-r--r--tools/editor/pvrtc_compress.cpp10
-rw-r--r--tools/editor/pvrtc_compress.h2
-rw-r--r--tools/editor/quick_open.cpp18
-rw-r--r--tools/editor/quick_open.h4
-rw-r--r--tools/editor/register_exporters.h2
-rw-r--r--tools/editor/reparent_dialog.cpp12
-rw-r--r--tools/editor/reparent_dialog.h4
-rw-r--r--tools/editor/resources_dock.cpp39
-rw-r--r--tools/editor/resources_dock.h4
-rw-r--r--tools/editor/run_settings_dialog.cpp8
-rw-r--r--tools/editor/run_settings_dialog.h4
-rw-r--r--tools/editor/scene_tree_dock.cpp292
-rw-r--r--tools/editor/scene_tree_dock.h14
-rw-r--r--tools/editor/scene_tree_editor.cpp174
-rw-r--r--tools/editor/scene_tree_editor.h11
-rw-r--r--tools/editor/script_create_dialog.cpp151
-rw-r--r--tools/editor/script_create_dialog.h8
-rw-r--r--tools/editor/script_editor_debugger.cpp126
-rw-r--r--tools/editor/script_editor_debugger.h5
-rw-r--r--tools/editor/settings_config_dialog.cpp29
-rw-r--r--tools/editor/settings_config_dialog.h4
-rw-r--r--tools/editor/spatial_editor_gizmos.cpp713
-rw-r--r--tools/editor/spatial_editor_gizmos.h176
-rw-r--r--tools/scripts/addheader.py72
-rwxr-xr-xtools/scripts/file-hex-array.py60
-rw-r--r--tools/scripts/make_bmfhdr.py111
-rw-r--r--tools/scripts/make_glwrapper.py143
-rw-r--r--tools/scripts/makeargs.py36
-rw-r--r--tools/scripts/memsort.py36
-rw-r--r--tools/scripts/svgs_2_pngs.py45
-rw-r--r--tools/translations/ar.po244
-rw-r--r--tools/translations/bg.po252
-rw-r--r--tools/translations/bn.po3064
-rw-r--r--tools/translations/ca.po323
-rw-r--r--tools/translations/cs.po252
-rw-r--r--tools/translations/da.po251
-rw-r--r--tools/translations/de.po393
-rw-r--r--tools/translations/de_CH.po249
-rw-r--r--tools/translations/es.po354
-rw-r--r--tools/translations/es_AR.po403
-rwxr-xr-xtools/translations/extract.py134
-rw-r--r--tools/translations/fa.po260
-rw-r--r--tools/translations/fr.po616
-rw-r--r--tools/translations/hu.po (renamed from tools/translations/is.po)251
-rw-r--r--tools/translations/id.po287
-rw-r--r--tools/translations/it.po401
-rw-r--r--tools/translations/ja.po261
-rw-r--r--tools/translations/ko.po393
-rw-r--r--tools/translations/nb.po239
-rw-r--r--tools/translations/pl.po337
-rw-r--r--tools/translations/pr.po (renamed from tools/translations/ro.po)328
-rw-r--r--tools/translations/pt_BR.po300
-rw-r--r--tools/translations/pt_PT.po239
-rw-r--r--tools/translations/ru.po408
-rw-r--r--tools/translations/sk.po254
-rw-r--r--tools/translations/sl.po239
-rw-r--r--tools/translations/tools.pot239
-rw-r--r--tools/translations/tr.po3163
-rw-r--r--tools/translations/ur_PK.po254
-rw-r--r--tools/translations/zh_CN.po568
-rw-r--r--tools/translations/zh_HK.po267
-rw-r--r--tools/translations/zh_TW.po321
515 files changed, 23655 insertions, 13749 deletions
diff --git a/tools/SCsub b/tools/SCsub
index b0b33d4f01..43cad794d4 100644
--- a/tools/SCsub
+++ b/tools/SCsub
@@ -2,124 +2,120 @@
Import('env')
-env.tool_sources=[]
-env.add_source_files(env.tool_sources,"*.cpp")
+env.tool_sources = []
+env.add_source_files(env.tool_sources, "*.cpp")
Export('env')
-def make_translations_header(target,source,env):
+def make_translations_header(target, source, env):
+ dst = target[0].srcnode().abspath
- dst = target[0].srcnode().abspath
+ g = open(dst, "wb")
- g = open(dst,"wb")
-
-
- """"
+ """"
"""
- g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
- g.write("#ifndef _EDITOR_TRANSLATIONS_H\n")
- g.write("#define _EDITOR_TRANSLATIONS_H\n")
-
- import zlib
- import os.path
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef _EDITOR_TRANSLATIONS_H\n")
+ g.write("#define _EDITOR_TRANSLATIONS_H\n")
- paths = [node.srcnode().abspath for node in source]
- sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[0])
+ import zlib
+ import os.path
- xl_names=[]
- for i in range(len(sorted_paths)):
- print("Appending translation: "+sorted_paths[i])
- f = open(sorted_paths[i],"rb")
- buf = f.read()
- decomp_size = len(buf)
- buf = zlib.compress(buf)
- name = os.path.splitext(os.path.basename(sorted_paths[i]))[0]
+ paths = [node.srcnode().abspath for node in source]
+ sorted_paths = sorted(paths, key=lambda path: os.path.splitext(os.path.basename(path))[0])
- #g.write("static const int _translation_"+name+"_compressed_size="+str(len(buf))+";\n")
- #g.write("static const int _translation_"+name+"_uncompressed_size="+str(decomp_size)+";\n")
- g.write("static const unsigned char _translation_"+name+"_compressed[]={\n")
- for i in range(len(buf)):
- g.write(str(ord(buf[i]))+",\n")
+ xl_names = []
+ for i in range(len(sorted_paths)):
+ print("Appending translation: " + sorted_paths[i])
+ f = open(sorted_paths[i], "rb")
+ buf = f.read()
+ decomp_size = len(buf)
+ buf = zlib.compress(buf)
+ name = os.path.splitext(os.path.basename(sorted_paths[i]))[0]
- g.write("};\n")
+ #g.write("static const int _translation_"+name+"_compressed_size="+str(len(buf))+";\n")
+ #g.write("static const int _translation_"+name+"_uncompressed_size="+str(decomp_size)+";\n")
+ g.write("static const unsigned char _translation_" + name + "_compressed[]={\n")
+ for i in range(len(buf)):
+ g.write(str(ord(buf[i])) + ",\n")
- xl_names.append([name,len(buf),str(decomp_size)])
+ g.write("};\n")
- g.write("struct EditorTranslationList {\n")
- g.write("\tconst char* lang;\n");
- g.write("\tint comp_size;\n");
- g.write("\tint uncomp_size;\n");
- g.write("\tconst unsigned char* data;\n");
- g.write("};\n\n");
- g.write("static EditorTranslationList _editor_translations[]={\n")
- for x in xl_names:
- g.write("\t{ \""+x[0]+"\", "+str(x[1])+", "+str(x[2])+",_translation_"+x[0]+"_compressed},\n")
- g.write("\t{NULL,0,0,NULL}\n")
- g.write("};\n")
+ xl_names.append([name, len(buf), str(decomp_size)])
- g.write("#endif")
+ g.write("struct EditorTranslationList {\n")
+ g.write("\tconst char* lang;\n")
+ g.write("\tint comp_size;\n")
+ g.write("\tint uncomp_size;\n")
+ g.write("\tconst unsigned char* data;\n")
+ g.write("};\n\n")
+ g.write("static EditorTranslationList _editor_translations[]={\n")
+ for x in xl_names:
+ g.write("\t{ \"" + x[0] + "\", " + str(x[1]) + ", " + str(x[2]) + ",_translation_" + x[0] + "_compressed},\n")
+ g.write("\t{NULL,0,0,NULL}\n")
+ g.write("};\n")
+ g.write("#endif")
-def make_fonts_header(target,source,env):
+def make_fonts_header(target, source, env):
- dst = target[0].srcnode().abspath
+ dst = target[0].srcnode().abspath
- g = open(dst,"wb")
+ g = open(dst, "wb")
-
- """"
+ """"
"""
- g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
- g.write("#ifndef _EDITOR_FONTS_H\n")
- g.write("#define _EDITOR_FONTS_H\n")
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef _EDITOR_FONTS_H\n")
+ g.write("#define _EDITOR_FONTS_H\n")
+
+ # saving uncompressed, since freetype will reference from memory pointer
+ xl_names = []
+ for i in range(len(source)):
+ print("Appending font: " + source[i].srcnode().abspath)
+ f = open(source[i].srcnode().abspath, "rb")
+ buf = f.read()
+ import os.path
+
+ name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0]
+
+ g.write("static const int _font_" + name + "_size=" + str(len(buf)) + ";\n")
+ g.write("static const unsigned char _font_" + name + "[]={\n")
+ for i in range(len(buf)):
+ g.write(str(ord(buf[i])) + ",\n")
+
+ g.write("};\n")
- #saving uncompressed, since freetype will reference from memory pointer
- xl_names=[]
- for i in range(len(source)):
- print("Appending font: "+source[i].srcnode().abspath)
- f = open(source[i].srcnode().abspath,"rb")
- buf = f.read()
- import os.path
-
- name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0]
+ g.write("#endif")
- g.write("static const int _font_"+name+"_size="+str(len(buf))+";\n")
- g.write("static const unsigned char _font_"+name+"[]={\n")
- for i in range(len(buf)):
- g.write(str(ord(buf[i]))+",\n")
- g.write("};\n")
-
- g.write("#endif")
-
-
-if (env["tools"]!="no"):
+if (env["tools"] != "no"):
- import glob
+ import glob
- dir = env.Dir('.').abspath
- tlist = glob.glob(dir + "/translations/*.po")
+ dir = env.Dir('.').abspath
+ tlist = glob.glob(dir + "/translations/*.po")
- print("translations: ",tlist)
- env.Depends('#tools/editor/translations.h',tlist)
- env.Command('#tools/editor/translations.h',tlist,make_translations_header)
+ print("translations: ", tlist)
+ env.Depends('#tools/editor/translations.h', tlist)
+ env.Command('#tools/editor/translations.h', tlist, make_translations_header)
- flist = glob.glob(dir + "/editor_fonts/*.ttf")
- flist.append( glob.glob(dir + "/editor_fonts/*.otf") )
+ flist = glob.glob(dir + "/editor_fonts/*.ttf")
+ flist.append(glob.glob(dir + "/editor_fonts/*.otf"))
- print("fonts: ",flist)
- env.Depends('#tools/editor/builtin_fonts.h',flist)
- env.Command('#tools/editor/builtin_fonts.h',flist,make_fonts_header)
+ print("fonts: ", flist)
+ env.Depends('#tools/editor/builtin_fonts.h', flist)
+ env.Command('#tools/editor/builtin_fonts.h', flist, make_fonts_header)
- SConscript('editor/SCsub');
- SConscript('collada/SCsub');
- SConscript('doc/SCsub')
+ SConscript('editor/SCsub')
+ SConscript('collada/SCsub')
+ SConscript('doc/SCsub')
- lib = env.Library("tool",env.tool_sources)
+ lib = env.Library("tool", env.tool_sources)
- env.Prepend(LIBS=[lib])
+ env.Prepend(LIBS=[lib])
diff --git a/tools/collada/SCsub b/tools/collada/SCsub
index 473474201a..4bc64ffdc2 100644
--- a/tools/collada/SCsub
+++ b/tools/collada/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
Export('env')
diff --git a/tools/collada/collada.cpp b/tools/collada/collada.cpp
index 268d42a613..a23fd84aa0 100644
--- a/tools/collada/collada.cpp
+++ b/tools/collada/collada.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,6 +29,7 @@
#ifdef TOOLS_ENABLED
#include "collada.h"
+
#include "stdio.h"
//#define DEBUG_DEFAULT_ANIMATION
@@ -103,7 +104,7 @@ Transform Collada::fix_transform(const Transform& p_transform) {
}
#endif
-// tr.scale(Vector3(state.unit_scale.unit_scale.unit_scale));
+ //tr.scale(Vector3(state.unit_scale.unit_scale.unit_scale));
return tr;
//return state.matrix_fix * p_transform;
}
@@ -144,7 +145,7 @@ Transform Collada::Node::compute_transform(Collada &state) const {
case XForm::OP_ROTATE: {
if (xf.data.size()>=4) {
- xform_step.rotate(Vector3(xf.data[0],xf.data[1],xf.data[2]),-Math::deg2rad(xf.data[3]));
+ xform_step.rotate(Vector3(xf.data[0],xf.data[1],xf.data[2]),Math::deg2rad(xf.data[3]));
}
} break;
case XForm::OP_SCALE: {
@@ -322,7 +323,7 @@ void Collada::_parse_image(XMLParser& parser) {
String path = parser.get_attribute_value("source").strip_edges();
if (path.find("://")==-1 && path.is_rel_path()) {
// path is relative to file being loaded, so convert to a resource path
- image.path=Globals::get_singleton()->localize_path(state.local_path.get_base_dir()+"/"+path.percent_decode());
+ image.path=GlobalConfig::get_singleton()->localize_path(state.local_path.get_base_dir()+"/"+path.percent_decode());
}
} else {
@@ -342,11 +343,11 @@ void Collada::_parse_image(XMLParser& parser) {
if (path.find("://")==-1 && path.is_rel_path()) {
// path is relative to file being loaded, so convert to a resource path
- path=Globals::get_singleton()->localize_path(state.local_path.get_base_dir()+"/"+path);
+ path=GlobalConfig::get_singleton()->localize_path(state.local_path.get_base_dir()+"/"+path);
} else if (path.find("file:///")==0) {
path=path.replace_first("file:///","");
- path=Globals::get_singleton()->localize_path(path);
+ path=GlobalConfig::get_singleton()->localize_path(path);
}
image.path=path;
@@ -444,9 +445,11 @@ Vector<String> Collada::_read_string_array(XMLParser& parser) {
// parse String data
String str = parser.get_node_data();
array=str.split_spaces();
- //for(int i=0;i<array.size();i++) {
- // print_line(itos(i)+": "+array[i]);
- //}
+ /*
+ for(int i=0;i<array.size();i++) {
+ print_line(itos(i)+": "+array[i]);
+ }
+ */
}
else
if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END)
@@ -463,7 +466,7 @@ Transform Collada::_read_transform(XMLParser& parser) {
if (parser.is_empty())
return Transform();
- Vector<float> array;
+ Vector<String> array;
while(parser.read()==OK) {
// TODO: check for comments inside the element
// and ignore them.
@@ -471,7 +474,7 @@ Transform Collada::_read_transform(XMLParser& parser) {
if (parser.get_node_type() == XMLParser::NODE_TEXT) {
// parse float data
String str = parser.get_node_data();
- array=str.split_floats(" ",false);
+ array=str.split_spaces();
}
else
if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END)
@@ -479,7 +482,13 @@ Transform Collada::_read_transform(XMLParser& parser) {
}
ERR_FAIL_COND_V(array.size()!=16,Transform());
- return _read_transform_from_array(array);
+ Vector<float> farr;
+ farr.resize(16);
+ for(int i=0;i<16;i++) {
+ farr[i]=array[i].to_double();
+ }
+
+ return _read_transform_from_array(farr);
}
String Collada::_read_empty_draw_type(XMLParser& parser) {
@@ -1287,7 +1296,7 @@ void Collada::_parse_skin_controller(XMLParser& parser,String p_id) {
int stride=1;
if (parser.has_attribute("stride"))
- stride=parser.get_attribute_value("stride").to_int();;
+ stride=parser.get_attribute_value("stride").to_int();
skindata.sources[current_source].stride=stride;
COLLADA_PRINT("section: "+current_source+" stride "+itos(skindata.sources[current_source].stride));
@@ -1361,8 +1370,11 @@ void Collada::_parse_skin_controller(XMLParser& parser,String p_id) {
skindata.weights=weights;
- }// else if (!parser.is_empty())
- // parser.skip_section();
+ }
+ /*
+ else if (!parser.is_empty())
+ parser.skip_section();
+ */
} else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name()=="skin")
break;
@@ -1390,7 +1402,7 @@ void Collada::_parse_skin_controller(XMLParser& parser,String p_id) {
for(int i=0;i<joint_source.sarray.size();i++) {
String name = joint_source.sarray[i];
- Transform xform = _read_transform_from_array(ibm_source.array,i*16);// <- this is a mistake, it must be applied to vertices
+ Transform xform = _read_transform_from_array(ibm_source.array,i*16); //<- this is a mistake, it must be applied to vertices
xform.affine_invert(); // inverse for rest, because it's an inverse
#ifdef COLLADA_IMPORT_SCALE_SCENE
xform.origin*=state.unit_scale;
@@ -1436,8 +1448,10 @@ void Collada::_parse_morph_controller(XMLParser& parser, String p_id) {
} else if (section=="Name_array" || section=="IDREF_array") {
// create a new array and read it.
- //if (section=="IDREF_array")
- // morphdata.use_idrefs=true;
+ /*
+ if (section=="IDREF_array")
+ morphdata.use_idrefs=true;
+ */
if (morphdata.sources.has(current_source)) {
morphdata.sources[current_source].sarray = _read_string_array(parser);
@@ -1457,7 +1471,7 @@ void Collada::_parse_morph_controller(XMLParser& parser, String p_id) {
int stride=1;
if (parser.has_attribute("stride"))
- stride=parser.get_attribute_value("stride").to_int();;
+ stride=parser.get_attribute_value("stride").to_int();
morphdata.sources[current_source].stride=stride;
COLLADA_PRINT("section: "+current_source+" stride "+itos(morphdata.sources[current_source].stride));
@@ -1485,8 +1499,10 @@ void Collada::_parse_morph_controller(XMLParser& parser, String p_id) {
}
- // else if (!parser.is_empty())
- // parser.skip_section();
+ /*
+ else if (!parser.is_empty())
+ parser.skip_section();
+ */
} else if (parser.get_node_type() == XMLParser::NODE_ELEMENT_END && parser.get_node_name()=="morph")
break;
@@ -1598,7 +1614,7 @@ Collada::Node* Collada::_parse_visual_instance_camera(XMLParser& parser) {
cam->camera= _uri_to_id(parser.get_attribute_value_safe("url"));
if (state.up_axis==Vector3::AXIS_Z) //collada weirdness
- cam->post_transform.basis.rotate(Vector3(1,0,0),Math_PI*0.5);
+ cam->post_transform.basis.rotate(Vector3(1,0,0),-Math_PI*0.5);
if (parser.is_empty()) //nothing else to parse...
return cam;
@@ -1619,7 +1635,7 @@ Collada::Node* Collada::_parse_visual_instance_light(XMLParser& parser) {
cam->light= _uri_to_id(parser.get_attribute_value_safe("url"));
if (state.up_axis==Vector3::AXIS_Z) //collada weirdness
- cam->post_transform.basis.rotate(Vector3(1,0,0),Math_PI*0.5);
+ cam->post_transform.basis.rotate(Vector3(1,0,0),-Math_PI*0.5);
if (parser.is_empty()) //nothing else to parse...
return cam;
@@ -1699,7 +1715,7 @@ Collada::Node* Collada::_parse_visual_scene_node(XMLParser& parser) {
if ( parser.has_attribute("sid") ) { //bones may not have sid
joint->sid=parser.get_attribute_value("sid");
-// state.bone_map[joint->sid]=joint;
+ //state.bone_map[joint->sid]=joint;
} else if (state.idref_joints.has(name)) {
joint->sid=name; //kind of a cheat but..
} else if (parser.has_attribute("name")) {
@@ -2714,7 +2730,7 @@ Error Collada::load(const String& p_path, int p_flags) {
Error err = parser.open(p_path);
ERR_FAIL_COND_V(err,err);
- state.local_path = Globals::get_singleton()->localize_path(p_path);
+ state.local_path = GlobalConfig::get_singleton()->localize_path(p_path);
state.import_flags=p_flags;
/* Skip headers */
err=OK;
diff --git a/tools/collada/collada.h b/tools/collada/collada.h
index 9340cdd3f3..fd7ad4920d 100644
--- a/tools/collada/collada.h
+++ b/tools/collada/collada.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/dist/ios_xcode/godot_xcode/godot_ios/main.m b/tools/dist/ios_xcode/godot_xcode/godot_ios/main.m
index 3e4ea5e129..88b8e60670 100644
--- a/tools/dist/ios_xcode/godot_xcode/godot_ios/main.m
+++ b/tools/dist/ios_xcode/godot_xcode/godot_ios/main.m
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/dist/osx_template.app/Contents/Info.plist b/tools/dist/osx_template.app/Contents/Info.plist
index 5146c875bc..eee787bdaf 100755
--- a/tools/dist/osx_template.app/Contents/Info.plist
+++ b/tools/dist/osx_template.app/Contents/Info.plist
@@ -27,11 +27,11 @@
<key>NSHumanReadableCopyright</key>
<string>$copyright</string>
<key>LSMinimumSystemVersion</key>
- <string>10.6.0</string>
+ <string>10.9.0</string>
<key>LSMinimumSystemVersionByArchitecture</key>
<dict>
<key>x86_64</key>
- <string>10.6.0</string>
+ <string>10.9.0</string>
</dict>
<key>NSHighResolutionCapable</key>
$highres
diff --git a/tools/dist/osx_tools.app/Contents/Info.plist b/tools/dist/osx_tools.app/Contents/Info.plist
index 2a3e727133..4d88e97503 100755
--- a/tools/dist/osx_tools.app/Contents/Info.plist
+++ b/tools/dist/osx_tools.app/Contents/Info.plist
@@ -9,7 +9,7 @@
<key>CFBundleName</key>
<string>Godot</string>
<key>CFBundleGetInfoString</key>
- <string>(c) 2007-2016 Juan Linietsky, Ariel Manzur</string>
+ <string>(c) 2007-2017 Juan Linietsky, Ariel Manzur</string>
<key>CFBundleIconFile</key>
<string>Godot.icns</string>
<key>CFBundleIdentifier</key>
@@ -25,13 +25,13 @@
<key>CFBundleVersion</key>
<string>2.2-dev</string>
<key>NSHumanReadableCopyright</key>
- <string>© 2007-2016 Juan Linietsky, Ariel Manzur</string>
+ <string>© 2007-2017 Juan Linietsky, Ariel Manzur</string>
<key>LSMinimumSystemVersion</key>
- <string>10.6.0</string>
+ <string>10.9.0</string>
<key>LSMinimumSystemVersionByArchitecture</key>
<dict>
<key>x86_64</key>
- <string>10.6.0</string>
+ <string>10.9.0</string>
</dict>
<key>NSHighResolutionCapable</key>
<true/>
diff --git a/tools/dist/uwp_template/AppxManifest.xml b/tools/dist/uwp_template/AppxManifest.xml
index 48a2ba7eb3..d5e653708c 100644
--- a/tools/dist/uwp_template/AppxManifest.xml
+++ b/tools/dist/uwp_template/AppxManifest.xml
@@ -15,7 +15,7 @@
<Resource Language="EN-US" />
</Resources>
<Applications>
- <Application Id="App" Executable="godot.winrt.exe" EntryPoint="GodotWinRT.App">
+ <Application Id="App" Executable="godot.uwp.exe" EntryPoint="GodotUWP.App">
<uap:VisualElements DisplayName="$display_name$" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="$app_description$" BackgroundColor="$bg_color$">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" Square310x310Logo="Assets\Square310x310Logo.png" Square71x71Logo="Assets\Square71x71Logo.png" ShortName="$short_name$">
$name_on_tiles$
diff --git a/tools/doc/SCsub b/tools/doc/SCsub
index 473474201a..4bc64ffdc2 100644
--- a/tools/doc/SCsub
+++ b/tools/doc/SCsub
@@ -2,6 +2,6 @@
Import('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
Export('env')
diff --git a/tools/doc/doc_data.cpp b/tools/doc/doc_data.cpp
index 4a8fdfb215..d51dc886b2 100644
--- a/tools/doc/doc_data.cpp
+++ b/tools/doc/doc_data.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,9 +26,9 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "version.h"
#include "doc_data.h"
+#include "version.h"
#include "global_constants.h"
#include "globals.h"
#include "script_language.h"
@@ -132,6 +132,9 @@ void DocData::merge_from(const DocData& p_data) {
const PropertyDoc &pf = cf.properties[j];
p.description=pf.description;
+ p.setter=pf.setter;
+ p.getter=pf.getter;
+
break;
}
}
@@ -159,7 +162,7 @@ void DocData::generate(bool p_basic_types) {
List<StringName> classes;
- ObjectTypeDB::get_type_list(&classes);
+ ClassDB::get_class_list(&classes);
classes.sort_custom<StringName::AlphCompare>();
while(classes.size()) {
@@ -172,11 +175,35 @@ void DocData::generate(bool p_basic_types) {
class_list[cname]=ClassDoc();
ClassDoc& c = class_list[cname];
c.name=cname;
- c.inherits=ObjectTypeDB::type_inherits_from(name);
- c.category=ObjectTypeDB::get_category(name);
+ c.inherits=ClassDB::get_parent_class(name);
+ c.category=ClassDB::get_category(name);
+
+
+ List<PropertyInfo> properties;
+ ClassDB::get_property_list(name,&properties,true);
+
+ for(List<PropertyInfo>::Element *E=properties.front();E;E=E->next()) {
+ if (E->get().usage& PROPERTY_USAGE_GROUP || E->get().usage& PROPERTY_USAGE_CATEGORY)
+ continue;
+
+ PropertyDoc prop;
+ StringName setter = ClassDB::get_property_setter(name,E->get().name);
+ StringName getter = ClassDB::get_property_getter(name,E->get().name);
+
+ prop.name=E->get().name;
+ prop.setter=setter;
+ prop.getter=getter;
+ if (E->get().type==Variant::OBJECT && E->get().hint==PROPERTY_HINT_RESOURCE_TYPE)
+ prop.type=E->get().hint_string;
+ else
+ prop.type=Variant::get_type_name(E->get().type);
+
+ c.properties.push_back(prop);
+ }
+
List<MethodInfo> method_list;
- ObjectTypeDB::get_method_list(name,&method_list,true);
+ ClassDB::get_method_list(name,&method_list,true);
method_list.sort();
@@ -189,7 +216,7 @@ void DocData::generate(bool p_basic_types) {
method.name=E->get().name;
- MethodBind *m = ObjectTypeDB::get_method(name,E->get().name);
+ MethodBind *m = ClassDB::get_method(name,E->get().name);
if (E->get().flags&METHOD_FLAG_VIRTUAL)
@@ -223,7 +250,7 @@ void DocData::generate(bool p_basic_types) {
} else if (arginfo.type!=Variant::NIL) // {
#endif
method.return_type=(arginfo.hint==PROPERTY_HINT_RESOURCE_TYPE)?arginfo.hint_string:Variant::get_type_name(arginfo.type);
-// }
+ //}
} else {
@@ -281,23 +308,23 @@ void DocData::generate(bool p_basic_types) {
default_arg_text=Variant::get_type_name(default_arg.get_type())+"("+default_arg_text+")";
break;
- case Variant::_AABB: //sorry naming convention fail :( not like it's used often // 10
+ case Variant::RECT3: //sorry naming convention fail :( not like it's used often // 10
case Variant::COLOR:
case Variant::PLANE:
- case Variant::RAW_ARRAY:
- case Variant::INT_ARRAY:
- case Variant::REAL_ARRAY:
- case Variant::STRING_ARRAY: //25
- case Variant::VECTOR2_ARRAY:
- case Variant::VECTOR3_ARRAY:
- case Variant::COLOR_ARRAY:
+ case Variant::POOL_BYTE_ARRAY:
+ case Variant::POOL_INT_ARRAY:
+ case Variant::POOL_REAL_ARRAY:
+ case Variant::POOL_STRING_ARRAY: //25
+ case Variant::POOL_VECTOR2_ARRAY:
+ case Variant::POOL_VECTOR3_ARRAY:
+ case Variant::POOL_COLOR_ARRAY:
default_arg_text=Variant::get_type_name(default_arg.get_type())+"("+default_arg_text+")";
break;
case Variant::VECTOR2: // 5
case Variant::RECT2:
case Variant::VECTOR3:
case Variant::QUAT:
- case Variant::MATRIX3:
+ case Variant::BASIS:
default_arg_text=Variant::get_type_name(default_arg.get_type())+default_arg_text;
break;
case Variant::OBJECT:
@@ -358,7 +385,7 @@ void DocData::generate(bool p_basic_types) {
}
List<MethodInfo> signal_list;
- ObjectTypeDB::get_signal_list(name,&signal_list,true);
+ ClassDB::get_signal_list(name,&signal_list,true);
if (signal_list.size()) {
@@ -383,13 +410,13 @@ void DocData::generate(bool p_basic_types) {
}
List<String> constant_list;
- ObjectTypeDB::get_integer_constant_list(name, &constant_list, true);
+ ClassDB::get_integer_constant_list(name, &constant_list, true);
for(List<String>::Element *E=constant_list.front();E;E=E->next()) {
ConstantDoc constant;
constant.name=E->get();
- constant.value=itos(ObjectTypeDB::get_integer_constant(name, E->get()));
+ constant.value=itos(ClassDB::get_integer_constant(name, E->get()));
c.constants.push_back(constant);
}
@@ -476,7 +503,7 @@ void DocData::generate(bool p_basic_types) {
if (i==Variant::INPUT_EVENT) {
static const char* ie_type[InputEvent::TYPE_MAX]={
- "","Key","MouseMotion","MouseButton","JoystickMotion","JoystickButton","ScreenTouch","ScreenDrag","Action"
+ "","Key","MouseMotion","MouseButton","JoypadMotion","JoypadButton","ScreenTouch","ScreenDrag","Action"
};
cname+=ie_type[j];
}
@@ -581,18 +608,18 @@ void DocData::generate(bool p_basic_types) {
c.constants.push_back(cd);
}
- List<Globals::Singleton> singletons;
- Globals::get_singleton()->get_singletons(&singletons);
+ List<GlobalConfig::Singleton> singletons;
+ GlobalConfig::get_singleton()->get_singletons(&singletons);
//servers (this is kind of hackish)
- for(List<Globals::Singleton>::Element *E=singletons.front();E;E=E->next()) {
+ for(List<GlobalConfig::Singleton>::Element *E=singletons.front();E;E=E->next()) {
PropertyDoc pd;
- Globals::Singleton &s=E->get();
+ GlobalConfig::Singleton &s=E->get();
pd.name=s.name;
- pd.type=s.ptr->get_type();
- while (String(ObjectTypeDB::type_inherits_from(pd.type))!="Object")
- pd.type=ObjectTypeDB::type_inherits_from(pd.type);
+ pd.type=s.ptr->get_class();
+ while (String(ClassDB::get_parent_class(pd.type))!="Object")
+ pd.type=ClassDB::get_parent_class(pd.type);
if (pd.type.begins_with("_"))
pd.type=pd.type.substr(1,pd.type.length());
c.properties.push_back(pd);
@@ -777,7 +804,7 @@ Error DocData::_load(Ref<XMLParser> parser) {
class_list[name]=ClassDoc();
ClassDoc& c = class_list[name];
-// print_line("class: "+name);
+ //print_line("class: "+name);
c.name=name;
if (parser->has_attribute("inherits"))
c.inherits = parser->get_attribute_value("inherits");
@@ -825,6 +852,13 @@ Error DocData::_load(Ref<XMLParser> parser) {
prop.name=parser->get_attribute_value("name");
ERR_FAIL_COND_V(!parser->has_attribute("type"),ERR_FILE_CORRUPT);
prop.type=parser->get_attribute_value("type");
+ if (parser->has_attribute("setter"))
+ prop.setter=parser->get_attribute_value("setter");
+ if (parser->has_attribute("getter"))
+ prop.getter=parser->get_attribute_value("getter");
+ if (parser->has_attribute("brief"))
+ prop.brief_description=parser->get_attribute_value("brief").xml_unescape();
+
parser->read();
if (parser->get_node_type()==XMLParser::NODE_TEXT)
prop.description=parser->get_node_data().strip_edges();
@@ -1009,7 +1043,7 @@ Error DocData::save(const String& p_path) {
PropertyDoc &p=c.properties[i];
- _write_string(f,2,"<member name=\""+p.name+"\" type=\""+p.type+"\">");
+ _write_string(f,2,"<member name=\""+p.name+"\" type=\""+p.type+"\" setter=\""+p.setter+"\" getter=\""+p.getter+"\" brief=\""+p.brief_description.xml_escape(true)+"\">");
if (p.description!="")
_write_string(f,3,p.description.xml_escape());
_write_string(f,2,"</member>");
diff --git a/tools/doc/doc_data.h b/tools/doc/doc_data.h
index 7996071c74..fead1da510 100644
--- a/tools/doc/doc_data.h
+++ b/tools/doc/doc_data.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -66,7 +66,9 @@ public:
String name;
String type;
+ String brief_description;
String description;
+ String setter,getter;
bool operator<(const PropertyDoc& p_prop) const {
return name<p_prop.name;
}
diff --git a/tools/doc/doc_dump.cpp b/tools/doc/doc_dump.cpp
index fbf13f9e8f..5ebba596e9 100644
--- a/tools/doc/doc_dump.cpp
+++ b/tools/doc/doc_dump.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,8 +26,9 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "version.h"
#include "doc_dump.h"
+
+#include "version.h"
#include "os/file_access.h"
#include "scene/main/node.h"
@@ -77,7 +78,7 @@ void DocDump::dump(const String& p_file) {
List<StringName> class_list;
- ObjectTypeDB::get_type_list(&class_list);
+ ClassDB::get_class_list(&class_list);
class_list.sort_custom<StringName::AlphCompare>();
@@ -92,10 +93,10 @@ void DocDump::dump(const String& p_file) {
String name=class_list.front()->get();
String header="<class name=\""+name+"\"";
- String inherits=ObjectTypeDB::type_inherits_from(name);
+ String inherits=ClassDB::get_parent_class(name);
if (inherits!="")
header+=" inherits=\""+inherits+"\"";
- String category=ObjectTypeDB::get_category(name);
+ String category=ClassDB::get_category(name);
if (category=="")
category="Core";
header+=" category=\""+category+"\"";
@@ -108,7 +109,7 @@ void DocDump::dump(const String& p_file) {
_write_string(f,1,"<methods>");
List<MethodInfo> method_list;
- ObjectTypeDB::get_method_list(name,&method_list,true);
+ ClassDB::get_method_list(name,&method_list,true);
method_list.sort();
@@ -116,7 +117,7 @@ void DocDump::dump(const String& p_file) {
if (E->get().name=="" || E->get().name[0]=='_')
continue; //hiden
- MethodBind *m = ObjectTypeDB::get_method(name,E->get().name);
+ MethodBind *m = ClassDB::get_method(name,E->get().name);
String qualifiers;
if (E->get().flags&METHOD_FLAG_CONST)
@@ -187,15 +188,15 @@ void DocDump::dump(const String& p_file) {
case Variant::VECTOR3:
case Variant::PLANE:
case Variant::QUAT:
- case Variant::_AABB: //sorry naming convention fail :( not like it's used often // 10
- case Variant::MATRIX3:
+ case Variant::RECT3: //sorry naming convention fail :( not like it's used often // 10
+ case Variant::BASIS:
case Variant::COLOR:
- case Variant::RAW_ARRAY:
- case Variant::INT_ARRAY:
- case Variant::REAL_ARRAY:
- case Variant::STRING_ARRAY: //25
- case Variant::VECTOR3_ARRAY:
- case Variant::COLOR_ARRAY:
+ case Variant::POOL_BYTE_ARRAY:
+ case Variant::POOL_INT_ARRAY:
+ case Variant::POOL_REAL_ARRAY:
+ case Variant::POOL_STRING_ARRAY: //25
+ case Variant::POOL_VECTOR3_ARRAY:
+ case Variant::POOL_COLOR_ARRAY:
default_arg_text=Variant::get_type_name(default_arg.get_type())+"("+default_arg_text+")";
break;
case Variant::OBJECT:
@@ -251,7 +252,7 @@ void DocDump::dump(const String& p_file) {
_write_string(f,1,"</methods>");
List<MethodInfo> signal_list;
- ObjectTypeDB::get_signal_list(name,&signal_list,true);
+ ClassDB::get_signal_list(name,&signal_list,true);
if (signal_list.size()) {
@@ -278,7 +279,7 @@ void DocDump::dump(const String& p_file) {
List<String> constant_list;
- ObjectTypeDB::get_integer_constant_list(name, &constant_list, true);
+ ClassDB::get_integer_constant_list(name, &constant_list, true);
/* constants are sorted in a special way */
@@ -287,7 +288,7 @@ void DocDump::dump(const String& p_file) {
for(List<String>::Element *E=constant_list.front();E;E=E->next()) {
_ConstantSort cs;
cs.name=E->get();
- cs.value=ObjectTypeDB::get_integer_constant(name, E->get());
+ cs.value=ClassDB::get_integer_constant(name, E->get());
constant_sort.push_back(cs);
}
diff --git a/tools/doc/doc_dump.h b/tools/doc/doc_dump.h
index 372f5e0969..84629b89c8 100644
--- a/tools/doc/doc_dump.h
+++ b/tools/doc/doc_dump.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,7 +29,7 @@
#ifndef DOC_DUMP_H
#define DOC_DUMP_H
-#include "object_type_db.h"
+#include "class_db.h"
class DocDump {
public:
diff --git a/tools/editor/SCsub b/tools/editor/SCsub
index f6cb16dc24..caf45d25be 100644
--- a/tools/editor/SCsub
+++ b/tools/editor/SCsub
@@ -3,86 +3,78 @@
Import('env')
-def make_doc_header(target,source,env):
-
- src = source[0].srcnode().abspath
- dst = target[0].srcnode().abspath
- f = open(src,"rb")
- g = open(dst,"wb")
- buf = f.read()
- decomp_size = len(buf)
- import zlib
- buf = zlib.compress(buf)
-
-
- g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
- g.write("#ifndef _DOC_DATA_RAW_H\n")
- g.write("#define _DOC_DATA_RAW_H\n")
- g.write("static const int _doc_data_compressed_size="+str(len(buf))+";\n")
- g.write("static const int _doc_data_uncompressed_size="+str(decomp_size)+";\n")
- g.write("static const unsigned char _doc_data_compressed[]={\n")
- for i in range(len(buf)):
- g.write(str(ord(buf[i]))+",\n")
- g.write("};\n")
- g.write("#endif")
-
-
-
-def make_certs_header(target,source,env):
-
- src = source[0].srcnode().abspath
- dst = target[0].srcnode().abspath
- f = open(src,"rb")
- g = open(dst,"wb")
- buf = f.read()
- decomp_size = len(buf)
- import zlib
- buf = zlib.compress(buf)
-
-
- g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
- g.write("#ifndef _CERTS_RAW_H\n")
- g.write("#define _CERTS_RAW_H\n")
- g.write("static const int _certs_compressed_size="+str(len(buf))+";\n")
- g.write("static const int _certs_uncompressed_size="+str(decomp_size)+";\n")
- g.write("static const unsigned char _certs_compressed[]={\n")
- for i in range(len(buf)):
- g.write(str(ord(buf[i]))+",\n")
- g.write("};\n")
- g.write("#endif")
-
-
-
-
-
-
-
-if (env["tools"]=="yes"):
-
- reg_exporters_inc='#include "register_exporters.h"\n'
- reg_exporters='void register_exporters() {\n'
- for e in env.platform_exporters:
- env.tool_sources.append("#platform/"+e+"/export/export.cpp")
- reg_exporters+='\tregister_'+e+'_exporter();\n'
- reg_exporters_inc+='#include "platform/'+e+'/export/export.h"\n'
- reg_exporters+='}\n'
- f = open("register_exporters.cpp","wb")
- f.write(reg_exporters_inc)
- f.write(reg_exporters)
- f.close()
-
- env.Depends("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml")
- env.Command("#tools/editor/doc_data_compressed.h","#doc/base/classes.xml",make_doc_header)
-
- env.Depends("#tools/editor/certs_compressed.h","#tools/certs/ca-certificates.crt")
- env.Command("#tools/editor/certs_compressed.h","#tools/certs/ca-certificates.crt",make_certs_header)
-
- #make_doc_header(env.File("#tools/editor/doc_data_raw.h").srcnode().abspath,env.File("#doc/base/classes.xml").srcnode().abspath,env)
-
- env.add_source_files(env.tool_sources,"*.cpp")
-
- Export('env')
- SConscript('icons/SCsub');
- SConscript('plugins/SCsub');
- SConscript('fileserver/SCsub');
- SConscript('io_plugins/SCsub');
+def make_doc_header(target, source, env):
+
+ src = source[0].srcnode().abspath
+ dst = target[0].srcnode().abspath
+ f = open(src, "rb")
+ g = open(dst, "wb")
+ buf = f.read()
+ decomp_size = len(buf)
+ import zlib
+ buf = zlib.compress(buf)
+
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef _DOC_DATA_RAW_H\n")
+ g.write("#define _DOC_DATA_RAW_H\n")
+ g.write("static const int _doc_data_compressed_size=" + str(len(buf)) + ";\n")
+ g.write("static const int _doc_data_uncompressed_size=" + str(decomp_size) + ";\n")
+ g.write("static const unsigned char _doc_data_compressed[]={\n")
+ for i in range(len(buf)):
+ g.write(str(ord(buf[i])) + ",\n")
+ g.write("};\n")
+ g.write("#endif")
+
+
+def make_certs_header(target, source, env):
+
+ src = source[0].srcnode().abspath
+ dst = target[0].srcnode().abspath
+ f = open(src, "rb")
+ g = open(dst, "wb")
+ buf = f.read()
+ decomp_size = len(buf)
+ import zlib
+ buf = zlib.compress(buf)
+
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef _CERTS_RAW_H\n")
+ g.write("#define _CERTS_RAW_H\n")
+ g.write("static const int _certs_compressed_size=" + str(len(buf)) + ";\n")
+ g.write("static const int _certs_uncompressed_size=" + str(decomp_size) + ";\n")
+ g.write("static const unsigned char _certs_compressed[]={\n")
+ for i in range(len(buf)):
+ g.write(str(ord(buf[i])) + ",\n")
+ g.write("};\n")
+ g.write("#endif")
+
+
+if (env["tools"] == "yes"):
+
+ reg_exporters_inc = '#include "register_exporters.h"\n'
+ reg_exporters = 'void register_exporters() {\n'
+ for e in env.platform_exporters:
+ env.tool_sources.append("#platform/" + e + "/export/export.cpp")
+ reg_exporters += '\tregister_' + e + '_exporter();\n'
+ reg_exporters_inc += '#include "platform/' + e + '/export/export.h"\n'
+ reg_exporters += '}\n'
+ f = open("register_exporters.cpp", "wb")
+ f.write(reg_exporters_inc)
+ f.write(reg_exporters)
+ f.close()
+
+ env.Depends("#tools/editor/doc_data_compressed.h", "#doc/base/classes.xml")
+ env.Command("#tools/editor/doc_data_compressed.h", "#doc/base/classes.xml", make_doc_header)
+
+ env.Depends("#tools/editor/certs_compressed.h", "#tools/certs/ca-certificates.crt")
+ env.Command("#tools/editor/certs_compressed.h", "#tools/certs/ca-certificates.crt", make_certs_header)
+
+ # make_doc_header(env.File("#tools/editor/doc_data_raw.h").srcnode().abspath,env.File("#doc/base/classes.xml").srcnode().abspath,env)
+
+ env.add_source_files(env.tool_sources, "*.cpp")
+
+ Export('env')
+ SConscript('icons/SCsub')
+ SConscript('plugins/SCsub')
+ SConscript('fileserver/SCsub')
+ SConscript('io_plugins/SCsub')
diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp
index a556031e5e..f256e351ae 100644
--- a/tools/editor/animation_editor.cpp
+++ b/tools/editor/animation_editor.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "animation_editor.h"
+
#include "editor_settings.h"
#include "os/keyboard.h"
#include "os/os.h"
@@ -48,7 +49,7 @@
class AnimationCurveEdit : public Control {
- OBJ_TYPE( AnimationCurveEdit, Control );
+ GDCLASS( AnimationCurveEdit, Control );
public:
enum Mode {
MODE_DISABLED,
@@ -157,7 +158,7 @@ private:
}
}
- void _input_event(const InputEvent& p_ev) {
+ void _gui_input(const InputEvent& p_ev) {
if (p_ev.type==InputEvent::MOUSE_MOTION && p_ev.mouse_motion.button_mask&BUTTON_MASK_LEFT) {
if (mode==MODE_DISABLED)
@@ -178,12 +179,12 @@ private:
bool sg = val < 0;
val = Math::absf(val);
- val = Math::log(val)/Math::log(2);
+ val = Math::log(val)/Math::log((float)2.0);
//logspace
val+=rel*0.05;
//
- val = Math::pow(2,val);
+ val = Math::pow((float)2.0,val);
if (sg)
val=-val;
@@ -198,8 +199,8 @@ public:
static void _bind_methods() {
- // ObjectTypeDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj);
- ObjectTypeDB::bind_method("_input_event",&AnimationCurveEdit::_input_event);
+ //ClassDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj);
+ ClassDB::bind_method("_gui_input",&AnimationCurveEdit::_gui_input);
ADD_SIGNAL(MethodInfo("transition_changed"));
}
@@ -243,15 +244,15 @@ public:
class AnimationKeyEdit : public Object {
- OBJ_TYPE(AnimationKeyEdit,Object);
+ GDCLASS(AnimationKeyEdit,Object);
public:
bool setting;
bool hidden;
static void _bind_methods() {
- ObjectTypeDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj);
- ObjectTypeDB::bind_method("_key_ofs_changed",&AnimationKeyEdit::_key_ofs_changed);
+ ClassDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj);
+ ClassDB::bind_method("_key_ofs_changed",&AnimationKeyEdit::_key_ofs_changed);
}
//PopupDialog *ke_dialog;
@@ -518,7 +519,7 @@ public:
case Animation::TYPE_VALUE: {
if (name=="value") {
- r_ret = animation->track_get_key_value(track,key);;
+ r_ret = animation->track_get_key_value(track,key);
return true;
}
@@ -612,7 +613,7 @@ public:
if (res.is_valid()) {
hint=PROPERTY_HINT_RESOURCE_TYPE;
- hint_string=res->get_type();
+ hint_string=res->get_class();
}
}
@@ -647,8 +648,10 @@ public:
} break;
}
- //if (animation->track_get_type(track)!=Animation::TYPE_METHOD)
- // p_list->push_back( PropertyInfo( Variant::REAL, "easing", PROPERTY_HINT_EXP_EASING));
+ /*
+ if (animation->track_get_type(track)!=Animation::TYPE_METHOD)
+ p_list->push_back( PropertyInfo( Variant::REAL, "easing", PROPERTY_HINT_EXP_EASING));
+ */
}
UndoRedo *undo_redo;
@@ -1040,7 +1043,7 @@ void AnimationKeyEditor::_animation_optimize() {
- animation->optimize(optimize_linear_error->get_val(),optimize_angular_error->get_val(),optimize_max_angle->get_val());
+ animation->optimize(optimize_linear_error->get_value(),optimize_angular_error->get_value(),optimize_max_angle->get_value());
track_editor->update();
undo_redo->clear_history();
@@ -1049,12 +1052,12 @@ void AnimationKeyEditor::_animation_optimize() {
float AnimationKeyEditor::_get_zoom_scale() const {
- float zv = zoom->get_val();
+ float zv = zoom->get_value();
if (zv<1) {
zv = 1.0-zv;
- return Math::pow(1.0+zv,8.0)*100;
+ return Math::pow(1.0f+zv,8.0f)*100;
} else {
- return 1.0/Math::pow(zv,8.0)*100;
+ return 1.0/Math::pow(zv,8.0f)*100;
}
}
@@ -1072,7 +1075,7 @@ void AnimationKeyEditor::_track_pos_draw() {
int settings_limit = size.width - right_data_size_cache;
int name_limit = settings_limit * name_column_ratio;
- float keys_from= h_scroll->get_val();
+ float keys_from= h_scroll->get_value();
float zoom_scale = _get_zoom_scale();
float keys_to=keys_from+(settings_limit-name_limit) / zoom_scale;
@@ -1081,7 +1084,7 @@ void AnimationKeyEditor::_track_pos_draw() {
//will move to separate control! (for speedup)
if (timeline_pos >= keys_from && timeline_pos<keys_to) {
//draw position
- int pixel = (timeline_pos - h_scroll->get_val()) * zoom_scale;
+ int pixel = (timeline_pos - h_scroll->get_value()) * zoom_scale;
pixel+=name_limit;
track_pos->draw_line(ofs+Point2(pixel,0),ofs+Point2(pixel,size.height),Color(1,0.3,0.3,0.8));
@@ -1090,7 +1093,6 @@ void AnimationKeyEditor::_track_pos_draw() {
void AnimationKeyEditor::_track_editor_draw() {
- VisualServer::get_singleton()->canvas_item_set_clip(track_editor->get_canvas_item(),true);
if (animation.is_valid() && animation->get_track_count()) {
if (selected_track < 0)
@@ -1157,6 +1159,12 @@ void AnimationKeyEditor::_track_editor_draw() {
Ref<Texture> add_key_icon = get_icon("TrackAddKey","EditorIcons");
Ref<Texture> add_key_icon_hl = get_icon("TrackAddKeyHl","EditorIcons");
Ref<Texture> down_icon = get_icon("select_arrow","Tree");
+
+ Ref<Texture> wrap_icon[2]={
+ get_icon("InterpWrapClamp","EditorIcons"),
+ get_icon("InterpWrapLoop","EditorIcons"),
+ };
+
Ref<Texture> interp_icon[3]={
get_icon("InterpRaw","EditorIcons"),
get_icon("InterpLinear","EditorIcons"),
@@ -1181,7 +1189,7 @@ void AnimationKeyEditor::_track_editor_draw() {
Ref<Texture> type_hover=get_icon("KeyHover","EditorIcons");
Ref<Texture> type_selected=get_icon("KeySelected","EditorIcons");
- int right_separator_ofs = down_icon->get_width() *2 + add_key_icon->get_width() + interp_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*7;
+ int right_separator_ofs = down_icon->get_width() *3 + add_key_icon->get_width() + interp_icon[0]->get_width() + wrap_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*9;
int h = font->get_height()+sep;
@@ -1227,8 +1235,8 @@ void AnimationKeyEditor::_track_editor_draw() {
if (l<=0)
l=0.001; //avoid crashor
- int end_px = (l - h_scroll->get_val()) * scale;
- int begin_px = -h_scroll->get_val() * scale;
+ int end_px = (l - h_scroll->get_value()) * scale;
+ int begin_px = -h_scroll->get_value() * scale;
Color notimecol;
notimecol.r=timecolor.gray();
notimecol.g=notimecol.r;
@@ -1254,7 +1262,7 @@ void AnimationKeyEditor::_track_editor_draw() {
- keys_from= h_scroll->get_val();
+ keys_from= h_scroll->get_value();
keys_to=keys_from+zoomw / scale;
{
@@ -1331,8 +1339,8 @@ void AnimationKeyEditor::_track_editor_draw() {
for(int i=0;i<zoomw;i++) {
- float pos = h_scroll->get_val() + double(i)/scale;
- float prev = h_scroll->get_val() + (double(i)-1.0)/scale;
+ float pos = h_scroll->get_value() + double(i)/scale;
+ float prev = h_scroll->get_value() + (double(i)-1.0)/scale;
int sc = int(Math::floor(pos*SC_ADJ));
@@ -1356,7 +1364,7 @@ void AnimationKeyEditor::_track_editor_draw() {
//this code sucks, i always forget how it works
- int idx = v_scroll->get_val() + i;
+ int idx = v_scroll->get_value() + i;
if (idx>=animation->get_track_count())
break;
int y = h+i*h+sep;
@@ -1421,6 +1429,20 @@ void AnimationKeyEditor::_track_editor_draw() {
icon_ofs.x-=hsep;
*/
+ track_ofs[0]=size.width-icon_ofs.x;
+ icon_ofs.x-=down_icon->get_width();
+ te->draw_texture(down_icon,icon_ofs);
+
+ int wrap_type = animation->track_get_interpolation_loop_wrap(idx)?1:0;
+ icon_ofs.x-=hsep;
+ icon_ofs.x-=wrap_icon[wrap_type]->get_width();
+ te->draw_texture(wrap_icon[wrap_type],icon_ofs);
+
+ icon_ofs.x-=hsep;
+ te->draw_line(Point2(icon_ofs.x,ofs.y+y),Point2(icon_ofs.x,ofs.y+y+h),sepcolor);
+
+ track_ofs[1]=size.width-icon_ofs.x;
+
icon_ofs.x-=down_icon->get_width();
te->draw_texture(down_icon,icon_ofs);
@@ -1433,6 +1455,8 @@ void AnimationKeyEditor::_track_editor_draw() {
icon_ofs.x-=hsep;
te->draw_line(Point2(icon_ofs.x,ofs.y+y),Point2(icon_ofs.x,ofs.y+y+h),sepcolor);
+ track_ofs[2]=size.width-icon_ofs.x;
+
if (animation->track_get_type(idx)==Animation::TYPE_VALUE) {
@@ -1453,14 +1477,18 @@ void AnimationKeyEditor::_track_editor_draw() {
icon_ofs.x-=hsep;
te->draw_line(Point2(icon_ofs.x,ofs.y+y),Point2(icon_ofs.x,ofs.y+y+h),sepcolor);
+ track_ofs[3]=size.width-icon_ofs.x;
+
icon_ofs.x-=hsep;
icon_ofs.x-=add_key_icon->get_width();
te->draw_texture((mouse_over.over==MouseOver::OVER_ADD_KEY && mouse_over.track==idx)?add_key_icon_hl:add_key_icon,icon_ofs);
+ track_ofs[4]=size.width-icon_ofs.x;
+
//draw the keys;
int tt = animation->track_get_type(idx);
- float key_vofs = Math::floor((h - type_icon[tt]->get_height())/2);
- float key_hofs = -Math::floor(type_icon[tt]->get_height()/2);
+ float key_vofs = Math::floor((float)(h - type_icon[tt]->get_height())/2);
+ float key_hofs = -Math::floor((float)type_icon[tt]->get_height()/2);
int kc=animation->track_get_key_count(idx);
bool first=true;
@@ -1552,20 +1580,20 @@ void AnimationKeyEditor::_track_editor_draw() {
}
float motion = from_t+(click.to.x - click.at.x)/zoom_scale;
- if (step->get_val())
- motion = Math::stepify(motion,step->get_val());
+ if (step->get_value())
+ motion = Math::stepify(motion,step->get_value());
for(Map<SelectedKey,KeyInfo>::Element *E=selection.front();E;E=E->next()) {
int idx = E->key().track;
- int i = idx-v_scroll->get_val();
+ int i = idx-v_scroll->get_value();
if (i<0 || i>=fit)
continue;
int y = h+i*h+sep;
- float key_vofs = Math::floor((h - type_selected->get_height())/2);
- float key_hofs = -Math::floor(type_selected->get_height()/2);
+ float key_vofs = Math::floor((float)(h - type_selected->get_height())/2);
+ float key_hofs = -Math::floor((float)type_selected->get_height()/2);
float time = animation->track_get_key_time(idx,E->key().key);
float diff = time-from_t;
@@ -1621,6 +1649,14 @@ void AnimationKeyEditor::_track_menu_selected(int p_idx) {
undo_redo->add_do_method(animation.ptr(),"value_track_set_update_mode",cont_editing,p_idx);
undo_redo->add_undo_method(animation.ptr(),"value_track_set_update_mode",cont_editing,animation->value_track_get_update_mode(cont_editing));
undo_redo->commit_action();
+ } else if (wrap_editing!=-1) {
+
+ ERR_FAIL_INDEX(wrap_editing,animation->get_track_count());
+
+ undo_redo->create_action(TTR("Anim Track Change Wrap Mode"));
+ undo_redo->add_do_method(animation.ptr(),"track_set_interpolation_loop_wrap",wrap_editing,p_idx?true:false);
+ undo_redo->add_undo_method(animation.ptr(),"track_set_interpolation_loop_wrap",wrap_editing,animation->track_get_interpolation_loop_wrap(wrap_editing));
+ undo_redo->commit_action();
} else {
switch (p_idx) {
@@ -1811,7 +1847,7 @@ void AnimationKeyEditor::_anim_delete_keys() {
}
}
-void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
+void AnimationKeyEditor::_track_editor_gui_input(const InputEvent& p_input) {
Control *te=track_editor;
Ref<StyleBox> style = get_stylebox("normal","TextEdit");
@@ -1833,6 +1869,10 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
Ref<Texture> hsize_icon = get_icon("Hsize","EditorIcons");
Ref<Texture> add_key_icon = get_icon("TrackAddKey","EditorIcons");
+ Ref<Texture> wrap_icon[2]={
+ get_icon("InterpWrapClamp","EditorIcons"),
+ get_icon("InterpWrapLoop","EditorIcons"),
+ };
Ref<Texture> interp_icon[3]={
get_icon("InterpRaw","EditorIcons"),
get_icon("InterpLinear","EditorIcons"),
@@ -1848,7 +1888,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
get_icon("KeyXform","EditorIcons"),
get_icon("KeyCall","EditorIcons")
};
- int right_separator_ofs = down_icon->get_width() *2 + add_key_icon->get_width() + interp_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*7;
+ int right_separator_ofs = down_icon->get_width() *3 + add_key_icon->get_width() + interp_icon[0]->get_width() + wrap_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*9;
int h = font->get_height()+sep;
@@ -1877,7 +1917,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
else
_menu_track(TRACK_MENU_DUPLICATE);
- accept_event();;
+ accept_event();
} else if (p_input.key.scancode==KEY_DELETE && p_input.key.pressed && click.click==ClickOver::CLICK_NONE) {
@@ -1888,16 +1928,16 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
if (p_input.is_action("ui_up"))
selected_track--;
- if (v_scroll->is_visible() && p_input.is_action("ui_page_up"))
+ if (v_scroll->is_visible_in_tree() && p_input.is_action("ui_page_up"))
selected_track--;
if (selected_track<0)
selected_track=0;
- if (v_scroll->is_visible()) {
- if (v_scroll->get_val() > selected_track)
- v_scroll->set_val(selected_track);
+ if (v_scroll->is_visible_in_tree()) {
+ if (v_scroll->get_value() > selected_track)
+ v_scroll->set_value(selected_track);
}
@@ -1910,14 +1950,14 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
if (p_input.is_action("ui_down"))
selected_track++;
- else if (v_scroll->is_visible() && p_input.is_action("ui_page_down"))
+ else if (v_scroll->is_visible_in_tree() && p_input.is_action("ui_page_down"))
selected_track+=v_scroll->get_page();
if (selected_track >= animation->get_track_count())
selected_track=animation->get_track_count()-1;
- if (v_scroll->is_visible() && v_scroll->get_page()+v_scroll->get_val() < selected_track+1) {
- v_scroll->set_val(selected_track-v_scroll->get_page()+1);
+ if (v_scroll->is_visible_in_tree() && v_scroll->get_page()+v_scroll->get_value() < selected_track+1) {
+ v_scroll->set_value(selected_track-v_scroll->get_page()+1);
}
track_editor->update();
@@ -1934,18 +1974,18 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed) {
if (mb.mod.command) {
- zoom->set_val(zoom->get_val() + zoom->get_step());
+ zoom->set_value(zoom->get_value() + zoom->get_step());
} else {
- v_scroll->set_val( v_scroll->get_val() - v_scroll->get_page() / 8 );
+ v_scroll->set_value( v_scroll->get_value() - v_scroll->get_page() / 8 );
}
}
if (mb.button_index==BUTTON_WHEEL_DOWN && mb.pressed) {
if (mb.mod.command) {
- zoom->set_val(zoom->get_val() - zoom->get_step());
+ zoom->set_value(zoom->get_value() - zoom->get_step());
} else {
- v_scroll->set_val( v_scroll->get_val() + v_scroll->get_page() / 8 );
+ v_scroll->set_value( v_scroll->get_value() + v_scroll->get_page() / 8 );
}
}
@@ -1966,7 +2006,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
mpos.y -= h;
int idx = mpos.y / h;
- idx+=v_scroll->get_val();
+ idx+=v_scroll->get_value();
if (idx <0 || idx>=animation->get_track_count())
break;
@@ -1974,7 +2014,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
} else if (mpos.x < settings_limit) {
float pos = mpos.x - name_limit;
pos/=_get_zoom_scale();
- pos+=h_scroll->get_val();
+ pos+=h_scroll->get_value();
float w_time = (type_icon[0]->get_width() / _get_zoom_scale())/2.0;
int kidx = animation->track_find_key(idx,pos);
@@ -2054,6 +2094,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
interp_editing=-1;
cont_editing=-1;
+ wrap_editing=-1;
track_menu->popup();
}
@@ -2083,7 +2124,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
//seek
//int zoomw = settings_limit-name_limit;
float scale = _get_zoom_scale();
- float pos = h_scroll->get_val() + (mpos.x-name_limit) / scale;
+ float pos = h_scroll->get_value() + (mpos.x-name_limit) / scale;
if (animation->get_step())
pos=Math::stepify(pos,animation->get_step());
@@ -2105,7 +2146,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
mpos.y -= h;
int idx = mpos.y / h;
- idx+=v_scroll->get_val();
+ idx+=v_scroll->get_value();
if (idx <0)
break;
@@ -2146,7 +2187,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
float pos = mpos.x - name_limit;
pos/=_get_zoom_scale();
- pos+=h_scroll->get_val();
+ pos+=h_scroll->get_value();
float w_time = (type_icon[0]->get_width() / _get_zoom_scale())/2.0;
int kidx = animation->track_find_key(idx,pos);
@@ -2277,7 +2318,33 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
ofsx-=hsep*3+move_up_icon->get_width();
*/
- if (ofsx < down_icon->get_width() + interp_icon[0]->get_width() + hsep*2) {
+
+ if (ofsx < track_ofs[1]) {
+
+ track_menu->clear();
+ track_menu->set_size(Point2(1,1));
+ static const char *interp_name[2]={"Clamp Loop Interp","Wrap Loop Interp"};
+ for(int i=0;i<2;i++) {
+ track_menu->add_icon_item(wrap_icon[i],interp_name[i]);
+ }
+
+ int popup_y = ofs.y+((int(mpos.y)/h)+2)*h;
+ int popup_x = size.width-track_ofs[1];
+
+ track_menu->set_pos(te->get_global_pos()+Point2(popup_x,popup_y));
+
+
+ wrap_editing=idx;
+ interp_editing=-1;
+ cont_editing=-1;
+
+ track_menu->popup();
+
+ return;
+ }
+
+
+ if (ofsx < track_ofs[2]) {
track_menu->clear();
track_menu->set_size(Point2(1,1));
@@ -2286,24 +2353,22 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
track_menu->add_icon_item(interp_icon[i],interp_name[i]);
}
- int lofs = remove_icon->get_width() + move_up_icon->get_width() + move_down_icon->get_width() + down_icon->get_width() *2 + hsep*7;//interp_icon[0]->get_width() + cont_icon[0]->get_width() ;
int popup_y = ofs.y+((int(mpos.y)/h)+2)*h;
- int popup_x = ofs.x+size.width-lofs;
+ int popup_x = size.width-track_ofs[2];
track_menu->set_pos(te->get_global_pos()+Point2(popup_x,popup_y));
interp_editing=idx;
cont_editing=-1;
+ wrap_editing=-1;
track_menu->popup();
return;
}
- ofsx-=hsep*2+interp_icon[0]->get_width()+down_icon->get_width();
-
- if (ofsx < down_icon->get_width() + cont_icon[0]->get_width()) {
+ if (ofsx < track_ofs[3]) {
track_menu->clear();
track_menu->set_size(Point2(1,1));
@@ -2312,13 +2377,14 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
track_menu->add_icon_item(cont_icon[i],cont_name[i]);
}
- int lofs = settings_limit;
+
int popup_y = ofs.y+((int(mpos.y)/h)+2)*h;
- int popup_x = ofs.x+lofs;
+ int popup_x = size.width-track_ofs[3];
track_menu->set_pos(te->get_global_pos()+Point2(popup_x,popup_y));
interp_editing=-1;
+ wrap_editing=-1;
cont_editing=idx;
track_menu->popup();
@@ -2326,9 +2392,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
return;
}
- ofsx-=hsep*3+cont_icon[0]->get_width()+down_icon->get_width();
-
- if (ofsx < add_key_icon->get_width()) {
+ if (ofsx < track_ofs[4]) {
Animation::TrackType tt = animation->track_get_type(idx);
@@ -2403,7 +2467,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
float zoom_scale=_get_zoom_scale();
- float keys_from = h_scroll->get_val();
+ float keys_from = h_scroll->get_value();
float keys_to = keys_from + (settings_limit-name_limit) / zoom_scale;
float from_time = keys_from + ( click.at.x - (name_limit+ofs.x)) / zoom_scale;
@@ -2423,8 +2487,8 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
to_time = keys_to;
- int from_track = int(click.at.y-ofs.y-h-sep) / h + v_scroll->get_val();
- int to_track = int(click.to.y-ofs.y-h-sep) / h + v_scroll->get_val();
+ int from_track = int(click.at.y-ofs.y-h-sep) / h + v_scroll->get_value();
+ int to_track = int(click.to.y-ofs.y-h-sep) / h + v_scroll->get_value();
int from_mod = int(click.at.y-ofs.y-sep) % h;
int to_mod = int(click.to.y-ofs.y-sep) % h;
@@ -2452,8 +2516,8 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
break;
}
- int tracks_from = v_scroll->get_val();
- int tracks_to = v_scroll->get_val()+fit-1;
+ int tracks_from = v_scroll->get_value();
+ int tracks_to = v_scroll->get_value()+fit-1;
if (tracks_to>=animation->get_track_count())
tracks_to=animation->get_track_count()-1;
@@ -2536,8 +2600,8 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
}
float motion = from_t+(click.to.x - click.at.x)/_get_zoom_scale();
- if (step->get_val())
- motion = Math::stepify(motion,step->get_val());
+ if (step->get_value())
+ motion = Math::stepify(motion,step->get_value());
@@ -2580,8 +2644,10 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
for(Map<SelectedKey,KeyInfo>::Element *E=selection.back();E;E=E->prev()) {
float newpos=E->get().pos-from_t+motion;
- //if (newpos<0)
- // continue; //no add at the begining
+ /*
+ if (newpos<0)
+ continue; //no add at the begining
+ */
undo_redo->add_do_method(animation.ptr(),"track_insert_key",E->key().track,newpos,animation->track_get_key_value(E->key().track,E->key().key),animation->track_get_key_transition(E->key().track,E->key().key));
}
@@ -2590,8 +2656,10 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
for(Map<SelectedKey,KeyInfo>::Element *E=selection.back();E;E=E->prev()) {
float newpos=E->get().pos+-from_t+motion;
- //if (newpos<0)
- // continue; //no remove what no inserted
+ /*
+ if (newpos<0)
+ continue; //no remove what no inserted
+ */
undo_redo->add_undo_method(animation.ptr(),"track_remove_key_at_pos",E->key().track,newpos);
}
@@ -2629,7 +2697,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
float oldpos=E->get().pos;
float newpos=oldpos-from_t+motion;
//if (newpos>=0)
- undo_redo->add_do_method(this,"_select_at_anim",animation,E->key().track,newpos);
+ undo_redo->add_do_method(this,"_select_at_anim",animation,E->key().track,newpos);
undo_redo->add_undo_method(this,"_select_at_anim",animation,E->key().track,oldpos);
}
@@ -2700,7 +2768,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
//int zoomw = settings_limit-name_limit;
float scale = _get_zoom_scale();
- float pos = h_scroll->get_val() + (mpos.x-name_limit) / scale;
+ float pos = h_scroll->get_value() + (mpos.x-name_limit) / scale;
if (animation->get_step()) {
pos=Math::stepify(pos,animation->get_step());
@@ -2710,10 +2778,10 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
if (pos>=animation->get_length())
pos=animation->get_length();
- if (pos < h_scroll->get_val()) {
- h_scroll->set_val(pos);
- } else if (pos > h_scroll->get_val() + (settings_limit - name_limit) / scale) {
- h_scroll->set_val( pos - (settings_limit - name_limit) / scale );
+ if (pos < h_scroll->get_value()) {
+ h_scroll->set_value(pos);
+ } else if (pos > h_scroll->get_value() + (settings_limit - name_limit) / scale) {
+ h_scroll->set_value( pos - (settings_limit - name_limit) / scale );
}
timeline_pos=pos;
@@ -2727,18 +2795,18 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
click.to=Point2(mb.x,mb.y);
if (click.to.y<h && click.at.y>h && mb.relative_y<0) {
- float prev = v_scroll->get_val();
- v_scroll->set_val( v_scroll->get_val() -1 );
- if (prev!=v_scroll->get_val())
+ float prev = v_scroll->get_value();
+ v_scroll->set_value( v_scroll->get_value() -1 );
+ if (prev!=v_scroll->get_value())
click.at.y+=h;
}
if (click.to.y>size.height && click.at.y<size.height && mb.relative_y>0) {
- float prev = v_scroll->get_val();
- v_scroll->set_val( v_scroll->get_val() +1 );
- if (prev!=v_scroll->get_val())
+ float prev = v_scroll->get_value();
+ v_scroll->set_value( v_scroll->get_value() +1 );
+ if (prev!=v_scroll->get_value())
click.at.y-=h;
}
@@ -2755,7 +2823,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
int rel = mb.relative_x;
float relf = rel / _get_zoom_scale();
- h_scroll->set_val( h_scroll->get_val() - relf );
+ h_scroll->set_value( h_scroll->get_value() - relf );
}
if (mb.button_mask==0) {
@@ -2781,7 +2849,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
mpos.y -= h;
int idx = mpos.y / h;
- idx+=v_scroll->get_val();
+ idx+=v_scroll->get_value();
if (idx <0 || idx>=animation->get_track_count())
break;
@@ -2797,7 +2865,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
float pos = mpos.x - name_limit;
pos/=_get_zoom_scale();
- pos+=h_scroll->get_val();
+ pos+=h_scroll->get_value();
float w_time = (type_icon[0]->get_width() / _get_zoom_scale())/2.0;
int kidx = animation->track_find_key(idx,pos);
@@ -2850,7 +2918,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
} break;
case Animation::TYPE_VALUE: {
- Variant v = animation->track_get_key_value(idx,mouse_over.over_key);;
+ Variant v = animation->track_get_key_value(idx,mouse_over.over_key);
//text+="value: "+String(v)+"\n";
bool prop_exists=false;
@@ -2940,7 +3008,15 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
*/
- if (ofsx < down_icon->get_width() + interp_icon[0]->get_width() + hsep*2) {
+ if (ofsx < down_icon->get_width() + wrap_icon[0]->get_width() + hsep*3) {
+
+ mouse_over.over=MouseOver::OVER_WRAP;
+ return;
+ }
+
+ ofsx-=hsep*3+wrap_icon[0]->get_width() + down_icon->get_width();
+
+ if (ofsx < down_icon->get_width() + interp_icon[0]->get_width() + hsep*3) {
mouse_over.over=MouseOver::OVER_INTERP;
return;
@@ -3012,7 +3088,7 @@ void AnimationKeyEditor::_notification(int p_what) {
tpp->add_item(TTR("In-Out"),TRACK_MENU_SET_ALL_TRANS_INOUT);
tpp->add_item(TTR("Out-In"),TRACK_MENU_SET_ALL_TRANS_OUTIN);
tpp->set_name(TTR("Transitions"));
- tpp->connect("item_pressed",this,"_menu_track");
+ tpp->connect("id_pressed",this,"_menu_track");
optimize_dialog->connect("confirmed",this,"_animation_optimize");
menu_track->get_popup()->add_child(tpp);
@@ -3068,13 +3144,18 @@ void AnimationKeyEditor::_notification(int p_what) {
get_icon("TrackTrigger","EditorIcons")
};
+ Ref<Texture> wrap_icon[2]={
+ get_icon("InterpWrapClamp","EditorIcons"),
+ get_icon("InterpWrapLoop","EditorIcons"),
+ };
+
//right_data_size_cache = remove_icon->get_width() + move_up_icon->get_width() + move_down_icon->get_width() + down_icon->get_width() *2 + interp_icon[0]->get_width() + cont_icon[0]->get_width() + add_key_icon->get_width() + hsep*11;
- right_data_size_cache = down_icon->get_width() *2 + add_key_icon->get_width() + interp_icon[0]->get_width() + cont_icon[0]->get_width() + hsep*7;
+ right_data_size_cache = down_icon->get_width() *3 + add_key_icon->get_width() + interp_icon[0]->get_width() + cont_icon[0]->get_width() + wrap_icon[0]->get_width() + hsep*8;
}
call_select->connect("selected",this,"_add_call_track");
-// rename_anim->set_icon( get_icon("Rename","EditorIcons") );
+ //rename_anim->set_icon( get_icon("Rename","EditorIcons") );
/*
edit_anim->set_icon( get_icon("Edit","EditorIcons") );
blend_anim->set_icon( get_icon("Blend","EditorIcons") );
@@ -3082,8 +3163,8 @@ void AnimationKeyEditor::_notification(int p_what) {
stop->set_icon( get_icon("Stop","EditorIcons") );
pause->set_icon( get_icon("Pause","EditorIcons") );
*/
-// menu->set_icon(get_icon("Animation","EditorIcons"));
-// play->set_icon(get_icon("AnimationPlay","EditorIcons"));
+ //menu->set_icon(get_icon("Animation","EditorIcons"));
+ //play->set_icon(get_icon("AnimationPlay","EditorIcons"));
//menu->set_icon(get_icon("Animation","EditorIcons"));
_update_menu();
@@ -3112,8 +3193,8 @@ void AnimationKeyEditor::_update_paths() {
//timeline->set_max(animation->get_length());
//timeline->set_step(0.01);
track_editor->update();
- length->set_val(animation->get_length());
- step->set_val(animation->get_step());
+ length->set_value(animation->get_length());
+ step->set_value(animation->get_step());
}
}
@@ -3130,9 +3211,9 @@ void AnimationKeyEditor::_update_menu() {
if (animation.is_valid()) {
- length->set_val(animation->get_length());
+ length->set_value(animation->get_length());
loop->set_pressed(animation->has_loop());
- step->set_val(animation->get_step());
+ step->set_value(animation->get_step());
}
track_editor->update();
@@ -3174,12 +3255,12 @@ void AnimationKeyEditor::set_animation(const Ref<Animation>& p_anim) {
void AnimationKeyEditor::set_root(Node *p_root) {
if (root)
- root->disconnect("exit_tree",this,"_root_removed");
+ root->disconnect("tree_exited",this,"_root_removed");
root=p_root;
if (root)
- root->connect("exit_tree",this,"_root_removed",make_binds(),CONNECT_ONESHOT);
+ root->connect("tree_exited",this,"_root_removed",make_binds(),CONNECT_ONESHOT);
}
@@ -3196,7 +3277,7 @@ Node *AnimationKeyEditor::get_root() const {
void AnimationKeyEditor::update_keying() {
- bool keying_enabled=is_visible() && animation.is_valid();
+ bool keying_enabled=is_visible_in_tree() && animation.is_valid();
if (keying_enabled==keying)
return;
@@ -3215,14 +3296,14 @@ bool AnimationKeyEditor::has_keying() const {
void AnimationKeyEditor::_query_insert(const InsertData& p_id) {
- if (insert_frame!=OS::get_singleton()->get_frames_drawn()) {
+ if (insert_frame!=Engine::get_singleton()->get_frames_drawn()) {
//clear insert list for the frame if frame changed
- if (insert_confirm->is_visible())
+ if (insert_confirm->is_visible_in_tree())
return; //do nothing
insert_data.clear();
insert_query=false;
}
- insert_frame=OS::get_singleton()->get_frames_drawn();
+ insert_frame=Engine::get_singleton()->get_frames_drawn();
for (List<InsertData>::Element *E=insert_data.front();E;E=E->next()) {
//prevent insertion of multiple tracks
@@ -3233,7 +3314,7 @@ void AnimationKeyEditor::_query_insert(const InsertData& p_id) {
insert_data.push_back(p_id);
if (p_id.track_idx==-1) {
- if (bool(EDITOR_DEF("animation/confirm_insert_track",true))) {
+ if (bool(EDITOR_DEF("editors/animation/confirm_insert_track",true))) {
//potential new key, does not exist
if (insert_data.size()==1)
insert_confirm->set_text(vformat(TTR("Create NEW track for %s and insert key?"),p_id.query));
@@ -3451,7 +3532,7 @@ int AnimationKeyEditor::_confirm_insert(InsertData p_id,int p_last_track) {
h.type==Variant::VECTOR2 ||
h.type==Variant::RECT2 ||
h.type==Variant::VECTOR3 ||
- h.type==Variant::_AABB ||
+ h.type==Variant::RECT3 ||
h.type==Variant::QUAT ||
h.type==Variant::COLOR ||
h.type==Variant::TRANSFORM ) {
@@ -3626,7 +3707,7 @@ void AnimationKeyEditor::_pane_drag(const Point2& p_delta) {
ecs.y-=p_delta.y;
if (ecs.y<100)
ecs.y=100;
- ec->set_custom_minimum_size(ecs);;
+ ec->set_custom_minimum_size(ecs);
}
@@ -3710,7 +3791,7 @@ void AnimationKeyEditor::_scale() {
}
- float s = scale->get_val();
+ float s = scale->get_value();
if (s==0) {
ERR_PRINT("Can't scale to 0");
}
@@ -3841,48 +3922,48 @@ void AnimationKeyEditor::cleanup() {
void AnimationKeyEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_root_removed"),&AnimationKeyEditor::_root_removed);
- ObjectTypeDB::bind_method(_MD("_scale"),&AnimationKeyEditor::_scale);
- ObjectTypeDB::bind_method(_MD("set_root"),&AnimationKeyEditor::set_root);
+ ClassDB::bind_method(_MD("_root_removed"),&AnimationKeyEditor::_root_removed);
+ ClassDB::bind_method(_MD("_scale"),&AnimationKeyEditor::_scale);
+ ClassDB::bind_method(_MD("set_root"),&AnimationKeyEditor::set_root);
-// ObjectTypeDB::bind_method(_MD("_confirm_insert"),&AnimationKeyEditor::_confirm_insert);
- ObjectTypeDB::bind_method(_MD("_confirm_insert_list"),&AnimationKeyEditor::_confirm_insert_list);
+ //ClassDB::bind_method(_MD("_confirm_insert"),&AnimationKeyEditor::_confirm_insert);
+ ClassDB::bind_method(_MD("_confirm_insert_list"),&AnimationKeyEditor::_confirm_insert_list);
- ObjectTypeDB::bind_method(_MD("_update_paths"),&AnimationKeyEditor::_update_paths);
- ObjectTypeDB::bind_method(_MD("_track_editor_draw"),&AnimationKeyEditor::_track_editor_draw);
+ ClassDB::bind_method(_MD("_update_paths"),&AnimationKeyEditor::_update_paths);
+ ClassDB::bind_method(_MD("_track_editor_draw"),&AnimationKeyEditor::_track_editor_draw);
- ObjectTypeDB::bind_method(_MD("_animation_changed"),&AnimationKeyEditor::_animation_changed);
- ObjectTypeDB::bind_method(_MD("_scroll_changed"),&AnimationKeyEditor::_scroll_changed);
- ObjectTypeDB::bind_method(_MD("_track_editor_input_event"),&AnimationKeyEditor::_track_editor_input_event);
- ObjectTypeDB::bind_method(_MD("_track_name_changed"),&AnimationKeyEditor::_track_name_changed);
- ObjectTypeDB::bind_method(_MD("_track_menu_selected"),&AnimationKeyEditor::_track_menu_selected);
- ObjectTypeDB::bind_method(_MD("_menu_add_track"),&AnimationKeyEditor::_menu_add_track);
- ObjectTypeDB::bind_method(_MD("_menu_track"),&AnimationKeyEditor::_menu_track);
- ObjectTypeDB::bind_method(_MD("_clear_selection_for_anim"),&AnimationKeyEditor::_clear_selection_for_anim);
- ObjectTypeDB::bind_method(_MD("_select_at_anim"),&AnimationKeyEditor::_select_at_anim);
- ObjectTypeDB::bind_method(_MD("_track_pos_draw"),&AnimationKeyEditor::_track_pos_draw);
- ObjectTypeDB::bind_method(_MD("_insert_delay"),&AnimationKeyEditor::_insert_delay);
- ObjectTypeDB::bind_method(_MD("_step_changed"),&AnimationKeyEditor::_step_changed);
+ ClassDB::bind_method(_MD("_animation_changed"),&AnimationKeyEditor::_animation_changed);
+ ClassDB::bind_method(_MD("_scroll_changed"),&AnimationKeyEditor::_scroll_changed);
+ ClassDB::bind_method(_MD("_track_editor_gui_input"),&AnimationKeyEditor::_track_editor_gui_input);
+ ClassDB::bind_method(_MD("_track_name_changed"),&AnimationKeyEditor::_track_name_changed);
+ ClassDB::bind_method(_MD("_track_menu_selected"),&AnimationKeyEditor::_track_menu_selected);
+ ClassDB::bind_method(_MD("_menu_add_track"),&AnimationKeyEditor::_menu_add_track);
+ ClassDB::bind_method(_MD("_menu_track"),&AnimationKeyEditor::_menu_track);
+ ClassDB::bind_method(_MD("_clear_selection_for_anim"),&AnimationKeyEditor::_clear_selection_for_anim);
+ ClassDB::bind_method(_MD("_select_at_anim"),&AnimationKeyEditor::_select_at_anim);
+ ClassDB::bind_method(_MD("_track_pos_draw"),&AnimationKeyEditor::_track_pos_draw);
+ ClassDB::bind_method(_MD("_insert_delay"),&AnimationKeyEditor::_insert_delay);
+ ClassDB::bind_method(_MD("_step_changed"),&AnimationKeyEditor::_step_changed);
- ObjectTypeDB::bind_method(_MD("_animation_loop_changed"),&AnimationKeyEditor::_animation_loop_changed);
- ObjectTypeDB::bind_method(_MD("_animation_len_changed"),&AnimationKeyEditor::_animation_len_changed);
- ObjectTypeDB::bind_method(_MD("_create_value_item"),&AnimationKeyEditor::_create_value_item);
- ObjectTypeDB::bind_method(_MD("_pane_drag"),&AnimationKeyEditor::_pane_drag);
+ ClassDB::bind_method(_MD("_animation_loop_changed"),&AnimationKeyEditor::_animation_loop_changed);
+ ClassDB::bind_method(_MD("_animation_len_changed"),&AnimationKeyEditor::_animation_len_changed);
+ ClassDB::bind_method(_MD("_create_value_item"),&AnimationKeyEditor::_create_value_item);
+ ClassDB::bind_method(_MD("_pane_drag"),&AnimationKeyEditor::_pane_drag);
- ObjectTypeDB::bind_method(_MD("_animation_len_update"),&AnimationKeyEditor::_animation_len_update);
+ ClassDB::bind_method(_MD("_animation_len_update"),&AnimationKeyEditor::_animation_len_update);
- ObjectTypeDB::bind_method(_MD("set_animation"),&AnimationKeyEditor::set_animation);
- ObjectTypeDB::bind_method(_MD("_animation_optimize"),&AnimationKeyEditor::_animation_optimize);
- ObjectTypeDB::bind_method(_MD("_curve_transition_changed"),&AnimationKeyEditor::_curve_transition_changed);
- ObjectTypeDB::bind_method(_MD("_toggle_edit_curves"),&AnimationKeyEditor::_toggle_edit_curves);
- ObjectTypeDB::bind_method(_MD("_add_call_track"),&AnimationKeyEditor::_add_call_track);
+ ClassDB::bind_method(_MD("set_animation"),&AnimationKeyEditor::set_animation);
+ ClassDB::bind_method(_MD("_animation_optimize"),&AnimationKeyEditor::_animation_optimize);
+ ClassDB::bind_method(_MD("_curve_transition_changed"),&AnimationKeyEditor::_curve_transition_changed);
+ ClassDB::bind_method(_MD("_toggle_edit_curves"),&AnimationKeyEditor::_toggle_edit_curves);
+ ClassDB::bind_method(_MD("_add_call_track"),&AnimationKeyEditor::_add_call_track);
ADD_SIGNAL( MethodInfo("resource_selected", PropertyInfo( Variant::OBJECT, "res"),PropertyInfo( Variant::STRING, "prop") ) );
@@ -3914,7 +3995,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
h_scroll = memnew( HScrollBar );
h_scroll->connect("value_changed",this,"_scroll_changed");
add_child(h_scroll);
- h_scroll->set_val(0);
+ h_scroll->set_value(0);
HBoxContainer *hb = memnew( HBoxContainer );
@@ -3927,7 +4008,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
//menu->set_pos(Point2());
//add_child(menu);
- zoomicon = memnew( TextureFrame );
+ zoomicon = memnew( TextureRect );
hb->add_child(zoomicon);
zoomicon->set_tooltip(TTR("Animation zoom."));
@@ -3936,7 +4017,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
zoom->set_step(0.01);
zoom->set_min(0.0);
zoom->set_max(2.0);
- zoom->set_val(1.0);
+ zoom->set_value(1.0);
zoom->set_h_size_flags(SIZE_EXPAND_FILL);
zoom->set_stretch_ratio(2);
hb->add_child(zoom);
@@ -3968,7 +4049,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
step->set_min(0.00);
step->set_max(128);
step->set_step(0.01);
- step->set_val(0.0);
+ step->set_value(0.0);
step->set_h_size_flags(SIZE_EXPAND_FILL);
step->set_stretch_ratio(1);
step->set_tooltip(TTR("Cursor step snap (in seconds)."));
@@ -3986,7 +4067,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
menu_add_track = memnew( MenuButton );
hb->add_child(menu_add_track);
- menu_add_track->get_popup()->connect("item_pressed",this,"_menu_add_track");
+ menu_add_track->get_popup()->connect("id_pressed",this,"_menu_add_track");
menu_add_track->set_tooltip(TTR("Add new tracks."));
move_up_button = memnew( ToolButton );
@@ -4014,7 +4095,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
menu_track = memnew( MenuButton );
hb->add_child(menu_track);
- menu_track->get_popup()->connect("item_pressed",this,"_menu_track");
+ menu_track->get_popup()->connect("id_pressed",this,"_menu_track");
menu_track->set_tooltip(TTR("Track tools"));
edit_button = memnew( ToolButton );
@@ -4030,18 +4111,18 @@ AnimationKeyEditor::AnimationKeyEditor() {
optimize_dialog->set_title(TTR("Anim. Optimizer"));
VBoxContainer *optimize_vb = memnew( VBoxContainer );
optimize_dialog->add_child(optimize_vb);
- optimize_dialog->set_child_rect(optimize_vb);
+
optimize_linear_error = memnew( SpinBox );
optimize_linear_error->set_max(1.0);
optimize_linear_error->set_min(0.001);
optimize_linear_error->set_step(0.001);
- optimize_linear_error->set_val(0.05);
+ optimize_linear_error->set_value(0.05);
optimize_vb->add_margin_child(TTR("Max. Linear Error:"),optimize_linear_error);
optimize_angular_error = memnew( SpinBox );
optimize_angular_error->set_max(1.0);
optimize_angular_error->set_min(0.001);
optimize_angular_error->set_step(0.001);
- optimize_angular_error->set_val(0.01);
+ optimize_angular_error->set_value(0.01);
optimize_vb->add_margin_child(TTR("Max. Angular Error:"),optimize_angular_error);
optimize_max_angle = memnew( SpinBox );
@@ -4049,7 +4130,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
optimize_max_angle->set_max(360.0);
optimize_max_angle->set_min(0.0);
optimize_max_angle->set_step(0.1);
- optimize_max_angle->set_val(22);
+ optimize_max_angle->set_value(22);
optimize_dialog->get_ok()->set_text(TTR("Optimize"));
@@ -4069,9 +4150,9 @@ AnimationKeyEditor::AnimationKeyEditor() {
/* l = memnew( Label );
l->set_text("Base: ");
l->set_pos(Point2(0,3));
-// dr_panel->add_child(l);*/
+ //dr_panel->add_child(l);*/
-// menu->get_popup()->connect("item_pressed",this,"_menu_callback");
+ //menu->get_popup()->connect("id_pressed",this,"_menu_callback");
hb = memnew( HBoxContainer);
@@ -4082,7 +4163,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
track_editor = memnew( Control );
track_editor->connect("draw",this,"_track_editor_draw");
hb->add_child(track_editor);
- track_editor->connect("input_event",this,"_track_editor_input_event");
+ track_editor->connect("gui_input",this,"_track_editor_gui_input");
track_editor->set_focus_mode(Control::FOCUS_ALL);
track_editor->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -4090,7 +4171,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
track_pos = memnew( Control );
track_pos->set_area_as_parent_rect();
- track_pos->set_ignore_mouse(true);
+ track_pos->set_mouse_filter(MOUSE_FILTER_IGNORE);
track_editor->add_child(track_pos);
track_pos->connect("draw",this,"_track_pos_draw");
@@ -4107,7 +4188,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
v_scroll = memnew( VScrollBar );
hb->add_child(v_scroll);
v_scroll->connect("value_changed",this,"_scroll_changed");
- v_scroll->set_val(0);
+ v_scroll->set_value(0);
key_editor_tab = memnew(TabContainer);
hb->add_child(key_editor_tab);
@@ -4127,7 +4208,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
add_child(type_menu);
for(int i=0;i<Variant::VARIANT_MAX;i++)
type_menu->add_item(Variant::get_type_name(Variant::Type(i)),i);
- type_menu->connect("item_pressed",this,"_create_value_item");
+ type_menu->connect("id_pressed",this,"_create_value_item");
VBoxContainer *curve_vb = memnew( VBoxContainer );
curve_vb->set_name(TTR("Transition"));
@@ -4166,7 +4247,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
track_name->connect("text_entered",this,"_track_name_changed");
track_menu = memnew( PopupMenu );
add_child(track_menu);
- track_menu->connect("item_pressed",this,"_track_menu_selected");
+ track_menu->connect("id_pressed",this,"_track_menu_selected");
key_editor_tab->hide();
@@ -4198,7 +4279,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
scale_dialog = memnew( ConfirmationDialog );
VBoxContainer *vbc = memnew( VBoxContainer );
scale_dialog->add_child(vbc);
- scale_dialog->set_child_rect(vbc);
+
scale = memnew( SpinBox );
scale->set_min(-99999);
scale->set_max(99999);
@@ -4215,7 +4296,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
add_child(cleanup_dialog);
VBoxContainer *cleanup_vb = memnew( VBoxContainer );
cleanup_dialog->add_child(cleanup_vb);
- cleanup_dialog->set_child_rect(cleanup_vb);
+
cleanup_keys = memnew( CheckButton );
cleanup_keys->set_text(TTR("Remove invalid keys"));
cleanup_keys->set_pressed(true);
@@ -4237,6 +4318,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
add_constant_override("separation",get_constant("separation","VBoxContainer"));
+ track_editor->set_clip_contents(true);
}
diff --git a/tools/editor/animation_editor.h b/tools/editor/animation_editor.h
index 3078b3288b..c4539cd763 100644
--- a/tools/editor/animation_editor.h
+++ b/tools/editor/animation_editor.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,7 +33,7 @@
#include "scene/gui/slider.h"
#include "scene/gui/menu_button.h"
#include "scene/gui/spin_box.h"
-#include "scene/gui/texture_frame.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/scroll_bar.h"
#include "scene/gui/tool_button.h"
#include "scene/gui/file_dialog.h"
@@ -51,7 +51,7 @@ class AnimationCurveEdit;
class AnimationKeyEditor : public VBoxContainer {
- OBJ_TYPE( AnimationKeyEditor, VBoxContainer );
+ GDCLASS( AnimationKeyEditor, VBoxContainer );
/*
enum {
@@ -113,6 +113,7 @@ class AnimationKeyEditor : public VBoxContainer {
OVER_KEY,
OVER_VALUE,
OVER_INTERP,
+ OVER_WRAP,
OVER_UP,
OVER_DOWN,
OVER_REMOVE,
@@ -166,7 +167,9 @@ class AnimationKeyEditor : public VBoxContainer {
int track_name_editing;
int interp_editing;
int cont_editing;
+ int wrap_editing;
int selected_track;
+ int track_ofs[5];
int last_menu_track_opt;
LineEdit *track_name;
@@ -174,7 +177,7 @@ class AnimationKeyEditor : public VBoxContainer {
PopupMenu *type_menu;
Control *ec;
- TextureFrame *zoomicon;
+ TextureRect *zoomicon;
HSlider *zoom;
//MenuButton *menu;
SpinBox *length;
@@ -274,7 +277,7 @@ class AnimationKeyEditor : public VBoxContainer {
float _get_zoom_scale() const;
void _track_editor_draw();
- void _track_editor_input_event(const InputEvent& p_input);
+ void _track_editor_gui_input(const InputEvent& p_input);
void _track_pos_draw();
@@ -344,7 +347,7 @@ public:
void insert_value_key(const String& p_property, const Variant& p_value, bool p_advance);
void insert_transform_key(Spatial *p_node,const String& p_sub,const Transform& p_xform);
- void show_select_node_warning(bool p_show) { select_anim_warning->set_hidden(!p_show); }
+ void show_select_node_warning(bool p_show) { select_anim_warning->set_visible(p_show); }
AnimationKeyEditor();
~AnimationKeyEditor();
};
diff --git a/tools/editor/array_property_edit.cpp b/tools/editor/array_property_edit.cpp
index b6219ce67b..b587c4f830 100644
--- a/tools/editor/array_property_edit.cpp
+++ b/tools/editor/array_property_edit.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -100,13 +100,19 @@ bool ArrayPropertyEdit::_set(const StringName& p_name, const Variant& p_value){
ur->add_undo_method(this,"_set_value",i,arr.get(i));
}
- } else if (newsize>size && size) {
+ } else if (newsize>size) {
Variant init;
Variant::CallError ce;
- init = Variant::construct(arr.get(size-1).get_type(),NULL,0,ce);
- for(int i=size;i<newsize;i++) {
- ur->add_do_method(this,"_set_value",i,init);
+ Variant::Type new_type = subtype;
+ if(new_type==Variant::NIL && size) {
+ new_type = arr.get(size-1).get_type();
+ }
+ if(new_type!=Variant::NIL) {
+ init = Variant::construct(new_type,NULL,0,ce);
+ for(int i=size;i<newsize;i++) {
+ ur->add_do_method(this,"_set_value",i,init);
+ }
}
}
@@ -223,28 +229,52 @@ void ArrayPropertyEdit::_get_property_list( List<PropertyInfo> *p_list) const{
for(int i=0;i<items;i++) {
Variant v=arr.get(i+offset);
- if (arr.get_type()==Variant::ARRAY) {
+ bool is_typed = arr.get_type()!=Variant::ARRAY || subtype!=Variant::NIL;
+
+ if (!is_typed) {
p_list->push_back(PropertyInfo(Variant::INT,"indices/"+itos(i+offset)+"_type",PROPERTY_HINT_ENUM,vtypes));
}
- if (arr.get_type()!=Variant::ARRAY || v.get_type()!=Variant::NIL) {
+
+ if (is_typed || v.get_type()!=Variant::NIL ) {
PropertyInfo pi(v.get_type(),"indices/"+itos(i+offset));
- if (v.get_type()==Variant::OBJECT) {
+ if(subtype!=Variant::NIL) {
+ pi.type = Variant::Type(subtype);
+ pi.hint = PropertyHint(subtype_hint);
+ pi.hint_string = subtype_hint_string;
+ } else if (v.get_type()==Variant::OBJECT) {
pi.hint=PROPERTY_HINT_RESOURCE_TYPE;
pi.hint_string="Resource";
}
+
p_list->push_back(pi);
}
}
}
-void ArrayPropertyEdit::edit(Object* p_obj,const StringName& p_prop,Variant::Type p_deftype) {
+void ArrayPropertyEdit::edit(Object* p_obj,const StringName& p_prop,const String& p_hint_string,Variant::Type p_deftype) {
page=0;
property=p_prop;
obj=p_obj->get_instance_ID();
default_type=p_deftype;
+ if(!p_hint_string.empty()) {
+ int hint_subtype_seperator = p_hint_string.find(":");
+ if(hint_subtype_seperator >= 0) {
+ String subtype_string = p_hint_string.substr(0,hint_subtype_seperator);
+
+ int slash_pos = subtype_string.find("/");
+ if(slash_pos >= 0) {
+ subtype_hint = PropertyHint(subtype_string.substr(slash_pos+1, subtype_string.size()-slash_pos-1).to_int());
+ subtype_string = subtype_string.substr(0,slash_pos);
+ }
+
+ subtype_hint_string = p_hint_string.substr(hint_subtype_seperator+1, p_hint_string.size() - hint_subtype_seperator-1);
+ subtype=Variant::Type(subtype_string.to_int());
+ }
+ }
+
}
Node *ArrayPropertyEdit::get_node() {
@@ -258,10 +288,10 @@ Node *ArrayPropertyEdit::get_node() {
void ArrayPropertyEdit::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_set_size"),&ArrayPropertyEdit::_set_size);
- ObjectTypeDB::bind_method(_MD("_set_value"),&ArrayPropertyEdit::_set_value);
- ObjectTypeDB::bind_method(_MD("_notif_change"),&ArrayPropertyEdit::_notif_change);
- ObjectTypeDB::bind_method(_MD("_notif_changev"),&ArrayPropertyEdit::_notif_changev);
+ ClassDB::bind_method(_MD("_set_size"),&ArrayPropertyEdit::_set_size);
+ ClassDB::bind_method(_MD("_set_value"),&ArrayPropertyEdit::_set_value);
+ ClassDB::bind_method(_MD("_notif_change"),&ArrayPropertyEdit::_notif_change);
+ ClassDB::bind_method(_MD("_notif_changev"),&ArrayPropertyEdit::_notif_changev);
}
ArrayPropertyEdit::ArrayPropertyEdit()
@@ -274,5 +304,7 @@ ArrayPropertyEdit::ArrayPropertyEdit()
vtypes+=Variant::get_type_name( Variant::Type(i) );
}
default_type=Variant::NIL;
-
+ subtype=Variant::NIL;
+ subtype_hint=PROPERTY_HINT_NONE;
+ subtype_hint_string="";
}
diff --git a/tools/editor/array_property_edit.h b/tools/editor/array_property_edit.h
index a2aa24c8ed..6ca700bf80 100644
--- a/tools/editor/array_property_edit.h
+++ b/tools/editor/array_property_edit.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,12 +33,15 @@
class ArrayPropertyEdit : public Reference {
- OBJ_TYPE(ArrayPropertyEdit,Reference);
+ GDCLASS(ArrayPropertyEdit,Reference);
int page;
ObjectID obj;
StringName property;
String vtypes;
+ String subtype_hint_string;
+ PropertyHint subtype_hint;
+ Variant::Type subtype;
Variant get_array() const;
Variant::Type default_type;
@@ -56,7 +59,7 @@ protected:
public:
- void edit(Object* p_obj, const StringName& p_prop, Variant::Type p_deftype);
+ void edit(Object* p_obj, const StringName& p_prop, const String& p_hint_string, Variant::Type p_deftype);
Node *get_node();
diff --git a/tools/editor/asset_library_editor_plugin.cpp b/tools/editor/asset_library_editor_plugin.cpp
index 3fd5d2b5d1..6ba7a7e79b 100644
--- a/tools/editor/asset_library_editor_plugin.cpp
+++ b/tools/editor/asset_library_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,10 +27,10 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "asset_library_editor_plugin.h"
+
#include "editor_node.h"
#include "editor_settings.h"
-
-
+#include "io/json.h"
void EditorAssetLibraryItem::configure(const String& p_title,int p_asset_id,const String& p_category,int p_category_id,const String& p_author,int p_author_id,int p_rating,const String& p_cost) {
@@ -89,10 +89,10 @@ void EditorAssetLibraryItem::_author_clicked(){
void EditorAssetLibraryItem::_bind_methods() {
- ObjectTypeDB::bind_method("set_image",&EditorAssetLibraryItem::set_image);
- ObjectTypeDB::bind_method("_asset_clicked",&EditorAssetLibraryItem::_asset_clicked);
- ObjectTypeDB::bind_method("_category_clicked",&EditorAssetLibraryItem::_category_clicked);
- ObjectTypeDB::bind_method("_author_clicked",&EditorAssetLibraryItem::_author_clicked);
+ ClassDB::bind_method("set_image",&EditorAssetLibraryItem::set_image);
+ ClassDB::bind_method("_asset_clicked",&EditorAssetLibraryItem::_asset_clicked);
+ ClassDB::bind_method("_category_clicked",&EditorAssetLibraryItem::_category_clicked);
+ ClassDB::bind_method("_author_clicked",&EditorAssetLibraryItem::_author_clicked);
ADD_SIGNAL( MethodInfo("asset_selected"));
ADD_SIGNAL( MethodInfo("category_selected"));
ADD_SIGNAL( MethodInfo("author_selected"));
@@ -147,7 +147,7 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() {
vb->add_child(rating_hb);
for(int i=0;i<5;i++) {
- stars[i]=memnew(TextureFrame);
+ stars[i]=memnew(TextureRect);
rating_hb->add_child(stars[i]);
}
price = memnew( Label );
@@ -157,7 +157,7 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() {
set_custom_minimum_size(Size2(250,100));
set_h_size_flags(SIZE_EXPAND_FILL);
- set_stop_mouse(false);
+ set_mouse_filter(MOUSE_FILTER_PASS);
}
//////////////////////////////////////////////////////////////////////////////
@@ -199,9 +199,9 @@ void EditorAssetLibraryItemDescription::set_image(int p_type,int p_index,const R
}
void EditorAssetLibraryItemDescription::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("set_image"),&EditorAssetLibraryItemDescription::set_image);
- ObjectTypeDB::bind_method(_MD("_link_click"),&EditorAssetLibraryItemDescription::_link_click);
- ObjectTypeDB::bind_method(_MD("_preview_click"),&EditorAssetLibraryItemDescription::_preview_click);
+ ClassDB::bind_method(_MD("set_image"),&EditorAssetLibraryItemDescription::set_image);
+ ClassDB::bind_method(_MD("_link_click"),&EditorAssetLibraryItemDescription::_link_click);
+ ClassDB::bind_method(_MD("_preview_click"),&EditorAssetLibraryItemDescription::_preview_click);
}
@@ -270,7 +270,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() {
VBoxContainer *vbox = memnew( VBoxContainer );
add_child(vbox);
- set_child_rect(vbox);
+
HBoxContainer *hbox = memnew( HBoxContainer);
@@ -296,7 +296,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() {
desc_bg->add_child(description);
desc_bg->add_style_override("panel",get_stylebox("normal","TextEdit"));
- preview = memnew( TextureFrame );
+ preview = memnew( TextureRect );
preview->set_custom_minimum_size(Size2(640,345));
hbox->add_child(preview);
@@ -321,7 +321,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() {
}
///////////////////////////////////////////////////////////////////////////////////
-void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data) {
+void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data) {
String error_text;
@@ -379,12 +379,12 @@ void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int
}
progress->set_max( download->get_body_size() );
- progress->set_val(download->get_downloaded_bytes());
+ progress->set_value(download->get_downloaded_bytes());
print_line("max: "+itos(download->get_body_size())+" bytes: "+itos(download->get_downloaded_bytes()));
install->set_disabled(false);
- progress->set_val(download->get_downloaded_bytes());
+ progress->set_value(download->get_downloaded_bytes());
status->set_text("Success! ("+String::humanize_size(download->get_downloaded_bytes())+")");
set_process(false);
@@ -411,7 +411,7 @@ void EditorAssetLibraryItemDownload::_notification(int p_what) {
if (p_what==NOTIFICATION_PROCESS) {
progress->set_max( download->get_body_size() );
- progress->set_val(download->get_downloaded_bytes());
+ progress->set_value(download->get_downloaded_bytes());
int cstatus = download->get_http_client_status();
@@ -472,10 +472,10 @@ void EditorAssetLibraryItemDownload::_make_request() {
void EditorAssetLibraryItemDownload::_bind_methods() {
- ObjectTypeDB::bind_method("_http_download_completed",&EditorAssetLibraryItemDownload::_http_download_completed);
- ObjectTypeDB::bind_method("_install",&EditorAssetLibraryItemDownload::_install);
- ObjectTypeDB::bind_method("_close",&EditorAssetLibraryItemDownload::_close);
- ObjectTypeDB::bind_method("_make_request",&EditorAssetLibraryItemDownload::_make_request);
+ ClassDB::bind_method("_http_download_completed",&EditorAssetLibraryItemDownload::_http_download_completed);
+ ClassDB::bind_method("_install",&EditorAssetLibraryItemDownload::_install);
+ ClassDB::bind_method("_close",&EditorAssetLibraryItemDownload::_close);
+ ClassDB::bind_method("_make_request",&EditorAssetLibraryItemDownload::_make_request);
ADD_SIGNAL(MethodInfo("install_asset",PropertyInfo(Variant::STRING,"zip_path"),PropertyInfo(Variant::STRING,"name")));
@@ -485,7 +485,7 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() {
HBoxContainer *hb = memnew( HBoxContainer);
add_child(hb);
- icon = memnew( TextureFrame );
+ icon = memnew( TextureRect );
hb->add_child(icon);
VBoxContainer *vb = memnew( VBoxContainer );
@@ -555,7 +555,7 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() {
void EditorAssetLibrary::_notification(int p_what) {
if (p_what==NOTIFICATION_READY) {
- TextureFrame *tf = memnew(TextureFrame);
+ TextureRect *tf = memnew(TextureRect);
tf->set_texture(get_icon("Error","EditorIcons"));
reverse->set_icon(get_icon("Updown","EditorIcons"));
@@ -564,7 +564,7 @@ void EditorAssetLibrary::_notification(int p_what) {
}
if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
- if(!is_hidden()) {
+ if(is_visible()) {
_repository_changed(0); // Update when shown for the first time
}
}
@@ -574,24 +574,24 @@ void EditorAssetLibrary::_notification(int p_what) {
HTTPClient::Status s = request->get_http_client_status();
bool visible = s!=HTTPClient::STATUS_DISCONNECTED;
- if (visible != !load_status->is_hidden()) {
- load_status->set_hidden(!visible);
+ if (visible != load_status->is_visible()) {
+ load_status->set_visible(visible);
}
if (visible) {
switch(s) {
case HTTPClient::STATUS_RESOLVING: {
- load_status->set_val(0.1);
+ load_status->set_value(0.1);
} break;
case HTTPClient::STATUS_CONNECTING: {
- load_status->set_val(0.2);
+ load_status->set_value(0.2);
} break;
case HTTPClient::STATUS_REQUESTING: {
- load_status->set_val(0.3);
+ load_status->set_value(0.3);
} break;
case HTTPClient::STATUS_BODY: {
- load_status->set_val(0.4);
+ load_status->set_value(0.4);
} break;
default: {}
@@ -599,8 +599,8 @@ void EditorAssetLibrary::_notification(int p_what) {
}
bool no_downloads = downloads_hb->get_child_count()==0;
- if (no_downloads != downloads_scroll->is_hidden()) {
- downloads_scroll->set_hidden(no_downloads);
+ if (no_downloads == downloads_scroll->is_visible()) {
+ downloads_scroll->set_visible(!no_downloads);
}
}
@@ -691,12 +691,12 @@ void EditorAssetLibrary::_select_asset(int p_id){
description->popup_centered_minsize();*/
}
-void EditorAssetLibrary::_image_update(bool use_cache, bool final, const ByteArray& p_data, int p_queue_id) {
+void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PoolByteArray& p_data, int p_queue_id) {
Object *obj = ObjectDB::get_instance(image_queue[p_queue_id].target);
if (obj) {
bool image_set = false;
- ByteArray image_data = p_data;
+ PoolByteArray image_data = p_data;
if(use_cache) {
String cache_filename_base = EditorSettings::get_singleton()->get_settings_path().plus_file("tmp").plus_file("assetimage_"+image_queue[p_queue_id].image_url.md5_text());
@@ -704,11 +704,11 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const ByteArr
FileAccess* file = FileAccess::open(cache_filename_base+".data", FileAccess::READ);
if(file) {
- ByteArray cached_data;
+ PoolByteArray cached_data;
int len=file->get_32();
cached_data.resize(len);
- ByteArray::Write w=cached_data.write();
+ PoolByteArray::Write w=cached_data.write();
file->get_buffer(w.ptr(), len);
image_data = cached_data;
@@ -717,7 +717,7 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const ByteArr
}
int len=image_data.size();
- ByteArray::Read r=image_data.read();
+ PoolByteArray::Read r=image_data.read();
Image image(r.ptr(),len);
if (!image.empty()) {
float max_height = 10000;
@@ -745,7 +745,7 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const ByteArr
}
}
-void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data,int p_queue_id) {
+void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data,int p_queue_id) {
ERR_FAIL_COND( !image_queue.has(p_queue_id) );
@@ -767,7 +767,7 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons
}
int len=p_data.size();
- ByteArray::Read r=p_data.read();
+ PoolByteArray::Read r=p_data.read();
file = FileAccess::open(cache_filename_base+".data", FileAccess::WRITE);
if(file) {
file->store_32(len);
@@ -789,7 +789,7 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons
}
}
- image_queue[p_queue_id].request->queue_delete();;
+ image_queue[p_queue_id].request->queue_delete();
image_queue.erase(p_queue_id);
_update_image_queue();
@@ -855,7 +855,7 @@ void EditorAssetLibrary::_request_image(ObjectID p_for,String p_image_url,ImageT
add_child(iq.request);
- _image_update(true, false, ByteArray(), iq.queue_id);
+ _image_update(true, false, PoolByteArray(), iq.queue_id);
_update_image_queue();
@@ -1021,14 +1021,14 @@ void EditorAssetLibrary::_api_request(const String& p_request, RequestType p_req
-void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data) {
+void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data) {
String str;
{
int datalen=p_data.size();
- ByteArray::Read r = p_data.read();
+ PoolByteArray::Read r = p_data.read();
str.parse_utf8((const char*)r.ptr(),datalen);
}
@@ -1076,8 +1076,16 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const
}
print_line("response: "+itos(p_status)+" code: "+itos(p_code));
+
Dictionary d;
- d.parse_json(str);
+ {
+ Variant js;
+ String errs;
+ int errl;
+ JSON::parse(str,js,errs,errl);
+ d=js;
+ }
+
print_line(Variant(d).get_construct_string());
@@ -1288,20 +1296,20 @@ void EditorAssetLibrary::_install_external_asset(String p_zip_path,String p_titl
void EditorAssetLibrary::_bind_methods() {
- ObjectTypeDB::bind_method("_http_request_completed",&EditorAssetLibrary::_http_request_completed);
- ObjectTypeDB::bind_method("_select_asset",&EditorAssetLibrary::_select_asset);
- ObjectTypeDB::bind_method("_select_author",&EditorAssetLibrary::_select_author);
- ObjectTypeDB::bind_method("_select_category",&EditorAssetLibrary::_select_category);
- ObjectTypeDB::bind_method("_image_request_completed",&EditorAssetLibrary::_image_request_completed);
- ObjectTypeDB::bind_method("_search",&EditorAssetLibrary::_search,DEFVAL(0));
- ObjectTypeDB::bind_method("_install_asset",&EditorAssetLibrary::_install_asset);
- ObjectTypeDB::bind_method("_manage_plugins",&EditorAssetLibrary::_manage_plugins);
- ObjectTypeDB::bind_method("_asset_open",&EditorAssetLibrary::_asset_open);
- ObjectTypeDB::bind_method("_asset_file_selected",&EditorAssetLibrary::_asset_file_selected);
- ObjectTypeDB::bind_method("_repository_changed",&EditorAssetLibrary::_repository_changed);
- ObjectTypeDB::bind_method("_support_toggled",&EditorAssetLibrary::_support_toggled);
- ObjectTypeDB::bind_method("_rerun_search",&EditorAssetLibrary::_rerun_search);
- ObjectTypeDB::bind_method("_install_external_asset",&EditorAssetLibrary::_install_external_asset);
+ ClassDB::bind_method("_http_request_completed",&EditorAssetLibrary::_http_request_completed);
+ ClassDB::bind_method("_select_asset",&EditorAssetLibrary::_select_asset);
+ ClassDB::bind_method("_select_author",&EditorAssetLibrary::_select_author);
+ ClassDB::bind_method("_select_category",&EditorAssetLibrary::_select_category);
+ ClassDB::bind_method("_image_request_completed",&EditorAssetLibrary::_image_request_completed);
+ ClassDB::bind_method("_search",&EditorAssetLibrary::_search,DEFVAL(0));
+ ClassDB::bind_method("_install_asset",&EditorAssetLibrary::_install_asset);
+ ClassDB::bind_method("_manage_plugins",&EditorAssetLibrary::_manage_plugins);
+ ClassDB::bind_method("_asset_open",&EditorAssetLibrary::_asset_open);
+ ClassDB::bind_method("_asset_file_selected",&EditorAssetLibrary::_asset_file_selected);
+ ClassDB::bind_method("_repository_changed",&EditorAssetLibrary::_repository_changed);
+ ClassDB::bind_method("_support_toggled",&EditorAssetLibrary::_support_toggled);
+ ClassDB::bind_method("_rerun_search",&EditorAssetLibrary::_rerun_search);
+ ClassDB::bind_method("_install_external_asset",&EditorAssetLibrary::_install_external_asset);
@@ -1418,7 +1426,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
support->get_popup()->add_check_item(TTR("Testing"),SUPPORT_TESTING);
support->get_popup()->set_item_checked(SUPPORT_OFFICIAL,true);
support->get_popup()->set_item_checked(SUPPORT_COMMUNITY,true);
- support->get_popup()->connect("item_pressed",this,"_support_toggled");
+ support->get_popup()->connect("id_pressed",this,"_support_toggled");
/////////
@@ -1446,7 +1454,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
library_scroll->add_child(library_vb_border);
library_vb_border->add_style_override("panel",border2);
library_vb_border->set_h_size_flags(SIZE_EXPAND_FILL);
- library_vb_border->set_stop_mouse(false);
+ library_vb_border->set_mouse_filter(MOUSE_FILTER_PASS);
@@ -1454,7 +1462,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) {
library_vb->set_h_size_flags(SIZE_EXPAND_FILL);
library_vb_border->add_child(library_vb);
-// margin_panel->set_stop_mouse(false);
+ //margin_panel->set_stop_mouse(false);
asset_top_page = memnew( HBoxContainer );
library_vb->add_child(asset_top_page);
diff --git a/tools/editor/asset_library_editor_plugin.h b/tools/editor/asset_library_editor_plugin.h
index fe40255af9..0598ea90ea 100644
--- a/tools/editor/asset_library_editor_plugin.h
+++ b/tools/editor/asset_library_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -52,13 +52,13 @@
class EditorAssetLibraryItem : public PanelContainer {
- OBJ_TYPE( EditorAssetLibraryItem, PanelContainer );
+ GDCLASS( EditorAssetLibraryItem, PanelContainer );
TextureButton *icon;
LinkButton* title;
LinkButton* category;
LinkButton* author;
- TextureFrame *stars[5];
+ TextureRect *stars[5];
Label* price;
int asset_id;
@@ -88,7 +88,7 @@ public:
class EditorAssetLibraryItemDescription : public ConfirmationDialog {
- OBJ_TYPE(EditorAssetLibraryItemDescription, ConfirmationDialog);
+ GDCLASS(EditorAssetLibraryItemDescription, ConfirmationDialog);
EditorAssetLibraryItem *item;
RichTextLabel *description;
@@ -104,7 +104,7 @@ class EditorAssetLibraryItemDescription : public ConfirmationDialog {
};
Vector<Preview> preview_images;
- TextureFrame *preview;
+ TextureRect *preview;
void set_image(int p_type,int p_index,const Ref<Texture>& p_image);
@@ -135,10 +135,10 @@ public:
class EditorAssetLibraryItemDownload : public PanelContainer {
- OBJ_TYPE(EditorAssetLibraryItemDownload, PanelContainer);
+ GDCLASS(EditorAssetLibraryItemDownload, PanelContainer);
- TextureFrame *icon;
+ TextureRect *icon;
Label* title;
ProgressBar *progress;
Button *install;
@@ -162,7 +162,7 @@ class EditorAssetLibraryItemDownload : public PanelContainer {
void _close();
void _install();
void _make_request();
- void _http_download_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data);
+ void _http_download_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data);
protected:
@@ -178,7 +178,7 @@ public:
};
class EditorAssetLibrary : public PanelContainer {
- OBJ_TYPE(EditorAssetLibrary,PanelContainer);
+ GDCLASS(EditorAssetLibrary,PanelContainer);
String host;
@@ -259,8 +259,8 @@ class EditorAssetLibrary : public PanelContainer {
int last_queue_id;
Map<int,ImageQueue> image_queue;
- void _image_update(bool use_cache, bool final, const ByteArray& p_data, int p_queue_id);
- void _image_request_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data, int p_queue_id);
+ void _image_update(bool use_cache, bool final, const PoolByteArray& p_data, int p_queue_id);
+ void _image_request_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data, int p_queue_id);
void _request_image(ObjectID p_for,String p_image_url,ImageType p_type,int p_image_index);
void _update_image_queue();
@@ -298,8 +298,8 @@ class EditorAssetLibrary : public PanelContainer {
void _search(int p_page=0);
void _rerun_search(int p_ignore);
void _api_request(const String& p_request, RequestType p_request_type, const String &p_arguments="");
- void _http_request_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data);
- void _http_download_completed(int p_status, int p_code, const StringArray& headers, const ByteArray& p_data);
+ void _http_request_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data);
+ void _http_download_completed(int p_status, int p_code, const PoolStringArray& headers, const PoolByteArray& p_data);
void _repository_changed(int p_repository_id);
void _support_toggled(int p_support);
@@ -318,7 +318,7 @@ public:
class AssetLibraryEditorPlugin : public EditorPlugin {
- OBJ_TYPE( AssetLibraryEditorPlugin, EditorPlugin );
+ GDCLASS( AssetLibraryEditorPlugin, EditorPlugin );
EditorAssetLibrary *addon_library;
EditorNode *editor;
diff --git a/tools/editor/call_dialog.cpp b/tools/editor/call_dialog.cpp
index 0c6c64a33b..6dfeb87dfd 100644
--- a/tools/editor/call_dialog.cpp
+++ b/tools/editor/call_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,14 +28,15 @@
/*************************************************************************/
#include "call_dialog.h"
+#if 0
#include "scene/gui/label.h"
-#include "object_type_db.h"
+#include "class_db.h"
#include "print_string.h"
class CallDialogParams : public Object {
- OBJ_TYPE( CallDialogParams, Object );
+ GDCLASS( CallDialogParams, Object );
public:
bool _set(const StringName& p_name, const Variant& p_value) {
@@ -170,11 +171,11 @@ void CallDialog::_update_method_list() {
List<String> inheritance_list;
- String type = object->get_type();
+ String type = object->get_class();
while(type!="") {
inheritance_list.push_back( type );
- type=ObjectTypeDB::type_inherits_from(type);
+ type=ClassDB::get_parent_class(type);
}
TreeItem *selected_item=NULL;
@@ -182,7 +183,7 @@ void CallDialog::_update_method_list() {
for(int i=0;i<inheritance_list.size();i++) {
String type=inheritance_list[i];
- String parent_type=ObjectTypeDB::type_inherits_from(type);
+ String parent_type=ClassDB::get_parent_class(type);
TreeItem *type_item=NULL;
@@ -192,7 +193,7 @@ void CallDialog::_update_method_list() {
N=E->next();
- if (parent_type!="" && ObjectTypeDB::get_method(parent_type,E->get().name)!=NULL) {
+ if (parent_type!="" && ClassDB::get_method(parent_type,E->get().name)!=NULL) {
E=N;
continue;
}
@@ -224,9 +225,9 @@ void CallDialog::_update_method_list() {
void CallDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_call",&CallDialog::_call);
- ObjectTypeDB::bind_method("_cancel",&CallDialog::_cancel);
- ObjectTypeDB::bind_method("_item_selected", &CallDialog::_item_selected);
+ ClassDB::bind_method("_call",&CallDialog::_call);
+ ClassDB::bind_method("_cancel",&CallDialog::_cancel);
+ ClassDB::bind_method("_item_selected", &CallDialog::_item_selected);
}
@@ -239,7 +240,7 @@ void CallDialog::set_object(Object *p_object,StringName p_selected) {
return_value->clear();
_update_method_list();
- method_label->set_text(vformat(TTR("Method List For '%s':"),p_object->get_type()));
+ method_label->set_text(vformat(TTR("Method List For '%s':"),p_object->get_class()));
}
CallDialog::CallDialog() {
@@ -268,7 +269,6 @@ CallDialog::CallDialog() {
tree = memnew( Tree );
- tree->set_anchor( MARGIN_RIGHT, ANCHOR_RATIO );
tree->set_anchor( MARGIN_BOTTOM, ANCHOR_END );
tree->set_begin( Point2( 20,50 ) );
tree->set_margin(MARGIN_BOTTOM, 44 );
@@ -283,7 +283,7 @@ CallDialog::CallDialog() {
property_editor->set_anchor_and_margin( MARGIN_RIGHT, ANCHOR_END, 15 );
property_editor->set_anchor_and_margin( MARGIN_TOP, ANCHOR_BEGIN, 50 );
- property_editor->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.55 );
+ //property_editor->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.55 );
property_editor->set_anchor_and_margin( MARGIN_BOTTOM, ANCHOR_END, 90 );
property_editor->get_scene_tree()->set_hide_root( true );
property_editor->hide_top_label();
@@ -296,21 +296,21 @@ CallDialog::CallDialog() {
add_child(method_label);
Label *label = memnew( Label );
- label->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.53 );
+ //label->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.53 );
label->set_anchor_and_margin( MARGIN_TOP, ANCHOR_BEGIN, 25 );
label->set_text(TTR("Arguments:"));
add_child(label);
return_label = memnew( Label );
- return_label->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.53 );
+ //return_label->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.53 );
return_label->set_anchor_and_margin( MARGIN_TOP, ANCHOR_END, 85 );
return_label->set_text(TTR("Return:"));
add_child(return_label);
return_value = memnew( LineEdit );
- return_value->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.55 );
+ //return_value->set_anchor_and_margin( MARGIN_LEFT, ANCHOR_RATIO, 0.55 );
return_value->set_anchor_and_margin( MARGIN_RIGHT, ANCHOR_END, 15 );
return_value->set_anchor_and_margin( MARGIN_TOP, ANCHOR_END, 65 );
@@ -338,3 +338,4 @@ CallDialog::~CallDialog()
{
memdelete(call_params);
}
+#endif
diff --git a/tools/editor/call_dialog.h b/tools/editor/call_dialog.h
index a2ca925ff1..b0ebe68d86 100644
--- a/tools/editor/call_dialog.h
+++ b/tools/editor/call_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -39,12 +39,13 @@
@author Juan Linietsky <reduzio@gmail.com>
*/
+#if 0
class CallDialogParams;
class CallDialog : public Popup {
- OBJ_TYPE( CallDialog, Popup );
+ GDCLASS( CallDialog, Popup );
Label* method_label;
@@ -81,3 +82,4 @@ public:
};
#endif
+#endif
diff --git a/tools/editor/code_editor.cpp b/tools/editor/code_editor.cpp
index 626f86d33d..0a25b43716 100644
--- a/tools/editor/code_editor.cpp
+++ b/tools/editor/code_editor.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "code_editor.h"
+
#include "editor_settings.h"
#include "scene/gui/margin_container.h"
#include "scene/gui/separator.h"
@@ -91,7 +92,7 @@ void FindReplaceBar::_notification(int p_what) {
} else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) {
- set_process_unhandled_input(is_visible());
+ set_process_unhandled_input(is_visible_in_tree());
}
}
@@ -377,7 +378,7 @@ void FindReplaceBar::popup_search() {
void FindReplaceBar::popup_replace() {
- if (!replace_hbc->is_visible() || !replace_options_hbc->is_visible()) {
+ if (!replace_hbc->is_visible_in_tree() || !replace_options_hbc->is_visible_in_tree()) {
replace_text->clear();
replace_hbc->show();
replace_options_hbc->show();
@@ -396,7 +397,7 @@ void FindReplaceBar::_search_options_changed(bool p_pressed) {
void FindReplaceBar::_editor_text_changed() {
- if (is_visible()) {
+ if (is_visible_in_tree()) {
preserve_cursor=true;
search_current();
preserve_cursor=false;
@@ -459,19 +460,19 @@ void FindReplaceBar::set_text_edit(TextEdit *p_text_edit) {
void FindReplaceBar::_bind_methods() {
- ObjectTypeDB::bind_method("_unhandled_input",&FindReplaceBar::_unhandled_input);
+ ClassDB::bind_method("_unhandled_input",&FindReplaceBar::_unhandled_input);
- ObjectTypeDB::bind_method("_editor_text_changed",&FindReplaceBar::_editor_text_changed);
- ObjectTypeDB::bind_method("_search_text_changed",&FindReplaceBar::_search_text_changed);
- ObjectTypeDB::bind_method("_search_text_entered",&FindReplaceBar::_search_text_entered);
- ObjectTypeDB::bind_method("_replace_text_entered",&FindReplaceBar::_replace_text_entered);
- ObjectTypeDB::bind_method("_search_current",&FindReplaceBar::search_current);
- ObjectTypeDB::bind_method("_search_next",&FindReplaceBar::search_next);
- ObjectTypeDB::bind_method("_search_prev",&FindReplaceBar::search_prev);
- ObjectTypeDB::bind_method("_replace_pressed",&FindReplaceBar::_replace);
- ObjectTypeDB::bind_method("_replace_all_pressed",&FindReplaceBar::_replace_all);
- ObjectTypeDB::bind_method("_search_options_changed",&FindReplaceBar::_search_options_changed);
- ObjectTypeDB::bind_method("_hide_pressed",&FindReplaceBar::_hide_bar);
+ ClassDB::bind_method("_editor_text_changed",&FindReplaceBar::_editor_text_changed);
+ ClassDB::bind_method("_search_text_changed",&FindReplaceBar::_search_text_changed);
+ ClassDB::bind_method("_search_text_entered",&FindReplaceBar::_search_text_entered);
+ ClassDB::bind_method("_replace_text_entered",&FindReplaceBar::_replace_text_entered);
+ ClassDB::bind_method("_search_current",&FindReplaceBar::search_current);
+ ClassDB::bind_method("_search_next",&FindReplaceBar::search_next);
+ ClassDB::bind_method("_search_prev",&FindReplaceBar::search_prev);
+ ClassDB::bind_method("_replace_pressed",&FindReplaceBar::_replace);
+ ClassDB::bind_method("_replace_all_pressed",&FindReplaceBar::_replace_all);
+ ClassDB::bind_method("_search_options_changed",&FindReplaceBar::_search_options_changed);
+ ClassDB::bind_method("_hide_pressed",&FindReplaceBar::_hide_bar);
ADD_SIGNAL(MethodInfo("search"));
}
@@ -714,7 +715,7 @@ void FindReplaceDialog::_replace() {
}
text_edit->set_v_scroll(vsval);
-// text_edit->set_h_scroll(hsval);
+ //text_edit->set_h_scroll(hsval);
error_label->set_text(vformat(TTR("Replaced %d ocurrence(s)."),rc));
@@ -801,7 +802,7 @@ void FindReplaceDialog::_skip_pressed() {
bool FindReplaceDialog::is_replace_mode() const {
- return replace_text->is_visible();
+ return replace_text->is_visible_in_tree();
}
bool FindReplaceDialog::is_replace_all_mode() const {
@@ -826,7 +827,7 @@ void FindReplaceDialog::ok_pressed() {
void FindReplaceDialog::_search_text_entered(const String& p_text) {
- if (replace_text->is_visible())
+ if (replace_text->is_visible_in_tree())
return;
emit_signal("search");
_search();
@@ -835,7 +836,7 @@ void FindReplaceDialog::_search_text_entered(const String& p_text) {
void FindReplaceDialog::_replace_text_entered(const String& p_text) {
- if (!replace_text->is_visible())
+ if (!replace_text->is_visible_in_tree())
return;
emit_signal("search");
@@ -884,10 +885,10 @@ void FindReplaceDialog::search_next() {
void FindReplaceDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_search_text_entered",&FindReplaceDialog::_search_text_entered);
- ObjectTypeDB::bind_method("_replace_text_entered",&FindReplaceDialog::_replace_text_entered);
- ObjectTypeDB::bind_method("_prompt_changed",&FindReplaceDialog::_prompt_changed);
- ObjectTypeDB::bind_method("_skip_pressed",&FindReplaceDialog::_skip_pressed);
+ ClassDB::bind_method("_search_text_entered",&FindReplaceDialog::_search_text_entered);
+ ClassDB::bind_method("_replace_text_entered",&FindReplaceDialog::_replace_text_entered);
+ ClassDB::bind_method("_prompt_changed",&FindReplaceDialog::_prompt_changed);
+ ClassDB::bind_method("_skip_pressed",&FindReplaceDialog::_skip_pressed);
ADD_SIGNAL(MethodInfo("search"));
ADD_SIGNAL(MethodInfo("skip"));
@@ -895,11 +896,11 @@ void FindReplaceDialog::_bind_methods() {
FindReplaceDialog::FindReplaceDialog() {
- set_self_opacity(0.8);
+ set_self_modulate(Color(1,1,1,0.8));
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+
search_text = memnew( LineEdit );
@@ -951,7 +952,7 @@ FindReplaceDialog::FindReplaceDialog() {
VBoxContainer *rvb = memnew( VBoxContainer);
opt_mg->add_child(rvb);
replace_vb=rvb;
-// rvb ->add_child(memnew(HSeparator));
+ //rvb ->add_child(memnew(HSeparator));
rvb ->add_child(memnew(Label));
prompt = memnew( CheckButton );
@@ -995,7 +996,7 @@ FindReplaceDialog::FindReplaceDialog() {
/*** CODE EDITOR ****/
-void CodeTextEditor::_text_editor_input_event(const InputEvent& p_event) {
+void CodeTextEditor::_text_editor_gui_input(const InputEvent& p_event) {
if (p_event.type==InputEvent::MOUSE_BUTTON) {
@@ -1043,7 +1044,7 @@ void CodeTextEditor::_reset_zoom() {
Ref<DynamicFont> font = text_editor->get_font("font"); // reset source font size to default
if (font.is_valid()) {
- EditorSettings::get_singleton()->set("global/source_font_size",14);
+ EditorSettings::get_singleton()->set("interface/source_font_size",14);
font->set_size(14);
}
}
@@ -1061,7 +1062,7 @@ void CodeTextEditor::_text_changed() {
}
void CodeTextEditor::_code_complete_timer_timeout() {
- if (!is_visible())
+ if (!is_visible_in_tree())
return;
if (enable_complete_timer)
text_editor->query_code_comple();
@@ -1097,7 +1098,7 @@ void CodeTextEditor::_font_resize_timeout() {
int size=font->get_size()+font_resize_val;
if (size>=8 && size<=96) {
- EditorSettings::get_singleton()->set("global/source_font_size",size);
+ EditorSettings::get_singleton()->set("interface/source_font_size",size);
font->set_size(size);
}
@@ -1107,20 +1108,20 @@ void CodeTextEditor::_font_resize_timeout() {
void CodeTextEditor::update_editor_settings() {
- text_editor->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/auto_brace_complete"));
- text_editor->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/scroll_past_end_of_file"));
- text_editor->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size"));
- text_editor->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs"));
- text_editor->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers"));
- text_editor->set_line_numbers_zero_padded(EditorSettings::get_singleton()->get("text_editor/line_numbers_zero_padded"));
- text_editor->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/show_line_length_guideline"));
- text_editor->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_length_guideline_column"));
- text_editor->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/syntax_highlighting"));
- text_editor->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences"));
- text_editor->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink"));
- text_editor->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/caret_blink_speed"));
- text_editor->set_draw_breakpoint_gutter(EditorSettings::get_singleton()->get("text_editor/show_breakpoint_gutter"));
- text_editor->cursor_set_block_mode(EditorSettings::get_singleton()->get("text_editor/block_caret"));
+ text_editor->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/completion/auto_brace_complete"));
+ text_editor->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/cursor/scroll_past_end_of_file"));
+ text_editor->set_tab_size(EditorSettings::get_singleton()->get("text_editor/indent/tab_size"));
+ text_editor->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/indent/draw_tabs"));
+ text_editor->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_line_numbers"));
+ text_editor->set_line_numbers_zero_padded(EditorSettings::get_singleton()->get("text_editor/line_numbers/line_numbers_zero_padded"));
+ text_editor->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_line_length_guideline"));
+ text_editor->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_numbers/line_length_guideline_column"));
+ text_editor->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/highlighting/syntax_highlighting"));
+ text_editor->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlighting/highlight_all_occurrences"));
+ text_editor->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink"));
+ text_editor->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink_speed"));
+ text_editor->set_draw_breakpoint_gutter(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_breakpoint_gutter"));
+ text_editor->cursor_set_block_mode(EditorSettings::get_singleton()->get("text_editor/cursor/block_caret"));
}
void CodeTextEditor::set_error(const String& p_error) {
@@ -1137,7 +1138,7 @@ void CodeTextEditor::set_error(const String& p_error) {
void CodeTextEditor::_update_font() {
// FONTS
- String editor_font = EDITOR_DEF("text_editor/font", "");
+ String editor_font = EDITOR_DEF("text_editor/theme/font", "");
bool font_overridden = false;
if (editor_font!="") {
Ref<Font> fnt = ResourceLoader::load(editor_font);
@@ -1158,19 +1159,19 @@ void CodeTextEditor::_on_settings_change() {
// AUTO BRACE COMPLETION
text_editor->set_auto_brace_completion(
- EDITOR_DEF("text_editor/auto_brace_complete", true)
+ EDITOR_DEF("text_editor/completion/auto_brace_complete", true)
);
code_complete_timer->set_wait_time(
- EDITOR_DEF("text_editor/code_complete_delay",.3f)
+ EDITOR_DEF("text_editor/completion/code_complete_delay",.3f)
);
- enable_complete_timer = EDITOR_DEF("text_editor/enable_code_completion_delay",true);
+ enable_complete_timer = EDITOR_DEF("text_editor/completion/enable_code_completion_delay",true);
// call hint settings
text_editor->set_callhint_settings(
- EDITOR_DEF("text_editor/put_callhint_tooltip_below_current_line", true),
- EDITOR_DEF("text_editor/callhint_tooltip_offset", Vector2())
+ EDITOR_DEF("text_editor/completion/put_callhint_tooltip_below_current_line", true),
+ EDITOR_DEF("text_editor/completion/callhint_tooltip_offset", Vector2())
);
}
@@ -1195,14 +1196,14 @@ void CodeTextEditor::_notification(int p_what) {
void CodeTextEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_text_editor_input_event",&CodeTextEditor::_text_editor_input_event);
- ObjectTypeDB::bind_method("_line_col_changed",&CodeTextEditor::_line_col_changed);
- ObjectTypeDB::bind_method("_text_changed",&CodeTextEditor::_text_changed);
- ObjectTypeDB::bind_method("_on_settings_change",&CodeTextEditor::_on_settings_change);
- ObjectTypeDB::bind_method("_text_changed_idle_timeout",&CodeTextEditor::_text_changed_idle_timeout);
- ObjectTypeDB::bind_method("_code_complete_timer_timeout",&CodeTextEditor::_code_complete_timer_timeout);
- ObjectTypeDB::bind_method("_complete_request",&CodeTextEditor::_complete_request);
- ObjectTypeDB::bind_method("_font_resize_timeout",&CodeTextEditor::_font_resize_timeout);
+ ClassDB::bind_method("_text_editor_gui_input",&CodeTextEditor::_text_editor_gui_input);
+ ClassDB::bind_method("_line_col_changed",&CodeTextEditor::_line_col_changed);
+ ClassDB::bind_method("_text_changed",&CodeTextEditor::_text_changed);
+ ClassDB::bind_method("_on_settings_change",&CodeTextEditor::_on_settings_change);
+ ClassDB::bind_method("_text_changed_idle_timeout",&CodeTextEditor::_text_changed_idle_timeout);
+ ClassDB::bind_method("_code_complete_timer_timeout",&CodeTextEditor::_code_complete_timer_timeout);
+ ClassDB::bind_method("_complete_request",&CodeTextEditor::_complete_request);
+ ClassDB::bind_method("_font_resize_timeout",&CodeTextEditor::_font_resize_timeout);
ADD_SIGNAL(MethodInfo("validate_script"));
ADD_SIGNAL(MethodInfo("load_theme_settings"));
@@ -1252,14 +1253,14 @@ CodeTextEditor::CodeTextEditor() {
idle = memnew( Timer );
add_child(idle);
idle->set_one_shot(true);
- idle->set_wait_time(EDITOR_DEF("text_editor/idle_parse_delay",2));
+ idle->set_wait_time(EDITOR_DEF("text_editor/completion/idle_parse_delay",2));
code_complete_timer = memnew(Timer);
add_child(code_complete_timer);
code_complete_timer->set_one_shot(true);
- enable_complete_timer = EDITOR_DEF("text_editor/enable_code_completion_delay",true);
+ enable_complete_timer = EDITOR_DEF("text_editor/completion/enable_code_completion_delay",true);
- code_complete_timer->set_wait_time(EDITOR_DEF("text_editor/code_complete_delay",.3f));
+ code_complete_timer->set_wait_time(EDITOR_DEF("text_editor/completion/code_complete_delay",.3f));
error = memnew( Label );
status_bar->add_child(error);
@@ -1297,7 +1298,7 @@ CodeTextEditor::CodeTextEditor() {
col_nb->set_autowrap(true); // workaround to prevent resizing the label on each change
col_nb->set_custom_minimum_size(Size2(40,1)*EDSCALE);
- text_editor->connect("input_event", this,"_text_editor_input_event");
+ text_editor->connect("gui_input", this,"_text_editor_gui_input");
text_editor->connect("cursor_changed", this,"_line_col_changed");
text_editor->connect("text_changed", this,"_text_changed");
text_editor->connect("request_completion", this,"_complete_request");
@@ -1305,6 +1306,7 @@ CodeTextEditor::CodeTextEditor() {
cs.push_back(".");
cs.push_back(",");
cs.push_back("(");
+ cs.push_back("$");
text_editor->set_completion(true,cs);
idle->connect("timeout", this,"_text_changed_idle_timeout");
diff --git a/tools/editor/code_editor.h b/tools/editor/code_editor.h
index ce3b5bee26..a000f02010 100644
--- a/tools/editor/code_editor.h
+++ b/tools/editor/code_editor.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -42,7 +42,7 @@
class GotoLineDialog : public ConfirmationDialog {
- OBJ_TYPE(GotoLineDialog,ConfirmationDialog);
+ GDCLASS(GotoLineDialog,ConfirmationDialog);
Label *line_label;
LineEdit *line;
@@ -62,7 +62,7 @@ public:
class FindReplaceBar : public HBoxContainer {
- OBJ_TYPE(FindReplaceBar,HBoxContainer);
+ GDCLASS(FindReplaceBar,HBoxContainer);
LineEdit *search_text;
ToolButton *find_prev;
@@ -134,7 +134,7 @@ public:
class FindReplaceDialog : public ConfirmationDialog {
- OBJ_TYPE(FindReplaceDialog,ConfirmationDialog);
+ GDCLASS(FindReplaceDialog,ConfirmationDialog);
LineEdit *search_text;
LineEdit *replace_text;
@@ -194,7 +194,7 @@ typedef void (*CodeTextEditorCodeCompleteFunc)(void* p_ud,const String& p_code,
class CodeTextEditor : public VBoxContainer {
- OBJ_TYPE(CodeTextEditor,VBoxContainer);
+ GDCLASS(CodeTextEditor,VBoxContainer);
TextEdit *text_editor;
FindReplaceBar *find_replace_bar;
@@ -217,7 +217,7 @@ class CodeTextEditor : public VBoxContainer {
void _complete_request();
void _font_resize_timeout();
- void _text_editor_input_event(const InputEvent& p_event);
+ void _text_editor_gui_input(const InputEvent& p_event);
void _zoom_in();
void _zoom_out();
void _reset_zoom();
diff --git a/tools/editor/connections_dialog.cpp b/tools/editor/connections_dialog.cpp
index 1baad2c6b3..91ba419c97 100644
--- a/tools/editor/connections_dialog.cpp
+++ b/tools/editor/connections_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,10 +28,7 @@
/*************************************************************************/
#include "connections_dialog.h"
-
#include "scene/gui/label.h"
-
-
#include "print_string.h"
#include "editor_settings.h"
#include "editor_node.h"
@@ -39,7 +36,7 @@
class ConnectDialogBinds : public Object {
- OBJ_TYPE( ConnectDialogBinds, Object );
+ GDCLASS( ConnectDialogBinds, Object );
public:
Vector<Variant> params;
@@ -127,7 +124,7 @@ void ConnectDialog::_tree_node_selected() {
if (E->get().name.length() && E->get().name[0]=='_')
continue; // hidden method, not show!
- if (ObjectTypeDB::has_method(node->get_type(),"Node") || ObjectTypeDB::has_method(node->get_type(),"Control",true))
+ if (ClassDB::has_method(node->get_type(),"Node") || ClassDB::has_method(node->get_type(),"Control",true))
continue; //avoid too much unnecesary stuff
String method=E->get().name+"(";
@@ -249,8 +246,8 @@ void ConnectDialog::_add_bind() {
case Variant::VECTOR3: value = Vector3(); break;
case Variant::PLANE: value = Plane(); break;
case Variant::QUAT: value = Quat(); break;
- case Variant::_AABB: value = AABB(); break;
- case Variant::MATRIX3: value = Matrix3(); break;
+ case Variant::RECT3: value = Rect3(); break;
+ case Variant::BASIS: value = Basis(); break;
case Variant::TRANSFORM: value = Transform(); break;
case Variant::COLOR: value = Color(); break;
case Variant::IMAGE: value = Image(); break;
@@ -290,13 +287,13 @@ void ConnectDialog::set_dst_method(const StringName& p_method) {
void ConnectDialog::_bind_methods() {
- //ObjectTypeDB::bind_method("_ok",&ConnectDialog::_ok_pressed);
- ObjectTypeDB::bind_method("_cancel",&ConnectDialog::_cancel_pressed);
- //ObjectTypeDB::bind_method("_dst_method_list_selected",&ConnectDialog::_dst_method_list_selected);
- ObjectTypeDB::bind_method("_tree_node_selected",&ConnectDialog::_tree_node_selected);
+ //ClassDB::bind_method("_ok",&ConnectDialog::_ok_pressed);
+ ClassDB::bind_method("_cancel",&ConnectDialog::_cancel_pressed);
+ //ClassDB::bind_method("_dst_method_list_selected",&ConnectDialog::_dst_method_list_selected);
+ ClassDB::bind_method("_tree_node_selected",&ConnectDialog::_tree_node_selected);
- ObjectTypeDB::bind_method("_add_bind",&ConnectDialog::_add_bind);
- ObjectTypeDB::bind_method("_remove_bind",&ConnectDialog::_remove_bind);
+ ClassDB::bind_method("_add_bind",&ConnectDialog::_add_bind);
+ ClassDB::bind_method("_remove_bind",&ConnectDialog::_remove_bind);
ADD_SIGNAL( MethodInfo("connected") );
}
@@ -305,7 +302,7 @@ ConnectDialog::ConnectDialog() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+
HBoxContainer *main_hb = memnew( HBoxContainer );
vbc->add_child(main_hb);
@@ -343,8 +340,8 @@ ConnectDialog::ConnectDialog() {
type_list->add_item("Vector3",Variant::VECTOR3);
type_list->add_item("Plane",Variant::PLANE);
type_list->add_item("Quat",Variant::QUAT);
- type_list->add_item("AABB",Variant::_AABB);
- type_list->add_item("Matrix3",Variant::MATRIX3);
+ type_list->add_item("Rect3",Variant::RECT3);
+ type_list->add_item("Basis",Variant::BASIS);
type_list->add_item("Transform",Variant::TRANSFORM);
//type_list->add_separator();
type_list->add_item("Color",Variant::COLOR);
@@ -395,7 +392,7 @@ ConnectDialog::ConnectDialog() {
make_callback = memnew( CheckButton );
make_callback->set_toggle_mode(true);
- make_callback->set_pressed( EDITOR_DEF("text_editor/create_signal_callbacks",true));
+ make_callback->set_pressed( EDITOR_DEF("text_editor/tools/create_signal_callbacks",true));
make_callback->set_text(TTR("Make Function"));
dstm_hb->add_child(make_callback);
@@ -421,7 +418,7 @@ ConnectDialog::ConnectDialog() {
-// dst_method_list->get_popup()->connect("item_pressed", this,"_dst_method_list_selected");
+ //dst_method_list->get_popup()->connect("id_pressed", this,"_dst_method_list_selected");
tree->connect("node_selected", this,"_tree_node_selected");
set_as_toplevel(true);
@@ -432,7 +429,7 @@ ConnectDialog::ConnectDialog() {
add_child(error);
error->get_ok()->set_text(TTR("Close"));
get_ok()->set_text(TTR("Connect"));
-// error->get_cancel()->set_text("Close");
+ //error->get_cancel()->set_text("Close");
@@ -475,7 +472,7 @@ void ConnectionsDock::_connect() {
bool defer=connect_dialog->get_deferred();
bool oshot=connect_dialog->get_oneshot();
Vector<Variant> binds = connect_dialog->get_binds();
- StringArray args = it->get_metadata(0).operator Dictionary()["args"];
+ PoolStringArray args = it->get_metadata(0).operator Dictionary()["args"];
int flags = CONNECT_PERSIST | (defer?CONNECT_DEFERRED:0) | (oshot?CONNECT_ONESHOT:0);
undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"),signal,String(dst_method)));
@@ -616,7 +613,7 @@ void ConnectionsDock::update_tree() {
//node_signals.sort_custom<_ConnectionsDockMethodInfoSort>();
bool did_script=false;
- StringName base = node->get_type();
+ StringName base = node->get_class();
while(base) {
@@ -632,16 +629,16 @@ void ConnectionsDock::update_tree() {
if (scr->get_path().is_resource_file())
name=scr->get_path().get_file();
else
- name=scr->get_type();
+ name=scr->get_class();
- if (has_icon(scr->get_type(),"EditorIcons")) {
- icon=get_icon(scr->get_type(),"EditorIcons");
+ if (has_icon(scr->get_class(),"EditorIcons")) {
+ icon=get_icon(scr->get_class(),"EditorIcons");
}
}
} else {
- ObjectTypeDB::get_signal_list(base,&node_signals,true);
+ ClassDB::get_signal_list(base,&node_signals,true);
if (has_icon(base,"EditorIcons")) {
icon=get_icon(base,"EditorIcons");
}
@@ -668,7 +665,7 @@ void ConnectionsDock::update_tree() {
String signaldesc;
signaldesc=mi.name+"(";
- StringArray argnames;
+ PoolStringArray argnames;
if (mi.arguments.size()) {
signaldesc+=" ";
for(int i=0;i<mi.arguments.size();i++) {
@@ -740,7 +737,7 @@ void ConnectionsDock::update_tree() {
if (!did_script) {
did_script=true;
} else {
- base=ObjectTypeDB::type_inherits_from(base);
+ base=ClassDB::get_parent_class(base);
}
}
@@ -825,12 +822,12 @@ void ConnectionsDock::_something_activated() {
void ConnectionsDock::_bind_methods() {
- ObjectTypeDB::bind_method("_connect",&ConnectionsDock::_connect);
- ObjectTypeDB::bind_method("_something_selected",&ConnectionsDock::_something_selected);
- ObjectTypeDB::bind_method("_something_activated",&ConnectionsDock::_something_activated);
- ObjectTypeDB::bind_method("_close",&ConnectionsDock::_close);
- ObjectTypeDB::bind_method("_connect_pressed",&ConnectionsDock::_connect_pressed);
- ObjectTypeDB::bind_method("update_tree",&ConnectionsDock::update_tree);
+ ClassDB::bind_method("_connect",&ConnectionsDock::_connect);
+ ClassDB::bind_method("_something_selected",&ConnectionsDock::_something_selected);
+ ClassDB::bind_method("_something_activated",&ConnectionsDock::_something_activated);
+ ClassDB::bind_method("_close",&ConnectionsDock::_close);
+ ClassDB::bind_method("_connect_pressed",&ConnectionsDock::_connect_pressed);
+ ClassDB::bind_method("update_tree",&ConnectionsDock::update_tree);
}
@@ -857,7 +854,7 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) {
hb->add_spacer();
hb->add_child(connect_button);
connect_button->connect("pressed",this,"_connect_pressed");
-// add_child(tree);
+ //add_child(tree);
connect_dialog = memnew( ConnectDialog );
connect_dialog->set_as_toplevel(true);
diff --git a/tools/editor/connections_dialog.h b/tools/editor/connections_dialog.h
index 73f52abc9e..64b292bc34 100644
--- a/tools/editor/connections_dialog.h
+++ b/tools/editor/connections_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -48,7 +48,7 @@ class ConnectDialogBinds;
class ConnectDialog : public ConfirmationDialog {
- OBJ_TYPE( ConnectDialog, ConfirmationDialog );
+ GDCLASS( ConnectDialog, ConfirmationDialog );
ConfirmationDialog *error;
@@ -77,7 +77,7 @@ protected:
public:
- bool get_make_callback() { return !make_callback->is_hidden() && make_callback->is_pressed(); }
+ bool get_make_callback() { return make_callback->is_visible() && make_callback->is_pressed(); }
NodePath get_dst_path() const;
StringName get_dst_method() const;
bool get_deferred() const;
@@ -86,8 +86,8 @@ public:
void set_dst_method(const StringName& p_method);
void set_dst_node(Node* p_node);
-// Button *get_ok() { return ok; }
-// Button *get_cancel() { return cancel; }
+ //Button *get_ok() { return ok; }
+ //Button *get_cancel() { return cancel; }
void edit(Node *p_node);
ConnectDialog();
@@ -97,7 +97,7 @@ public:
class ConnectionsDock : public VBoxContainer {
- OBJ_TYPE( ConnectionsDock , VBoxContainer );
+ GDCLASS( ConnectionsDock , VBoxContainer );
Button *connect_button;
EditorNode *editor;
diff --git a/tools/editor/create_dialog.cpp b/tools/editor/create_dialog.cpp
index 320939cb97..53e968f389 100644
--- a/tools/editor/create_dialog.cpp
+++ b/tools/editor/create_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,7 +28,7 @@
/*************************************************************************/
#include "create_dialog.h"
-#include "object_type_db.h"
+#include "class_db.h"
#include "print_string.h"
#include "scene/gui/box_container.h"
#include "editor_node.h"
@@ -141,7 +141,7 @@ void CreateDialog::_sbox_input(const InputEvent& p_ie) {
p_ie.key.scancode == KEY_PAGEUP ||
p_ie.key.scancode == KEY_PAGEDOWN ) ) {
- search_options->call("_input_event",p_ie);
+ search_options->call("_gui_input",p_ie);
search_box->accept_event();
}
@@ -151,10 +151,10 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty
if (p_types.has(p_type))
return;
- if (!ObjectTypeDB::is_type(p_type,base_type) || p_type==base_type)
+ if (!ClassDB::is_parent_class(p_type,base_type) || p_type==base_type)
return;
- String inherits=ObjectTypeDB::type_inherits_from(p_type);
+ String inherits=ClassDB::get_parent_class(p_type);
TreeItem *parent=p_root;
@@ -172,7 +172,7 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty
TreeItem *item = search_options->create_item(parent);
item->set_text(0,p_type);
- if (!ObjectTypeDB::can_instance(p_type)) {
+ if (!ClassDB::can_instance(p_type)) {
item->set_custom_color(0, Color(0.5,0.5,0.5) );
item->set_selectable(0,false);
} else {
@@ -183,7 +183,7 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty
}
- if (bool(EditorSettings::get_singleton()->get("scenetree_editor/start_create_dialog_fully_expanded"))) {
+ if (bool(EditorSettings::get_singleton()->get("docks/scene_tree/start_create_dialog_fully_expanded"))) {
item->set_collapsed(false);
} else {
// don't collapse search results
@@ -191,7 +191,7 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty
// don't collapse the root node
collapse &= (item != p_root);
// don't collapse abstract nodes on the first tree level
- collapse &= ((parent != p_root) || (ObjectTypeDB::can_instance(p_type)));
+ collapse &= ((parent != p_root) || (ClassDB::can_instance(p_type)));
item->set_collapsed(collapse);
}
@@ -222,7 +222,7 @@ void CreateDialog::_update_search() {
*/
List<StringName> type_list;
- ObjectTypeDB::get_type_list(&type_list);
+ ClassDB::get_class_list(&type_list);
HashMap<String,TreeItem*> types;
@@ -245,7 +245,7 @@ void CreateDialog::_update_search() {
if (base_type=="Node" && type.begins_with("Editor"))
continue; // do not show editor nodes
- if (!ObjectTypeDB::can_instance(type))
+ if (!ClassDB::can_instance(type))
continue; // cant create what can't be instanced
if (search_box->get_text()=="") {
@@ -254,14 +254,14 @@ void CreateDialog::_update_search() {
bool found=false;
String type=I->get();
- while(type!="" && ObjectTypeDB::is_type(type,base_type) && type!=base_type) {
+ while(type!="" && ClassDB::is_parent_class(type,base_type) && type!=base_type) {
if (search_box->get_text().is_subsequence_ofi(type)) {
found=true;
break;
}
- type=ObjectTypeDB::type_inherits_from(type);
+ type=ClassDB::get_parent_class(type);
}
@@ -269,7 +269,7 @@ void CreateDialog::_update_search() {
add_type(I->get(),types,root,&to_select);
}
- if (EditorNode::get_editor_data().get_custom_types().has(type) && ObjectTypeDB::is_type(type, base_type)) {
+ if (EditorNode::get_editor_data().get_custom_types().has(type) && ClassDB::is_parent_class(type, base_type)) {
//there are custom types based on this... cool.
//print_line("there are custom types");
@@ -369,7 +369,7 @@ void CreateDialog::_notification(int p_what) {
if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
- if (is_visible()) {
+ if (is_visible_in_tree()) {
search_box->call_deferred("grab_focus"); // still not visible
search_box->select_all();
@@ -400,8 +400,11 @@ Object *CreateDialog::instance_selected() {
if (selected) {
- String custom = selected->get_metadata(0);
+ Variant md = selected->get_metadata(0);
+ String custom;
+ if (md.get_type()!=Variant::NIL)
+ custom=md;
if (custom!=String()) {
if (EditorNode::get_editor_data().get_custom_types().has(custom)) {
@@ -412,9 +415,9 @@ Object *CreateDialog::instance_selected() {
Ref<Script> script = EditorNode::get_editor_data().get_custom_types()[custom][i].script;
String name = selected->get_text(0);
- Object *ob = ObjectTypeDB::instance(custom);
+ Object *ob = ClassDB::instance(custom);
ERR_FAIL_COND_V(!ob,NULL);
- if (ob->is_type("Node")) {
+ if (ob->is_class("Node")) {
ob->call("set_name",name);
}
ob->set_script(script.get_ref_ptr());
@@ -427,7 +430,7 @@ Object *CreateDialog::instance_selected() {
}
} else {
- return ObjectTypeDB::instance(selected->get_text(0));
+ return ClassDB::instance(selected->get_text(0));
}
}
@@ -621,20 +624,20 @@ void CreateDialog::drop_data_fw(const Point2& p_point,const Variant& p_data,Cont
void CreateDialog::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_text_changed"),&CreateDialog::_text_changed);
- ObjectTypeDB::bind_method(_MD("_confirmed"),&CreateDialog::_confirmed);
- ObjectTypeDB::bind_method(_MD("_sbox_input"),&CreateDialog::_sbox_input);
- ObjectTypeDB::bind_method(_MD("_item_selected"),&CreateDialog::_item_selected);
- ObjectTypeDB::bind_method(_MD("_favorite_toggled"),&CreateDialog::_favorite_toggled);
- ObjectTypeDB::bind_method(_MD("_history_selected"),&CreateDialog::_history_selected);
- ObjectTypeDB::bind_method(_MD("_favorite_selected"),&CreateDialog::_favorite_selected);
- ObjectTypeDB::bind_method(_MD("_history_activated"),&CreateDialog::_history_activated);
- ObjectTypeDB::bind_method(_MD("_favorite_activated"),&CreateDialog::_favorite_activated);
+ ClassDB::bind_method(_MD("_text_changed"),&CreateDialog::_text_changed);
+ ClassDB::bind_method(_MD("_confirmed"),&CreateDialog::_confirmed);
+ ClassDB::bind_method(_MD("_sbox_input"),&CreateDialog::_sbox_input);
+ ClassDB::bind_method(_MD("_item_selected"),&CreateDialog::_item_selected);
+ ClassDB::bind_method(_MD("_favorite_toggled"),&CreateDialog::_favorite_toggled);
+ ClassDB::bind_method(_MD("_history_selected"),&CreateDialog::_history_selected);
+ ClassDB::bind_method(_MD("_favorite_selected"),&CreateDialog::_favorite_selected);
+ ClassDB::bind_method(_MD("_history_activated"),&CreateDialog::_history_activated);
+ ClassDB::bind_method(_MD("_favorite_activated"),&CreateDialog::_favorite_activated);
- ObjectTypeDB::bind_method("get_drag_data_fw",&CreateDialog::get_drag_data_fw);
- ObjectTypeDB::bind_method("can_drop_data_fw",&CreateDialog::can_drop_data_fw);
- ObjectTypeDB::bind_method("drop_data_fw",&CreateDialog::drop_data_fw);
+ ClassDB::bind_method("get_drag_data_fw",&CreateDialog::get_drag_data_fw);
+ ClassDB::bind_method("can_drop_data_fw",&CreateDialog::can_drop_data_fw);
+ ClassDB::bind_method("drop_data_fw",&CreateDialog::drop_data_fw);
ADD_SIGNAL(MethodInfo("create"));
@@ -646,7 +649,7 @@ CreateDialog::CreateDialog() {
HSplitContainer *hbc = memnew( HSplitContainer );
add_child(hbc);
- set_child_rect(hbc);
+
VBoxContainer *lvbc = memnew( VBoxContainer);
hbc->add_child(lvbc);
@@ -682,7 +685,7 @@ CreateDialog::CreateDialog() {
favorite->connect("pressed",this,"_favorite_toggled");
vbc->add_margin_child(TTR("Search:"),search_hb);
search_box->connect("text_changed",this,"_text_changed");
- search_box->connect("input_event",this,"_sbox_input");
+ search_box->connect("gui_input",this,"_sbox_input");
search_options = memnew( Tree );
vbc->add_margin_child(TTR("Matches:"),search_options,true);
get_ok()->set_text(TTR("Create"));
@@ -691,7 +694,7 @@ CreateDialog::CreateDialog() {
set_hide_on_ok(false);
search_options->connect("item_activated",this,"_confirmed");
search_options->connect("cell_selected",this,"_item_selected");
-// search_options->set_hide_root(true);
+ //search_options->set_hide_root(true);
base_type="Object";
help_bit = memnew( EditorHelpBit );
@@ -740,10 +743,10 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty
if (p_types.has(p_type))
return;
- if (!ObjectTypeDB::is_type(p_type,base) || p_type==base)
+ if (!ClassDB::is_type(p_type,base) || p_type==base)
return;
- String inherits=ObjectTypeDB::type_inherits_from(p_type);
+ String inherits=ClassDB::type_inherits_from(p_type);
TreeItem *parent=p_root;
@@ -761,7 +764,7 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty
TreeItem *item = tree->create_item(parent);
item->set_text(0,p_type);
- if (!ObjectTypeDB::can_instance(p_type)) {
+ if (!ClassDB::can_instance(p_type)) {
item->set_custom_color(0, Color(0.5,0.5,0.5) );
item->set_selectable(0,false);
}
@@ -782,7 +785,7 @@ void CreateDialog::update_tree() {
tree->clear();
List<String> type_list;
- ObjectTypeDB::get_type_list(&type_list);
+ ClassDB::get_type_list(&type_list);
HashMap<String,TreeItem*> types;
@@ -798,7 +801,7 @@ void CreateDialog::update_tree() {
String type=I->get();
- if (!ObjectTypeDB::can_instance(type))
+ if (!ClassDB::can_instance(type))
continue; // cant create what can't be instanced
if (filter->get_text()=="")
add_type(type,types,root);
@@ -806,14 +809,14 @@ void CreateDialog::update_tree() {
bool found=false;
String type=I->get();
- while(type!="" && ObjectTypeDB::is_type(type,base) && type!=base) {
+ while(type!="" && ClassDB::is_type(type,base) && type!=base) {
if (type.findn(filter->get_text())!=-1) {
found=true;
break;
}
- type=ObjectTypeDB::type_inherits_from(type);
+ type=ClassDB::type_inherits_from(type);
}
@@ -875,7 +878,7 @@ Object *CreateDialog::instance_selected() {
if (ct[i].name==name) {
- Object* obj = ObjectTypeDB::instance(base);
+ Object* obj = ClassDB::instance(base);
ERR_FAIL_COND_V(!obj,NULL);
obj->set_script(ct[i].script.get_ref_ptr());
if (ct[i].icon.is_valid())
@@ -891,16 +894,16 @@ Object *CreateDialog::instance_selected() {
}
- return ObjectTypeDB::instance(tree->get_selected()->get_text(0));
+ return ClassDB::instance(tree->get_selected()->get_text(0));
}
void CreateDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_create",&CreateDialog::_create);
- ObjectTypeDB::bind_method("_cancel",&CreateDialog::_cancel);
- ObjectTypeDB::bind_method("_text_changed", &CreateDialog::_text_changed);
+ ClassDB::bind_method("_create",&CreateDialog::_create);
+ ClassDB::bind_method("_cancel",&CreateDialog::_cancel);
+ ClassDB::bind_method("_text_changed", &CreateDialog::_text_changed);
ADD_SIGNAL( MethodInfo("create"));
}
@@ -929,7 +932,7 @@ CreateDialog::CreateDialog() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+
get_ok()->set_text("Create");
diff --git a/tools/editor/create_dialog.h b/tools/editor/create_dialog.h
index 706a06ae16..5ecb4db2c3 100644
--- a/tools/editor/create_dialog.h
+++ b/tools/editor/create_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -45,7 +45,7 @@
class CreateDialog : public ConfirmationDialog {
- OBJ_TYPE(CreateDialog,ConfirmationDialog )
+ GDCLASS(CreateDialog,ConfirmationDialog )
Vector<String> favorite_list;
@@ -108,7 +108,7 @@ public:
class CreateDialog : public ConfirmationDialog {
- OBJ_TYPE( CreateDialog, ConfirmationDialog );
+ GDCLASS( CreateDialog, ConfirmationDialog );
Tree *tree;
Button *create;
diff --git a/tools/editor/dependency_editor.cpp b/tools/editor/dependency_editor.cpp
index 049bcefc75..a01383a868 100644
--- a/tools/editor/dependency_editor.cpp
+++ b/tools/editor/dependency_editor.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "dependency_editor.h"
+
#include "os/file_access.h"
#include "scene/gui/margin_container.h"
#include "io/resource_loader.h"
@@ -250,9 +251,9 @@ void DependencyEditor::edit(const String& p_path) {
void DependencyEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_searched"),&DependencyEditor::_searched);
- ObjectTypeDB::bind_method(_MD("_load_pressed"),&DependencyEditor::_load_pressed);
- ObjectTypeDB::bind_method(_MD("_fix_all"),&DependencyEditor::_fix_all);
+ ClassDB::bind_method(_MD("_searched"),&DependencyEditor::_searched);
+ ClassDB::bind_method(_MD("_load_pressed"),&DependencyEditor::_load_pressed);
+ ClassDB::bind_method(_MD("_fix_all"),&DependencyEditor::_fix_all);
}
@@ -261,7 +262,7 @@ DependencyEditor::DependencyEditor() {
VBoxContainer *vb = memnew( VBoxContainer );
vb->set_name(TTR("Dependencies"));
add_child(vb);
- set_child_rect(vb);
+
tree = memnew( Tree );
tree->set_columns(2);
@@ -354,7 +355,7 @@ DependencyEditorOwners::DependencyEditorOwners() {
owners = memnew( ItemList );
add_child(owners);
- set_child_rect(owners);
+
}
@@ -459,7 +460,7 @@ DependencyRemoveDialog::DependencyRemoveDialog() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+
text = memnew( Label );
vb->add_child(text);
@@ -522,7 +523,7 @@ DependencyErrorDialog::DependencyErrorDialog() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+
files = memnew( Tree );
@@ -690,8 +691,8 @@ void OrphanResourcesDialog::_button_pressed(Object *p_item,int p_column, int p_i
void OrphanResourcesDialog::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_delete_confirm"),&OrphanResourcesDialog::_delete_confirm);
- ObjectTypeDB::bind_method(_MD("_button_pressed"),&OrphanResourcesDialog::_button_pressed);
+ ClassDB::bind_method(_MD("_delete_confirm"),&OrphanResourcesDialog::_delete_confirm);
+ ClassDB::bind_method(_MD("_button_pressed"),&OrphanResourcesDialog::_button_pressed);
}
@@ -699,7 +700,7 @@ OrphanResourcesDialog::OrphanResourcesDialog(){
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+
files = memnew( Tree );
files->set_columns(2);
files->set_column_titles_visible(true);
diff --git a/tools/editor/dependency_editor.h b/tools/editor/dependency_editor.h
index 60758f8f4e..a96ffe5fcf 100644
--- a/tools/editor/dependency_editor.h
+++ b/tools/editor/dependency_editor.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,7 +37,7 @@
class EditorFileSystemDirectory;
class DependencyEditor : public AcceptDialog {
- OBJ_TYPE(DependencyEditor,AcceptDialog);
+ GDCLASS(DependencyEditor,AcceptDialog);
Tree *tree;
@@ -71,7 +71,7 @@ public:
};
class DependencyEditorOwners : public AcceptDialog {
- OBJ_TYPE(DependencyEditorOwners,AcceptDialog);
+ GDCLASS(DependencyEditorOwners,AcceptDialog);
ItemList *owners;
String editing;
@@ -84,7 +84,7 @@ public:
};
class DependencyRemoveDialog : public ConfirmationDialog {
- OBJ_TYPE(DependencyRemoveDialog,ConfirmationDialog);
+ GDCLASS(DependencyRemoveDialog,ConfirmationDialog);
Label *text;
@@ -103,7 +103,7 @@ public:
class DependencyErrorDialog : public ConfirmationDialog {
- OBJ_TYPE(DependencyErrorDialog,ConfirmationDialog);
+ GDCLASS(DependencyErrorDialog,ConfirmationDialog);
String for_file;
@@ -122,7 +122,7 @@ public:
class OrphanResourcesDialog : public ConfirmationDialog {
- OBJ_TYPE(OrphanResourcesDialog,ConfirmationDialog);
+ GDCLASS(OrphanResourcesDialog,ConfirmationDialog);
DependencyEditor *dep_edit;
Tree *files;
diff --git a/tools/editor/doc_code_font.h b/tools/editor/doc_code_font.h
index 879c873ea1..55f335ab78 100644
--- a/tools/editor/doc_code_font.h
+++ b/tools/editor/doc_code_font.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/doc_font.h b/tools/editor/doc_font.h
index a3c3b58b21..b598ee26f8 100644
--- a/tools/editor/doc_font.h
+++ b/tools/editor/doc_font.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/doc_title_font.h b/tools/editor/doc_title_font.h
index 75a3f049f0..afa0f61eda 100644
--- a/tools/editor/doc_title_font.h
+++ b/tools/editor/doc_title_font.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/editor_asset_installer.cpp b/tools/editor/editor_asset_installer.cpp
index b6051886c0..8af01012a4 100644
--- a/tools/editor/editor_asset_installer.cpp
+++ b/tools/editor/editor_asset_installer.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,10 +27,12 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_asset_installer.h"
+
#include "io/zip_io.h"
#include "os/dir_access.h"
#include "os/file_access.h"
#include "editor_node.h"
+
void EditorAssetInstaller::_update_subitems(TreeItem* p_item,bool p_check,bool p_first) {
@@ -196,7 +198,7 @@ void EditorAssetInstaller::open(const String& p_path,int p_depth) {
ti->set_icon(0,get_icon("folder","FileDialog"));
} else {
String file = path.get_file();
- String extension = file.extension().to_lower();
+ String extension = file.get_extension().to_lower();
if (extension_guess.has(extension)) {
ti->set_icon(0,extension_guess[extension]);
} else {
@@ -331,7 +333,7 @@ void EditorAssetInstaller::ok_pressed() {
void EditorAssetInstaller::_bind_methods() {
- ObjectTypeDB::bind_method("_item_edited",&EditorAssetInstaller::_item_edited);
+ ClassDB::bind_method("_item_edited",&EditorAssetInstaller::_item_edited);
}
@@ -339,7 +341,7 @@ EditorAssetInstaller::EditorAssetInstaller() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+
tree = memnew( Tree );
vb->add_margin_child("Package Contents:",tree,true);
diff --git a/tools/editor/editor_asset_installer.h b/tools/editor/editor_asset_installer.h
index d6e71dbb3c..2d0486a6f6 100644
--- a/tools/editor/editor_asset_installer.h
+++ b/tools/editor/editor_asset_installer.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -34,7 +34,7 @@
#include "scene/gui/tree.h"
class EditorAssetInstaller : public ConfirmationDialog {
- OBJ_TYPE( EditorAssetInstaller, ConfirmationDialog );
+ GDCLASS( EditorAssetInstaller, ConfirmationDialog );
Tree *tree;
String package_path;
diff --git a/tools/editor/editor_audio_buses.cpp b/tools/editor/editor_audio_buses.cpp
new file mode 100644
index 0000000000..6ee18f08d8
--- /dev/null
+++ b/tools/editor/editor_audio_buses.cpp
@@ -0,0 +1,1192 @@
+#include "editor_audio_buses.h"
+#include "editor_node.h"
+#include "servers/audio_server.h"
+#include "os/keyboard.h"
+#include "io/resource_saver.h"
+#include "filesystem_dock.h"
+
+void EditorAudioBus::_notification(int p_what) {
+
+ if (p_what==NOTIFICATION_READY) {
+
+ vu_l->set_under_texture(get_icon("BusVuEmpty","EditorIcons"));
+ vu_l->set_progress_texture(get_icon("BusVuFull","EditorIcons"));
+ vu_r->set_under_texture(get_icon("BusVuEmpty","EditorIcons"));
+ vu_r->set_progress_texture(get_icon("BusVuFull","EditorIcons"));
+ scale->set_texture( get_icon("BusVuDb","EditorIcons"));
+
+ disabled_vu = get_icon("BusVuFrozen","EditorIcons");
+
+ prev_active=true;
+ update_bus();
+ set_process(true);
+ }
+
+ if (p_what==NOTIFICATION_DRAW) {
+
+ if (has_focus()) {
+ draw_style_box(get_stylebox("focus","Button"),Rect2(Vector2(),get_size()));
+ }
+ }
+
+ if (p_what==NOTIFICATION_PROCESS) {
+
+ float real_peak[2]={-100,-100};
+ bool activity_found=false;
+
+ int cc;
+ switch(AudioServer::get_singleton()->get_speaker_mode()) {
+ case AudioServer::SPEAKER_MODE_STEREO: cc = 1; break;
+ case AudioServer::SPEAKER_SURROUND_51: cc = 4; break;
+ case AudioServer::SPEAKER_SURROUND_71: cc = 5; break;
+ }
+
+ for(int i=0;i<cc;i++) {
+ if (AudioServer::get_singleton()->is_bus_channel_active(get_index(),i)) {
+ activity_found=true;
+ real_peak[0]=MAX(real_peak[0],AudioServer::get_singleton()->get_bus_peak_volume_left_db(get_index(),i));
+ real_peak[1]=MAX(real_peak[1],AudioServer::get_singleton()->get_bus_peak_volume_right_db(get_index(),i));
+ }
+ }
+
+
+ if (real_peak[0]>peak_l) {
+ peak_l = real_peak[0];
+ } else {
+ peak_l-=get_process_delta_time()*60.0;
+ }
+
+ if (real_peak[1]>peak_r) {
+ peak_r = real_peak[1];
+ } else {
+ peak_r-=get_process_delta_time()*60.0;
+
+ }
+
+ vu_l->set_value(peak_l);
+ vu_r->set_value(peak_r);
+
+ if (activity_found!=prev_active) {
+ if (activity_found) {
+ vu_l->set_over_texture(Ref<Texture>());
+ vu_r->set_over_texture(Ref<Texture>());
+ } else {
+ vu_l->set_over_texture(disabled_vu);
+ vu_r->set_over_texture(disabled_vu);
+
+ }
+
+ prev_active=activity_found;
+ }
+
+ }
+
+ if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
+
+ peak_l=-100;
+ peak_r=-100;
+ prev_active=true;
+
+ set_process(is_visible_in_tree());
+ }
+
+}
+
+void EditorAudioBus::update_send() {
+
+ send->clear();
+ if (get_index()==0) {
+ send->set_disabled(true);
+ send->set_text("Speakers");
+ } else {
+ send->set_disabled(false);
+ StringName current_send = AudioServer::get_singleton()->get_bus_send(get_index());
+ int current_send_index=0; //by default to master
+
+ for(int i=0;i<get_index();i++) {
+ StringName send_name = AudioServer::get_singleton()->get_bus_name(i);
+ send->add_item(send_name);
+ if (send_name==current_send) {
+ current_send_index=i;
+ }
+ }
+
+ send->select(current_send_index);
+ }
+}
+
+void EditorAudioBus::update_bus() {
+
+ if (updating_bus)
+ return;
+
+ updating_bus=true;
+
+ int index = get_index();
+
+ slider->set_value(AudioServer::get_singleton()->get_bus_volume_db(index));
+ track_name->set_text(AudioServer::get_singleton()->get_bus_name(index));
+ if (get_index()==0)
+ track_name->set_editable(false);
+
+ solo->set_pressed( AudioServer::get_singleton()->is_bus_solo(index));
+ mute->set_pressed( AudioServer::get_singleton()->is_bus_mute(index));
+ bypass->set_pressed( AudioServer::get_singleton()->is_bus_bypassing_effects(index));
+ // effects..
+ effects->clear();
+
+ TreeItem *root = effects->create_item();
+ for(int i=0;i<AudioServer::get_singleton()->get_bus_effect_count(index);i++) {
+
+ Ref<AudioEffect> afx = AudioServer::get_singleton()->get_bus_effect(index,i);
+
+ TreeItem *fx = effects->create_item(root);
+ fx->set_cell_mode(0,TreeItem::CELL_MODE_CHECK);
+ fx->set_editable(0,true);
+ fx->set_checked(0,AudioServer::get_singleton()->is_bus_effect_enabled(index,i));
+ fx->set_text(0,afx->get_name());
+ fx->set_metadata(0,i);
+
+ }
+
+ TreeItem *add = effects->create_item(root);
+ add->set_cell_mode(0,TreeItem::CELL_MODE_CUSTOM);
+ add->set_editable(0,true);
+ add->set_selectable(0,false);
+ add->set_text(0,"Add Effect");
+
+ update_send();
+
+ updating_bus=false;
+
+}
+
+
+void EditorAudioBus::_name_changed(const String& p_new_name) {
+
+ if (p_new_name==AudioServer::get_singleton()->get_bus_name(get_index()))
+ return;
+
+ String attempt=p_new_name;
+ int attempts=1;
+
+ while(true) {
+
+ bool name_free=true;
+ for(int i=0;i<AudioServer::get_singleton()->get_bus_count();i++) {
+
+ if (AudioServer::get_singleton()->get_bus_name(i)==attempt) {
+ name_free=false;
+ break;
+ }
+ }
+
+ if (name_free) {
+ break;
+ }
+
+ attempts++;
+ attempt=p_new_name+" "+itos(attempts);
+ }
+ updating_bus=true;
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+
+ StringName current = AudioServer::get_singleton()->get_bus_name(get_index());
+ ur->create_action("Rename Audio Bus");
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_name",get_index(),attempt);
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_name",get_index(),current);
+
+ for(int i=0;i<AudioServer::get_singleton()->get_bus_count();i++) {
+ if (AudioServer::get_singleton()->get_bus_send(i)==current) {
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_send",i,attempt);
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_send",i,current);
+ }
+ }
+
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+
+
+ ur->add_do_method(buses,"_update_sends");
+ ur->add_undo_method(buses,"_update_sends");
+ ur->commit_action();
+
+ updating_bus=false;
+
+}
+
+void EditorAudioBus::_volume_db_changed(float p_db){
+
+ if (updating_bus)
+ return;
+
+ updating_bus=true;
+
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Change Audio Bus Volume",UndoRedo::MERGE_ENDS);
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_volume_db",get_index(),p_db);
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_volume_db",get_index(),AudioServer::get_singleton()->get_bus_volume_db(get_index()));
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ ur->commit_action();
+
+ updating_bus=false;
+
+}
+void EditorAudioBus::_solo_toggled(){
+
+ updating_bus=true;
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Toggle Audio Bus Solo");
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_solo",get_index(),solo->is_pressed());
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_solo",get_index(),AudioServer::get_singleton()->is_bus_solo(get_index()));
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ ur->commit_action();
+
+ updating_bus=false;
+
+}
+void EditorAudioBus::_mute_toggled(){
+
+ updating_bus=true;
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Toggle Audio Bus Mute");
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_mute",get_index(),mute->is_pressed());
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_mute",get_index(),AudioServer::get_singleton()->is_bus_mute(get_index()));
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ ur->commit_action();
+
+ updating_bus=false;
+
+}
+void EditorAudioBus::_bypass_toggled(){
+
+ updating_bus=true;
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Toggle Audio Bus Bypass Effects");
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_bypass_effects",get_index(),bypass->is_pressed());
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_bypass_effects",get_index(),AudioServer::get_singleton()->is_bus_bypassing_effects(get_index()));
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ ur->commit_action();
+
+ updating_bus=false;
+
+
+}
+
+void EditorAudioBus::_send_selected(int p_which) {
+
+ updating_bus=true;
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Select Audio Bus Send");
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_send",get_index(),send->get_item_text(p_which));
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_send",get_index(),AudioServer::get_singleton()->get_bus_send(get_index()));
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ ur->commit_action();
+
+ updating_bus=false;
+}
+
+void EditorAudioBus::_effect_selected() {
+
+ TreeItem *effect = effects->get_selected();
+ if (!effect)
+ return;
+ updating_bus=true;
+
+ if (effect->get_metadata(0)!=Variant()) {
+
+ int index = effect->get_metadata(0);
+ Ref<AudioEffect> effect = AudioServer::get_singleton()->get_bus_effect(get_index(),index);
+ if (effect.is_valid()) {
+ EditorNode::get_singleton()->push_item(effect.ptr());
+ }
+ }
+
+ updating_bus=false;
+
+}
+
+void EditorAudioBus::_effect_edited() {
+
+ if (updating_bus)
+ return;
+
+ TreeItem *effect = effects->get_edited();
+ if (!effect)
+ return;
+
+ if (effect->get_metadata(0)==Variant()) {
+ Rect2 area = effects->get_item_rect(effect);
+
+ effect_options->set_pos(effects->get_global_pos()+area.pos+Vector2(0,area.size.y));
+ effect_options->popup();
+ //add effect
+ } else {
+ int index = effect->get_metadata(0);
+ updating_bus=true;
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Select Audio Bus Send");
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_effect_enabled",get_index(),index,effect->is_checked(0));
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_effect_enabled",get_index(),index,AudioServer::get_singleton()->is_bus_effect_enabled(get_index(),index));
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ ur->commit_action();
+
+ updating_bus=false;
+
+ }
+
+}
+
+void EditorAudioBus::_effect_add(int p_which) {
+
+ if (updating_bus)
+ return;
+
+ StringName name = effect_options->get_item_metadata(p_which);
+
+ Object *fx = ClassDB::instance(name);
+ ERR_FAIL_COND(!fx);
+ AudioEffect *afx = fx->cast_to<AudioEffect>();
+ ERR_FAIL_COND(!afx);
+ Ref<AudioEffect> afxr = Ref<AudioEffect>(afx);
+
+ afxr->set_name(effect_options->get_item_text(p_which));
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Add Audio Bus Effect");
+ ur->add_do_method(AudioServer::get_singleton(),"add_bus_effect",get_index(),afxr,-1);
+ ur->add_undo_method(AudioServer::get_singleton(),"remove_bus_effect",get_index(),AudioServer::get_singleton()->get_bus_effect_count(get_index()));
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ ur->commit_action();
+}
+
+void EditorAudioBus::_gui_input(const InputEvent& p_event) {
+
+ if (p_event.type==InputEvent::KEY && p_event.key.pressed && p_event.key.scancode==KEY_DELETE && !p_event.key.echo) {
+ accept_event();
+ emit_signal("delete_request");
+ }
+ if (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==2 && p_event.mouse_button.pressed) {
+
+ Vector2 pos = Vector2(p_event.mouse_button.x,p_event.mouse_button.y);
+ delete_popup->set_pos(get_global_pos()+pos);
+ delete_popup->popup();
+ }
+}
+
+void EditorAudioBus::_delete_pressed(int p_option) {
+
+ if (p_option==1) {
+ emit_signal("delete_request");
+ } else if (p_option==0) {
+ //duplicate
+ emit_signal("duplicate_request",get_index());
+ }
+
+}
+
+
+Variant EditorAudioBus::get_drag_data(const Point2& p_point) {
+
+ if (get_index()==0) {
+ return Variant();
+ }
+
+ Control *c = memnew(Control);
+ Panel *p = memnew( Panel );
+ c->add_child(p);
+ p->add_style_override("panel",get_stylebox("focus","Button"));
+ p->set_size(get_size());
+ p->set_pos(-p_point);
+ set_drag_preview(c);
+ Dictionary d;
+ d["type"]="move_audio_bus";
+ d["index"]=get_index();
+ emit_signal("drop_end_request");
+ return d;
+}
+
+bool EditorAudioBus::can_drop_data(const Point2& p_point,const Variant& p_data) const {
+
+ if (get_index()==0)
+ return false;
+ Dictionary d=p_data;
+ if (d.has("type") && String(d["type"])=="move_audio_bus") {
+ return true;
+ }
+
+ return false;
+}
+void EditorAudioBus::drop_data(const Point2& p_point,const Variant& p_data) {
+
+ Dictionary d=p_data;
+ emit_signal("dropped",d["index"],get_index());
+
+}
+
+Variant EditorAudioBus::get_drag_data_fw(const Point2& p_point,Control* p_from) {
+
+ print_line("drag fw");
+ TreeItem *item = effects->get_item_at_pos(p_point);
+ if (!item) {
+ print_line("no item");
+ return Variant();
+ }
+
+ Variant md = item->get_metadata(0);
+
+ if (md.get_type()==Variant::INT) {
+ Dictionary fxd;
+ fxd["type"]="audio_bus_effect";
+ fxd["bus"]=get_index();
+ fxd["effect"]=md;
+
+ Label *l = memnew( Label );
+ l->set_text(item->get_text(0));
+ effects->set_drag_preview(l);
+
+ return fxd;
+ }
+
+ return Variant();
+
+}
+
+bool EditorAudioBus::can_drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from) const{
+
+ Dictionary d = p_data;
+ if (!d.has("type") || String(d["type"])!="audio_bus_effect")
+ return false;
+
+ TreeItem *item = effects->get_item_at_pos(p_point);
+ if (!item)
+ return false;
+
+ effects->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN);
+
+ return true;
+}
+
+void EditorAudioBus::drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from){
+
+ Dictionary d = p_data;
+
+ TreeItem *item = effects->get_item_at_pos(p_point);
+ if (!item)
+ return;
+ int pos=effects->get_drop_section_at_pos(p_point);
+ Variant md = item->get_metadata(0);
+
+ int paste_at;
+ int bus = d["bus"];
+ int effect = d["effect"];
+
+ if (md.get_type()==Variant::INT) {
+ paste_at=md;
+ if (pos>0)
+ paste_at++;
+
+ if (bus==get_index() && paste_at >effect) {
+ paste_at--;
+ }
+ } else {
+ paste_at=-1;
+ }
+
+
+ bool enabled = AudioServer::get_singleton()->is_bus_effect_enabled(bus,effect);
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Move Bus Effect");
+ ur->add_do_method(AudioServer::get_singleton(),"remove_bus_effect",bus,effect);
+ ur->add_do_method(AudioServer::get_singleton(),"add_bus_effect",get_index(),AudioServer::get_singleton()->get_bus_effect(bus,effect),paste_at);
+
+ if (paste_at==-1) {
+ paste_at = AudioServer::get_singleton()->get_bus_effect_count(get_index());
+ if (bus==get_index()) {
+ paste_at--;
+ }
+ }
+ if (!enabled) {
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_effect_enabled",get_index(),paste_at,false);
+ }
+
+ ur->add_undo_method(AudioServer::get_singleton(),"remove_bus_effect",get_index(),paste_at);
+ ur->add_undo_method(AudioServer::get_singleton(),"add_bus_effect",bus,AudioServer::get_singleton()->get_bus_effect(bus,effect),effect);
+ if (!enabled) {
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_effect_enabled",bus,effect,false);
+ }
+
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ if (get_index()!=bus) {
+ ur->add_do_method(buses,"_update_bus",bus);
+ ur->add_undo_method(buses,"_update_bus",bus);
+ }
+ ur->commit_action();
+
+
+
+}
+
+void EditorAudioBus::_delete_effect_pressed(int p_option) {
+
+ TreeItem * item = effects->get_selected();
+ if (!item)
+ return;
+
+ if (item->get_metadata(0).get_type()!=Variant::INT)
+ return;
+
+ int index = item->get_metadata(0);
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Delete Bus Effect");
+ ur->add_do_method(AudioServer::get_singleton(),"remove_bus_effect",get_index(),index);
+ ur->add_undo_method(AudioServer::get_singleton(),"add_bus_effect",get_index(),AudioServer::get_singleton()->get_bus_effect(get_index(),index),index);
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_effect_enabled",get_index(),index,AudioServer::get_singleton()->is_bus_effect_enabled(get_index(),index));
+ ur->add_do_method(buses,"_update_bus",get_index());
+ ur->add_undo_method(buses,"_update_bus",get_index());
+ ur->commit_action();
+
+
+}
+
+void EditorAudioBus::_effect_rmb(const Vector2& p_pos) {
+
+ TreeItem * item = effects->get_selected();
+ if (!item)
+ return;
+
+ if (item->get_metadata(0).get_type()!=Variant::INT)
+ return;
+
+ delete_effect_popup->set_pos(get_global_mouse_pos());
+ delete_effect_popup->popup();
+}
+
+void EditorAudioBus::_bind_methods() {
+
+ ClassDB::bind_method("update_bus",&EditorAudioBus::update_bus);
+ ClassDB::bind_method("update_send",&EditorAudioBus::update_send);
+ ClassDB::bind_method("_name_changed",&EditorAudioBus::_name_changed);
+ ClassDB::bind_method("_volume_db_changed",&EditorAudioBus::_volume_db_changed);
+ ClassDB::bind_method("_solo_toggled",&EditorAudioBus::_solo_toggled);
+ ClassDB::bind_method("_mute_toggled",&EditorAudioBus::_mute_toggled);
+ ClassDB::bind_method("_bypass_toggled",&EditorAudioBus::_bypass_toggled);
+ ClassDB::bind_method("_name_focus_exit",&EditorAudioBus::_name_focus_exit);
+ ClassDB::bind_method("_send_selected",&EditorAudioBus::_send_selected);
+ ClassDB::bind_method("_effect_edited",&EditorAudioBus::_effect_edited);
+ ClassDB::bind_method("_effect_selected",&EditorAudioBus::_effect_selected);
+ ClassDB::bind_method("_effect_add",&EditorAudioBus::_effect_add);
+ ClassDB::bind_method("_gui_input",&EditorAudioBus::_gui_input);
+ ClassDB::bind_method("_delete_pressed",&EditorAudioBus::_delete_pressed);
+ ClassDB::bind_method("get_drag_data_fw",&EditorAudioBus::get_drag_data_fw);
+ ClassDB::bind_method("can_drop_data_fw",&EditorAudioBus::can_drop_data_fw);
+ ClassDB::bind_method("drop_data_fw",&EditorAudioBus::drop_data_fw);
+ ClassDB::bind_method("_delete_effect_pressed",&EditorAudioBus::_delete_effect_pressed);
+ ClassDB::bind_method("_effect_rmb",&EditorAudioBus::_effect_rmb);
+
+
+
+ ADD_SIGNAL(MethodInfo("duplicate_request"));
+ ADD_SIGNAL(MethodInfo("delete_request"));
+ ADD_SIGNAL(MethodInfo("drop_end_request"));
+ ADD_SIGNAL(MethodInfo("dropped"));
+
+}
+
+EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses) {
+
+ buses=p_buses;
+ updating_bus=false;
+
+ VBoxContainer *vb = memnew( VBoxContainer );
+ add_child(vb);
+
+ set_v_size_flags(SIZE_EXPAND_FILL);
+
+ track_name = memnew( LineEdit );
+ vb->add_child(track_name);
+ track_name->connect("text_entered",this,"_name_changed");
+ track_name->connect("focus_exited",this,"_name_focus_exit");
+
+ HBoxContainer *hbc = memnew( HBoxContainer);
+ vb->add_child(hbc);
+ hbc->add_spacer();
+ solo = memnew( ToolButton );
+ solo->set_text("S");
+ solo->set_toggle_mode(true);
+ solo->set_modulate(Color(0.8,1.2,0.8));
+ solo->set_focus_mode(FOCUS_NONE);
+ solo->connect("pressed",this,"_solo_toggled");
+ hbc->add_child(solo);
+ mute = memnew( ToolButton );
+ mute->set_text("M");
+ mute->set_toggle_mode(true);
+ mute->set_modulate(Color(1.2,0.8,0.8));
+ mute->set_focus_mode(FOCUS_NONE);
+ mute->connect("pressed",this,"_mute_toggled");
+ hbc->add_child(mute);
+ bypass = memnew( ToolButton );
+ bypass->set_text("B");
+ bypass->set_toggle_mode(true);
+ bypass->set_modulate(Color(1.1,1.1,0.8));
+ bypass->set_focus_mode(FOCUS_NONE);
+ bypass->connect("pressed",this,"_bypass_toggled");
+ hbc->add_child(bypass);
+ hbc->add_spacer();
+
+ HBoxContainer *hb = memnew( HBoxContainer );
+ vb->add_child(hb);
+ slider = memnew( VSlider );
+ slider->set_min(-80);
+ slider->set_max(24);
+ slider->set_step(0.1);
+
+ slider->connect("value_changed",this,"_volume_db_changed");
+ hb->add_child(slider);
+ vu_l = memnew( TextureProgress );
+ vu_l->set_fill_mode(TextureProgress::FILL_BOTTOM_TO_TOP);
+ hb->add_child(vu_l);
+ vu_l->set_min(-80);
+ vu_l->set_max(24);
+ vu_l->set_step(0.1);
+
+ vu_r = memnew( TextureProgress );
+ vu_r->set_fill_mode(TextureProgress::FILL_BOTTOM_TO_TOP);
+ hb->add_child(vu_r);
+ vu_r->set_min(-80);
+ vu_r->set_max(24);
+ vu_r->set_step(0.1);
+
+ scale = memnew( TextureRect );
+ hb->add_child(scale);
+
+ //add_child(hb);
+
+ effects = memnew( Tree );
+ effects->set_hide_root(true);
+ effects->set_custom_minimum_size(Size2(0,90)*EDSCALE);
+ effects->set_hide_folding(true);
+ vb->add_child(effects);
+ effects->connect("item_edited",this,"_effect_edited");
+ effects->connect("cell_selected",this,"_effect_selected");
+ effects->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true);
+ effects->set_drag_forwarding(this);
+ effects->connect("item_rmb_selected",this,"_effect_rmb");
+ effects->set_allow_rmb_select(true);
+
+ send = memnew( OptionButton );
+ send->set_clip_text(true);
+ send->connect("item_selected",this,"_send_selected");
+ vb->add_child(send);
+
+ set_focus_mode(FOCUS_CLICK);
+
+ effect_options = memnew( PopupMenu );
+ effect_options->connect("index_pressed",this,"_effect_add");
+ add_child(effect_options);
+ List<StringName> effects;
+ ClassDB::get_inheriters_from_class("AudioEffect",&effects);
+ effects.sort_custom<StringName::AlphCompare>();
+ for (List<StringName>::Element *E=effects.front();E;E=E->next()) {
+ if (!ClassDB::can_instance(E->get()))
+ continue;
+
+ Ref<Texture> icon;
+ if (has_icon(E->get(),"EditorIcons")) {
+ icon = get_icon(E->get(),"EditorIcons");
+ }
+ String name = E->get().operator String().replace("AudioEffect","");
+ effect_options->add_item(name);
+ effect_options->set_item_metadata(effect_options->get_item_count()-1,E->get());
+ effect_options->set_item_icon(effect_options->get_item_count()-1,icon);
+ }
+
+ delete_popup = memnew( PopupMenu );
+ delete_popup->add_item("Duplicate");
+ delete_popup->add_item("Delete");
+ add_child(delete_popup);
+ delete_popup->connect("index_pressed",this,"_delete_pressed");
+
+ delete_effect_popup = memnew( PopupMenu );
+ delete_effect_popup->add_item("Delete Effect");
+ add_child(delete_effect_popup);
+ delete_effect_popup->connect("index_pressed",this,"_delete_effect_pressed");
+
+}
+
+
+
+bool EditorAudioBusDrop::can_drop_data(const Point2& p_point,const Variant& p_data) const {
+
+ Dictionary d=p_data;
+ if (d.has("type") && String(d["type"])=="move_audio_bus") {
+ return true;
+ }
+
+ return false;
+}
+void EditorAudioBusDrop::drop_data(const Point2& p_point,const Variant& p_data){
+
+ Dictionary d=p_data;
+ emit_signal("dropped",d["index"],-1);
+
+}
+
+void EditorAudioBusDrop::_bind_methods() {
+
+ ADD_SIGNAL(MethodInfo("dropped"));
+}
+
+EditorAudioBusDrop::EditorAudioBusDrop() {
+
+
+}
+
+
+void EditorAudioBuses::_update_buses() {
+
+ while(bus_hb->get_child_count()>0) {
+ memdelete(bus_hb->get_child(0));
+ }
+
+ drop_end=NULL;
+
+ for(int i=0;i<AudioServer::get_singleton()->get_bus_count();i++) {
+
+ EditorAudioBus *audio_bus = memnew( EditorAudioBus(this) );
+ if (i==0) {
+ audio_bus->set_self_modulate(Color(1,0.9,0.9));
+ }
+ bus_hb->add_child(audio_bus);
+ audio_bus->connect("delete_request",this,"_delete_bus",varray(audio_bus),CONNECT_DEFERRED);
+ audio_bus->connect("duplicate_request",this,"_duplicate_bus",varray(),CONNECT_DEFERRED);
+ audio_bus->connect("drop_end_request",this,"_request_drop_end");
+ audio_bus->connect("dropped",this,"_drop_at_index",varray(),CONNECT_DEFERRED);
+
+
+
+ }
+}
+
+EditorAudioBuses *EditorAudioBuses::register_editor() {
+
+ EditorAudioBuses * audio_buses = memnew( EditorAudioBuses );
+ EditorNode::get_singleton()->add_bottom_panel_item("Audio",audio_buses);
+ return audio_buses;
+}
+
+void EditorAudioBuses::_notification(int p_what) {
+
+ if (p_what==NOTIFICATION_READY) {
+ _update_buses();
+ }
+
+ if (p_what==NOTIFICATION_DRAG_END) {
+ if (drop_end) {
+ drop_end->queue_delete();
+ drop_end=NULL;
+ }
+ }
+
+ if (p_what==NOTIFICATION_PROCESS) {
+
+ //check if anything was edited
+ bool edited = AudioServer::get_singleton()->is_edited();
+ for(int i=0;i<AudioServer::get_singleton()->get_bus_count();i++) {
+ for(int j=0;j<AudioServer::get_singleton()->get_bus_effect_count(i);j++) {
+ Ref<AudioEffect> effect = AudioServer::get_singleton()->get_bus_effect(i,j);
+ if (effect->is_edited()) {
+ edited=true;
+ effect->set_edited(false);
+ }
+ }
+ }
+
+ AudioServer::get_singleton()->set_edited(false);
+
+ if (edited) {
+
+ save_timer->start();
+ }
+ }
+
+}
+
+
+void EditorAudioBuses::_add_bus() {
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+
+ //need to simulate new name, so we can undi :(
+ ur->create_action("Add Audio Bus");
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_count",AudioServer::get_singleton()->get_bus_count()+1);
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_count",AudioServer::get_singleton()->get_bus_count());
+ ur->add_do_method(this,"_update_buses");
+ ur->add_undo_method(this,"_update_buses");
+ ur->commit_action();
+
+}
+
+void EditorAudioBuses::_update_bus(int p_index) {
+
+ if (p_index>=bus_hb->get_child_count())
+ return;
+
+ bus_hb->get_child(p_index)->call("update_bus");
+}
+
+void EditorAudioBuses::_update_sends() {
+
+ for(int i=0;i<bus_hb->get_child_count();i++) {
+ bus_hb->get_child(i)->call("update_send");
+ }
+}
+
+void EditorAudioBuses::_delete_bus(Object* p_which) {
+
+ EditorAudioBus *bus = p_which->cast_to<EditorAudioBus>();
+ int index = bus->get_index();
+ if (index==0) {
+ EditorNode::get_singleton()->show_warning("Master bus can't be deleted!");
+ return;
+ }
+
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+
+ ur->create_action("Delete Audio Bus");
+ ur->add_do_method(AudioServer::get_singleton(),"remove_bus",index);
+ ur->add_undo_method(AudioServer::get_singleton(),"add_bus",index);
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_name",index,AudioServer::get_singleton()->get_bus_name(index));
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_volume_db",index,AudioServer::get_singleton()->get_bus_volume_db(index));
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_send",index,AudioServer::get_singleton()->get_bus_send(index));
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_solo",index,AudioServer::get_singleton()->is_bus_solo(index));
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_mute",index,AudioServer::get_singleton()->is_bus_mute(index));
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_bypass_effects",index,AudioServer::get_singleton()->is_bus_bypassing_effects(index));
+ for(int i=0;i<AudioServer::get_singleton()->get_bus_effect_count(index);i++) {
+
+ ur->add_undo_method(AudioServer::get_singleton(),"add_bus_effect",index,AudioServer::get_singleton()->get_bus_effect(index,i));
+ ur->add_undo_method(AudioServer::get_singleton(),"set_bus_effect_enabled",index,i,AudioServer::get_singleton()->is_bus_effect_enabled(index,i));
+ }
+ ur->add_do_method(this,"_update_buses");
+ ur->add_undo_method(this,"_update_buses");
+ ur->commit_action();
+
+}
+
+
+void EditorAudioBuses::_duplicate_bus(int p_which) {
+
+ int add_at_pos = p_which+1;
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Duplicate Audio Bus");
+ ur->add_do_method(AudioServer::get_singleton(),"add_bus",add_at_pos);
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_name",add_at_pos,AudioServer::get_singleton()->get_bus_name(p_which)+" Copy");
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_volume_db",add_at_pos,AudioServer::get_singleton()->get_bus_volume_db(p_which));
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_send",add_at_pos,AudioServer::get_singleton()->get_bus_send(p_which));
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_solo",add_at_pos,AudioServer::get_singleton()->is_bus_solo(p_which));
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_mute",add_at_pos,AudioServer::get_singleton()->is_bus_mute(p_which));
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_bypass_effects",add_at_pos,AudioServer::get_singleton()->is_bus_bypassing_effects(p_which));
+ for(int i=0;i<AudioServer::get_singleton()->get_bus_effect_count(p_which);i++) {
+
+ ur->add_do_method(AudioServer::get_singleton(),"add_bus_effect",add_at_pos,AudioServer::get_singleton()->get_bus_effect(p_which,i));
+ ur->add_do_method(AudioServer::get_singleton(),"set_bus_effect_enabled",add_at_pos,i,AudioServer::get_singleton()->is_bus_effect_enabled(p_which,i));
+ }
+ ur->add_undo_method(AudioServer::get_singleton(),"remove_bus",add_at_pos);
+ ur->add_do_method(this,"_update_buses");
+ ur->add_undo_method(this,"_update_buses");
+ ur->commit_action();
+
+}
+
+void EditorAudioBuses::_request_drop_end() {
+
+ if (!drop_end && bus_hb->get_child_count()) {
+ drop_end = memnew( EditorAudioBusDrop );
+
+ bus_hb->add_child(drop_end);
+ drop_end->set_custom_minimum_size(bus_hb->get_child(0)->cast_to<Control>()->get_size());
+ drop_end->connect("dropped",this,"_drop_at_index",varray(),CONNECT_DEFERRED);
+ }
+}
+
+void EditorAudioBuses::_drop_at_index(int p_bus,int p_index) {
+
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+
+ //need to simulate new name, so we can undi :(
+ ur->create_action("Move Audio Bus");
+ ur->add_do_method(AudioServer::get_singleton(),"move_bus",p_bus,p_index);
+ int final_pos;
+ if (p_index==p_bus) {
+ final_pos=p_bus;
+ } else if (p_index==-1) {
+ final_pos = AudioServer::get_singleton()->get_bus_count()-1;
+ } else if (p_index<p_bus) {
+ final_pos = p_index;
+ } else {
+ final_pos = p_index -1;
+ }
+ ur->add_undo_method(AudioServer::get_singleton(),"move_bus",final_pos,p_bus);
+
+ ur->add_do_method(this,"_update_buses");
+ ur->add_undo_method(this,"_update_buses");
+ ur->commit_action();
+}
+
+void EditorAudioBuses::_server_save() {
+
+ Ref<AudioBusLayout> state = AudioServer::get_singleton()->generate_bus_layout();
+ ResourceSaver::save(edited_path,state);
+
+}
+
+void EditorAudioBuses::_select_layout() {
+
+ EditorNode::get_singleton()->get_filesystem_dock()->select_file(edited_path);
+}
+
+void EditorAudioBuses::_save_as_layout() {
+
+ file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE);
+ file_dialog->set_title(TTR("Save Audio Bus Layout As.."));
+ file_dialog->set_current_path(edited_path);
+ file_dialog->popup_centered_ratio();
+ new_layout=false;
+}
+
+
+void EditorAudioBuses::_new_layout() {
+
+ file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE);
+ file_dialog->set_title(TTR("Location for New Layout.."));
+ file_dialog->set_current_path(edited_path);
+ file_dialog->popup_centered_ratio();
+ new_layout=true;
+}
+
+void EditorAudioBuses::_load_layout() {
+
+ file_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE);
+ file_dialog->set_title(TTR("Open Audio Bus Layout"));
+ file_dialog->set_current_path(edited_path);
+ file_dialog->popup_centered_ratio();
+ new_layout=false;
+}
+
+
+void EditorAudioBuses::_load_default_layout() {
+
+
+ Ref<AudioBusLayout> state = ResourceLoader::load("res://default_bus_layout.tres");
+ if (state.is_null()) {
+ EditorNode::get_singleton()->show_warning("There is no 'res://default_bus_layout.tres' file.");
+ return;
+ }
+
+ edited_path="res://default_bus_layout.tres";
+ file->set_text(edited_path.get_file());
+ AudioServer::get_singleton()->set_bus_layout(state);
+ _update_buses();
+ EditorNode::get_singleton()->get_undo_redo()->clear_history();
+ call_deferred("_select_layout");
+}
+
+void EditorAudioBuses::_file_dialog_callback(const String& p_string) {
+
+ if (file_dialog->get_mode()==EditorFileDialog::MODE_OPEN_FILE) {
+ Ref<AudioBusLayout> state = ResourceLoader::load(p_string);
+ if (state.is_null()) {
+ EditorNode::get_singleton()->show_warning("Invalid file, not an audio bus layout.");
+ return;
+ }
+
+ edited_path=p_string;
+ file->set_text(p_string.get_file());
+ AudioServer::get_singleton()->set_bus_layout(state);
+ _update_buses();
+ EditorNode::get_singleton()->get_undo_redo()->clear_history();
+ call_deferred("_select_layout");
+
+ } else if (file_dialog->get_mode()==EditorFileDialog::MODE_SAVE_FILE) {
+
+ if (new_layout) {
+ Ref<AudioBusLayout> empty_state;
+ empty_state.instance();
+ AudioServer::get_singleton()->set_bus_layout(empty_state);
+ }
+
+ Error err = ResourceSaver::save(p_string,AudioServer::get_singleton()->generate_bus_layout());
+
+ if (err!=OK) {
+ EditorNode::get_singleton()->show_warning("Error saving file: "+p_string);
+ return;
+ }
+
+ edited_path=p_string;
+ file->set_text(p_string.get_file());
+ _update_buses();
+ EditorNode::get_singleton()->get_undo_redo()->clear_history();
+ call_deferred("_select_layout");
+ }
+
+}
+
+void EditorAudioBuses::_bind_methods() {
+
+ ClassDB::bind_method("_add_bus",&EditorAudioBuses::_add_bus);
+ ClassDB::bind_method("_update_buses",&EditorAudioBuses::_update_buses);
+ ClassDB::bind_method("_update_bus",&EditorAudioBuses::_update_bus);
+ ClassDB::bind_method("_update_sends",&EditorAudioBuses::_update_sends);
+ ClassDB::bind_method("_delete_bus",&EditorAudioBuses::_delete_bus);
+ ClassDB::bind_method("_request_drop_end",&EditorAudioBuses::_request_drop_end);
+ ClassDB::bind_method("_drop_at_index",&EditorAudioBuses::_drop_at_index);
+ ClassDB::bind_method("_server_save",&EditorAudioBuses::_server_save);
+ ClassDB::bind_method("_select_layout",&EditorAudioBuses::_select_layout);
+ ClassDB::bind_method("_save_as_layout",&EditorAudioBuses::_save_as_layout);
+ ClassDB::bind_method("_load_layout",&EditorAudioBuses::_load_layout);
+ ClassDB::bind_method("_load_default_layout",&EditorAudioBuses::_load_default_layout);
+ ClassDB::bind_method("_new_layout",&EditorAudioBuses::_new_layout);
+ ClassDB::bind_method("_duplicate_bus",&EditorAudioBuses::_duplicate_bus);
+
+ ClassDB::bind_method("_file_dialog_callback",&EditorAudioBuses::_file_dialog_callback);
+}
+
+EditorAudioBuses::EditorAudioBuses()
+{
+
+ drop_end = NULL;
+ top_hb = memnew( HBoxContainer );
+ add_child(top_hb);
+
+ add = memnew( Button );
+ top_hb->add_child(add);;
+ add->set_text(TTR("Add Bus"));
+
+ add->connect("pressed",this,"_add_bus");
+
+
+
+ top_hb->add_spacer();
+
+ file = memnew( ToolButton );
+ file->set_text("default_bus_layout.tres");
+ top_hb->add_child(file);
+ file->connect("pressed",this,"_select_layout");
+
+ load = memnew( Button );
+ load->set_text(TTR("Load"));
+ top_hb->add_child(load);
+ load->connect("pressed",this,"_load_layout");
+
+ save_as = memnew( Button );
+ save_as->set_text(TTR("Save As"));
+ top_hb->add_child(save_as);
+ save_as->connect("pressed",this,"_save_as_layout");
+
+ _default = memnew( Button );
+ _default->set_text(TTR("Default"));
+ top_hb->add_child(_default);
+ _default->connect("pressed",this,"_load_default_layout");
+
+ _new = memnew( Button );
+ _new->set_text(TTR("Create"));
+ top_hb->add_child(_new);
+ _new->connect("pressed",this,"_new_layout");
+
+ bus_scroll = memnew( ScrollContainer );
+ bus_scroll->set_v_size_flags(SIZE_EXPAND_FILL);
+ bus_scroll->set_enable_h_scroll(true);
+ bus_scroll->set_enable_v_scroll(false);
+ add_child(bus_scroll);
+ bus_hb = memnew( HBoxContainer );
+ bus_scroll->add_child(bus_hb);
+
+ save_timer=memnew(Timer);
+ save_timer->set_wait_time(0.8);
+ save_timer->set_one_shot(true);
+ add_child(save_timer);
+ save_timer->connect("timeout",this,"_server_save");
+
+ set_v_size_flags(SIZE_EXPAND_FILL);
+
+
+ edited_path = "res://default_bus_layout.tres";
+
+ file_dialog = memnew( EditorFileDialog );
+ List<String> ext;
+ ResourceLoader::get_recognized_extensions_for_type("AudioServerState",&ext);
+ for (List<String>::Element *E=ext.front();E;E=E->next()) {
+ file_dialog->add_filter("*."+E->get()+"; Audio Bus State");
+ }
+ add_child(file_dialog);
+ file_dialog->connect("file_selected",this,"_file_dialog_callback");
+
+ set_process(true);
+
+}
+void EditorAudioBuses::open_layout(const String& p_path) {
+
+ EditorNode::get_singleton()->make_bottom_panel_item_visible(this);
+
+ Ref<AudioBusLayout> state = ResourceLoader::load(p_path);
+ if (state.is_null()) {
+ EditorNode::get_singleton()->show_warning("Invalid file, not an audio bus layout.");
+ return;
+ }
+
+ edited_path=p_path;
+ file->set_text(p_path.get_file());
+ AudioServer::get_singleton()->set_bus_layout(state);
+ _update_buses();
+ EditorNode::get_singleton()->get_undo_redo()->clear_history();
+ call_deferred("_select_layout");
+}
+
+void AudioBusesEditorPlugin::edit(Object *p_node) {
+
+ if (p_node->cast_to<AudioBusLayout>()) {
+
+ String path = p_node->cast_to<AudioBusLayout>()->get_path();
+ if (path.is_resource_file()) {
+ audio_bus_editor->open_layout(path);
+ }
+ }
+}
+
+bool AudioBusesEditorPlugin::handles(Object *p_node) const {
+
+ return (p_node->cast_to<AudioBusLayout>()!=NULL);
+}
+
+void AudioBusesEditorPlugin::make_visible(bool p_visible){
+
+
+}
+
+AudioBusesEditorPlugin::AudioBusesEditorPlugin(EditorAudioBuses *p_node) {
+
+ audio_bus_editor=p_node;
+}
+
+AudioBusesEditorPlugin::~AudioBusesEditorPlugin() {
+
+}
diff --git a/tools/editor/editor_audio_buses.h b/tools/editor/editor_audio_buses.h
new file mode 100644
index 0000000000..e44f8cd579
--- /dev/null
+++ b/tools/editor/editor_audio_buses.h
@@ -0,0 +1,186 @@
+#ifndef EDITORAUDIOBUSES_H
+#define EDITORAUDIOBUSES_H
+
+
+#include "scene/gui/box_container.h"
+#include "scene/gui/button.h"
+#include "scene/gui/tool_button.h"
+#include "scene/gui/scroll_container.h"
+#include "scene/gui/panel_container.h"
+#include "scene/gui/slider.h"
+#include "scene/gui/texture_progress.h"
+#include "scene/gui/texture_rect.h"
+#include "scene/gui/line_edit.h"
+#include "scene/gui/tree.h"
+#include "scene/gui/option_button.h"
+#include "scene/gui/panel.h"
+#include "tools/editor/editor_file_dialog.h"
+#include "editor_plugin.h"
+
+class EditorAudioBuses;
+
+class EditorAudioBus : public PanelContainer {
+
+ GDCLASS( EditorAudioBus, PanelContainer )
+
+ bool prev_active;
+ float peak_l;
+ float peak_r;
+
+ Ref<Texture> disabled_vu;
+ LineEdit *track_name;
+ VSlider *slider;
+ TextureProgress *vu_l;
+ TextureProgress *vu_r;
+ TextureRect *scale;
+ OptionButton *send;
+
+ PopupMenu *effect_options;
+ PopupMenu *delete_popup;
+ PopupMenu *delete_effect_popup;
+
+ Button *solo;
+ Button *mute;
+ Button *bypass;
+
+ Tree *effects;
+
+ bool updating_bus;
+
+ void _gui_input(const InputEvent& p_event);
+ void _delete_pressed(int p_option);
+
+ void _name_changed(const String& p_new_name);
+ void _name_focus_exit() { _name_changed(track_name->get_text()); }
+ void _volume_db_changed(float p_db);
+ void _solo_toggled();
+ void _mute_toggled();
+ void _bypass_toggled();
+ void _send_selected(int p_which);
+ void _effect_edited();
+ void _effect_add(int p_which);
+ void _effect_selected();
+ void _delete_effect_pressed(int p_option);
+ void _effect_rmb(const Vector2& p_pos);
+
+
+ virtual Variant get_drag_data(const Point2& p_point);
+ virtual bool can_drop_data(const Point2& p_point,const Variant& p_data) const;
+ virtual void drop_data(const Point2& p_point,const Variant& p_data);
+
+
+ Variant get_drag_data_fw(const Point2& p_point,Control* p_from);
+ bool can_drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from) const;
+ void drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from);
+
+friend class EditorAudioBuses;
+
+ EditorAudioBuses *buses;
+
+protected:
+
+ static void _bind_methods();
+ void _notification(int p_what);
+public:
+
+ void update_bus();
+ void update_send();
+
+ EditorAudioBus(EditorAudioBuses *p_buses=NULL);
+};
+
+
+class EditorAudioBusDrop : public Panel {
+
+ GDCLASS(EditorAudioBusDrop,Panel);
+
+ virtual bool can_drop_data(const Point2& p_point,const Variant& p_data) const;
+ virtual void drop_data(const Point2& p_point,const Variant& p_data);
+protected:
+
+ static void _bind_methods();
+public:
+
+ EditorAudioBusDrop();
+};
+
+class EditorAudioBuses : public VBoxContainer {
+
+ GDCLASS(EditorAudioBuses,VBoxContainer)
+
+ HBoxContainer *top_hb;
+
+ Button *add;
+ ScrollContainer *bus_scroll;
+ HBoxContainer *bus_hb;
+
+ EditorAudioBusDrop *drop_end;
+
+ Button *file;
+ Button *load;
+ Button *save_as;
+ Button *_default;
+ Button *_new;
+
+ Timer *save_timer;
+ String edited_path;
+
+ void _add_bus();
+ void _update_buses();
+ void _update_bus(int p_index);
+ void _update_sends();
+
+ void _delete_bus(Object* p_which);
+ void _duplicate_bus(int p_which);
+
+
+ void _request_drop_end();
+ void _drop_at_index(int p_bus,int p_index);
+
+ void _server_save();
+
+ void _select_layout();
+ void _load_layout();
+ void _save_as_layout();
+ void _load_default_layout();
+ void _new_layout();
+
+ EditorFileDialog *file_dialog;
+ bool new_layout;
+
+ void _file_dialog_callback(const String& p_string);
+
+protected:
+
+ static void _bind_methods();
+ void _notification(int p_what);
+public:
+
+ void open_layout(const String& p_path);
+
+ static EditorAudioBuses* register_editor();
+
+ EditorAudioBuses();
+};
+
+
+
+class AudioBusesEditorPlugin : public EditorPlugin {
+
+ GDCLASS( AudioBusesEditorPlugin, EditorPlugin );
+
+ EditorAudioBuses *audio_bus_editor;
+public:
+
+ virtual String get_name() const { return "SampleLibrary"; }
+ bool has_main_screen() const { return false; }
+ virtual void edit(Object *p_node);
+ virtual bool handles(Object *p_node) const;
+ virtual void make_visible(bool p_visible);
+
+ AudioBusesEditorPlugin(EditorAudioBuses *p_node);
+ ~AudioBusesEditorPlugin();
+
+};
+
+#endif // EDITORAUDIOBUSES_H
diff --git a/tools/editor/editor_autoload_settings.cpp b/tools/editor/editor_autoload_settings.cpp
index 97062b1480..0038ab48d5 100644
--- a/tools/editor/editor_autoload_settings.cpp
+++ b/tools/editor/editor_autoload_settings.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,12 +26,10 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-
#include "editor_autoload_settings.h"
#include "globals.h"
#include "global_constants.h"
-
#include "editor_node.h"
#define PREVIEW_LIST_MAX_SIZE 10
@@ -62,7 +60,7 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String& p_name, Strin
return false;
}
- if (ObjectTypeDB::type_exists(p_name)) {
+ if (ClassDB::class_exists(p_name)) {
if (r_error)
*r_error = TTR("Invalid name. Must not collide with an existing engine class name.");
@@ -116,13 +114,12 @@ void EditorAutoloadSettings::_autoload_add() {
UndoRedo* undo_redo = EditorNode::get_singleton()->get_undo_redo();
undo_redo->create_action(TTR("Add AutoLoad"));
- undo_redo->add_do_property(Globals::get_singleton(), name, "*" + path);
- undo_redo->add_do_method(Globals::get_singleton(), "set_persisting", name, true);
+ undo_redo->add_do_property(GlobalConfig::get_singleton(), name, "*" + path);
- if (Globals::get_singleton()->has(name)) {
- undo_redo->add_undo_property(Globals::get_singleton(), name, Globals::get_singleton()->get(name));
+ if (GlobalConfig::get_singleton()->has(name)) {
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, GlobalConfig::get_singleton()->get(name));
} else {
- undo_redo->add_undo_property(Globals::get_singleton(), name, Variant());
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, Variant());
}
undo_redo->add_do_method(this, "update_autoload");
@@ -171,7 +168,7 @@ void EditorAutoloadSettings::_autoload_edited() {
return;
}
- if (Globals::get_singleton()->has("autoload/" + name)) {
+ if (GlobalConfig::get_singleton()->has("autoload/" + name)) {
ti->set_text(0, old_name);
EditorNode::get_singleton()->show_warning(vformat(TTR("Autoload '%s' already exists!"), name));
return;
@@ -181,21 +178,18 @@ void EditorAutoloadSettings::_autoload_edited() {
name = "autoload/" + name;
- bool persisting = Globals::get_singleton()->get(selected_autoload);
- int order = Globals::get_singleton()->get(selected_autoload);
- String path = Globals::get_singleton()->get(selected_autoload);
+ int order = GlobalConfig::get_singleton()->get_order(selected_autoload);
+ String path = GlobalConfig::get_singleton()->get(selected_autoload);
undo_redo->create_action(TTR("Rename Autoload"));
- undo_redo->add_do_property(Globals::get_singleton(), name, path);
- undo_redo->add_do_method(Globals::get_singleton(), "set_persisting", name, persisting);
- undo_redo->add_do_method(Globals::get_singleton(), "set_order", name, order);
- undo_redo->add_do_method(Globals::get_singleton(), "clear", selected_autoload);
+ undo_redo->add_do_property(GlobalConfig::get_singleton(), name, path);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(), "set_order", name, order);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(), "clear", selected_autoload);
- undo_redo->add_undo_property(Globals::get_singleton(), selected_autoload, path);
- undo_redo->add_undo_method(Globals::get_singleton(), "set_persisting", selected_autoload, persisting);
- undo_redo->add_undo_method(Globals::get_singleton(), "set_order", selected_autoload, order);
- undo_redo->add_undo_method(Globals::get_singleton(), "clear", name);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(), selected_autoload, path);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", selected_autoload, order);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(), "clear", name);
undo_redo->add_do_method(this, "update_autoload");
undo_redo->add_undo_method(this, "update_autoload");
@@ -212,8 +206,8 @@ void EditorAutoloadSettings::_autoload_edited() {
bool checked = ti->is_checked(2);
String base = "autoload/" + ti->get_text(0);
- int order = Globals::get_singleton()->get_order(base);
- String path = Globals::get_singleton()->get(base);
+ int order = GlobalConfig::get_singleton()->get_order(base);
+ String path = GlobalConfig::get_singleton()->get(base);
if (path.begins_with("*"))
path = path.substr(1, path.length());
@@ -223,11 +217,11 @@ void EditorAutoloadSettings::_autoload_edited() {
undo_redo->create_action(TTR("Toggle AutoLoad Globals"));
- undo_redo->add_do_property(Globals::get_singleton(), base, path);
- undo_redo->add_undo_property(Globals::get_singleton(), base, Globals::get_singleton()->get(base));
+ undo_redo->add_do_property(GlobalConfig::get_singleton(), base, path);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(), base, GlobalConfig::get_singleton()->get(base));
- undo_redo->add_do_method(Globals::get_singleton(),"set_order", base, order);
- undo_redo->add_undo_method(Globals::get_singleton(),"set_order", base, order);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"set_order", base, order);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set_order", base, order);
undo_redo->add_do_method(this, "update_autoload");
undo_redo->add_undo_method(this, "update_autoload");
@@ -267,16 +261,16 @@ void EditorAutoloadSettings::_autoload_button_pressed(Object *p_item, int p_colu
String swap_name = "autoload/" + swap->get_text(0);
- int order = Globals::get_singleton()->get_order(name);
- int swap_order = Globals::get_singleton()->get_order(swap_name);
+ int order = GlobalConfig::get_singleton()->get_order(name);
+ int swap_order = GlobalConfig::get_singleton()->get_order(swap_name);
undo_redo->create_action(TTR("Move Autoload"));
- undo_redo->add_do_method(Globals::get_singleton(), "set_order", name, swap_order);
- undo_redo->add_undo_method(Globals::get_singleton(), "set_order", name, order);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(), "set_order", name, swap_order);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", name, order);
- undo_redo->add_do_method(Globals::get_singleton(), "set_order", swap_name, order);
- undo_redo->add_undo_method(Globals::get_singleton(), "set_order", swap_name, swap_order);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(), "set_order", swap_name, order);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", swap_name, swap_order);
undo_redo->add_do_method(this, "update_autoload");
undo_redo->add_undo_method(this, "update_autoload");
@@ -288,15 +282,15 @@ void EditorAutoloadSettings::_autoload_button_pressed(Object *p_item, int p_colu
} break;
case BUTTON_DELETE: {
- int order = Globals::get_singleton()->get_order(name);
+ int order = GlobalConfig::get_singleton()->get_order(name);
undo_redo->create_action(TTR("Remove Autoload"));
- undo_redo->add_do_property(Globals::get_singleton(), name, Variant());
+ undo_redo->add_do_property(GlobalConfig::get_singleton(), name, Variant());
- undo_redo->add_undo_property(Globals::get_singleton(), name, Globals::get_singleton()->get(name));
- undo_redo->add_undo_method(Globals::get_singleton(), "set_persisting", name, true);
- undo_redo->add_undo_method(Globals::get_singleton(), "set_order", order);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, GlobalConfig::get_singleton()->get(name));
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_persisting", name, true);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", order);
undo_redo->add_do_method(this, "update_autoload");
undo_redo->add_undo_method(this, "update_autoload");
@@ -311,7 +305,7 @@ void EditorAutoloadSettings::_autoload_button_pressed(Object *p_item, int p_colu
void EditorAutoloadSettings::_autoload_file_callback(const String& p_path) {
- autoload_add_name->set_text(p_path.get_file().basename());
+ autoload_add_name->set_text(p_path.get_file().get_basename());
}
void EditorAutoloadSettings::update_autoload() {
@@ -327,7 +321,7 @@ void EditorAutoloadSettings::update_autoload() {
TreeItem *root = tree->create_item();
List<PropertyInfo> props;
- Globals::get_singleton()->get_property_list(&props);
+ GlobalConfig::get_singleton()->get_property_list(&props);
for (List<PropertyInfo>::Element *E = props.front(); E; E = E->next()) {
@@ -337,14 +331,14 @@ void EditorAutoloadSettings::update_autoload() {
continue;
String name = pi.name.get_slice("/", 1);
- String path = Globals::get_singleton()->get(pi.name);
+ String path = GlobalConfig::get_singleton()->get(pi.name);
if (name.empty())
continue;
AutoLoadInfo info;
info.name = pi.name;
- info.order = Globals::get_singleton()->get_order(pi.name);
+ info.order = GlobalConfig::get_singleton()->get_order(pi.name);
autoload_cache.push_back(info);
@@ -381,7 +375,7 @@ Variant EditorAutoloadSettings::get_drag_data_fw(const Point2& p_point, Control
if (autoload_cache.size() <= 1)
return false;
- StringArray autoloads;
+ PoolStringArray autoloads;
TreeItem *next = tree->get_next_selected(NULL);
@@ -399,7 +393,7 @@ Variant EditorAutoloadSettings::get_drag_data_fw(const Point2& p_point, Control
for (int i = 0; i < max_size; i++) {
Label *label = memnew( Label(autoloads[i]) );
- label->set_self_opacity(Math::lerp(1, 0, float(i)/PREVIEW_LIST_MAX_SIZE));
+ label->set_self_modulate(Color(1,1,1,Math::lerp(1, 0, float(i)/PREVIEW_LIST_MAX_SIZE)));
preview->add_child(label);
}
@@ -464,7 +458,7 @@ void EditorAutoloadSettings::drop_data_fw(const Point2& p_point, const Variant&
move_to_back = true;
}
- int order = Globals::get_singleton()->get_order("autoload/" + name);
+ int order = GlobalConfig::get_singleton()->get_order("autoload/" + name);
AutoLoadInfo aux;
List<AutoLoadInfo>::Element *E = NULL;
@@ -475,13 +469,13 @@ void EditorAutoloadSettings::drop_data_fw(const Point2& p_point, const Variant&
}
Dictionary drop_data = p_data;
- StringArray autoloads = drop_data["autoloads"];
+ PoolStringArray autoloads = drop_data["autoloads"];
Vector<int> orders;
orders.resize(autoload_cache.size());
for (int i = 0; i < autoloads.size(); i++) {
- aux.order = Globals::get_singleton()->get_order("autoload/" + autoloads[i]);
+ aux.order = GlobalConfig::get_singleton()->get_order("autoload/" + autoloads[i]);
List<AutoLoadInfo>::Element *I = autoload_cache.find(aux);
@@ -511,8 +505,8 @@ void EditorAutoloadSettings::drop_data_fw(const Point2& p_point, const Variant&
i = 0;
for (List<AutoLoadInfo>::Element *E = autoload_cache.front(); E; E = E->next()) {
- undo_redo->add_do_method(Globals::get_singleton(), "set_order", E->get().name, orders[i++]);
- undo_redo->add_undo_method(Globals::get_singleton(), "set_order", E->get().name, E->get().order);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(), "set_order", E->get().name, orders[i++]);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(), "set_order", E->get().name, E->get().order);
}
orders.clear();
@@ -528,17 +522,17 @@ void EditorAutoloadSettings::drop_data_fw(const Point2& p_point, const Variant&
void EditorAutoloadSettings::_bind_methods() {
- ObjectTypeDB::bind_method("_autoload_add", &EditorAutoloadSettings::_autoload_add);
- ObjectTypeDB::bind_method("_autoload_selected", &EditorAutoloadSettings::_autoload_selected);
- ObjectTypeDB::bind_method("_autoload_edited", &EditorAutoloadSettings::_autoload_edited);
- ObjectTypeDB::bind_method("_autoload_button_pressed", &EditorAutoloadSettings::_autoload_button_pressed);
- ObjectTypeDB::bind_method("_autoload_file_callback", &EditorAutoloadSettings::_autoload_file_callback);
+ ClassDB::bind_method("_autoload_add", &EditorAutoloadSettings::_autoload_add);
+ ClassDB::bind_method("_autoload_selected", &EditorAutoloadSettings::_autoload_selected);
+ ClassDB::bind_method("_autoload_edited", &EditorAutoloadSettings::_autoload_edited);
+ ClassDB::bind_method("_autoload_button_pressed", &EditorAutoloadSettings::_autoload_button_pressed);
+ ClassDB::bind_method("_autoload_file_callback", &EditorAutoloadSettings::_autoload_file_callback);
- ObjectTypeDB::bind_method("get_drag_data_fw", &EditorAutoloadSettings::get_drag_data_fw);
- ObjectTypeDB::bind_method("can_drop_data_fw", &EditorAutoloadSettings::can_drop_data_fw);
- ObjectTypeDB::bind_method("drop_data_fw", &EditorAutoloadSettings::drop_data_fw);
+ ClassDB::bind_method("get_drag_data_fw", &EditorAutoloadSettings::get_drag_data_fw);
+ ClassDB::bind_method("can_drop_data_fw", &EditorAutoloadSettings::can_drop_data_fw);
+ ClassDB::bind_method("drop_data_fw", &EditorAutoloadSettings::drop_data_fw);
- ObjectTypeDB::bind_method("update_autoload", &EditorAutoloadSettings::update_autoload);
+ ClassDB::bind_method("update_autoload", &EditorAutoloadSettings::update_autoload);
ADD_SIGNAL(MethodInfo("autoload_changed"));
}
diff --git a/tools/editor/editor_autoload_settings.h b/tools/editor/editor_autoload_settings.h
index b61c44b9c2..2afe239000 100644
--- a/tools/editor/editor_autoload_settings.h
+++ b/tools/editor/editor_autoload_settings.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,7 +36,7 @@
class EditorAutoloadSettings : public VBoxContainer {
- OBJ_TYPE( EditorAutoloadSettings, VBoxContainer );
+ GDCLASS( EditorAutoloadSettings, VBoxContainer );
enum {
BUTTON_MOVE_UP,
diff --git a/tools/editor/editor_data.cpp b/tools/editor/editor_data.cpp
index 8fc18b5b39..44de1836b6 100644
--- a/tools/editor/editor_data.cpp
+++ b/tools/editor/editor_data.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_data.h"
+
#include "globals.h"
#include "editor_settings.h"
#include "os/dir_access.h"
@@ -524,8 +525,10 @@ void EditorData::remove_scene(int p_idx){
bool EditorData::_find_updated_instances(Node* p_root,Node *p_node,Set<String> &checked_paths) {
-// if (p_root!=p_node && p_node->get_owner()!=p_root && !p_root->is_editable_instance(p_node->get_owner()))
-// return false;
+ /*
+ if (p_root!=p_node && p_node->get_owner()!=p_root && !p_root->is_editable_instance(p_node->get_owner()))
+ return false;
+ */
Ref<SceneState> ss;
@@ -584,7 +587,7 @@ bool EditorData::check_and_update_scene(int p_idx) {
Error err = pscene->pack(edited_scene[p_idx].root);
ERR_FAIL_COND_V(err!=OK,false);
ep.step(TTR("Updating scene.."),1);
- Node *new_scene = pscene->instance(true);
+ Node *new_scene = pscene->instance(PackedScene::GEN_EDIT_STATE_MAIN);
ERR_FAIL_COND_V(!new_scene,false);
//transfer selection
@@ -667,7 +670,7 @@ String EditorData::get_scene_type(int p_idx) const {
ERR_FAIL_INDEX_V(p_idx,edited_scene.size(),String());
if (!edited_scene[p_idx].root)
return "";
- return edited_scene[p_idx].root->get_type();
+ return edited_scene[p_idx].root->get_class();
}
void EditorData::move_edited_scene_to_index(int p_idx) {
@@ -814,7 +817,7 @@ EditorData::EditorData() {
current_edited_scene=-1;
-// load_imported_scenes_from_globals();
+ //load_imported_scenes_from_globals();
}
///////////
@@ -851,7 +854,7 @@ void EditorSelection::add_node(Node *p_node) {
}
selection[p_node]=meta;
- p_node->connect("exit_tree",this,"_node_removed",varray(p_node),CONNECT_ONESHOT);
+ p_node->connect("tree_exited",this,"_node_removed",varray(p_node),CONNECT_ONESHOT);
//emit_signal("selection_changed");
}
@@ -869,7 +872,7 @@ void EditorSelection::remove_node(Node *p_node) {
if (meta)
memdelete(meta);
selection.erase(p_node);
- p_node->disconnect("exit_tree",this,"_node_removed");
+ p_node->disconnect("tree_exited",this,"_node_removed");
//emit_signal("selection_changed");
}
bool EditorSelection::is_selected(Node * p_node) const {
@@ -903,12 +906,12 @@ Array EditorSelection::_get_selected_nodes() {
void EditorSelection::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_node_removed"),&EditorSelection::_node_removed);
- ObjectTypeDB::bind_method(_MD("clear"),&EditorSelection::clear);
- ObjectTypeDB::bind_method(_MD("add_node","node:Node"),&EditorSelection::add_node);
- ObjectTypeDB::bind_method(_MD("remove_node","node:Node"),&EditorSelection::remove_node);
- ObjectTypeDB::bind_method(_MD("get_selected_nodes"),&EditorSelection::_get_selected_nodes);
- ObjectTypeDB::bind_method(_MD("get_transformable_selected_nodes"),&EditorSelection::_get_transformable_selected_nodes);
+ ClassDB::bind_method(_MD("_node_removed"),&EditorSelection::_node_removed);
+ ClassDB::bind_method(_MD("clear"),&EditorSelection::clear);
+ ClassDB::bind_method(_MD("add_node","node:Node"),&EditorSelection::add_node);
+ ClassDB::bind_method(_MD("remove_node","node:Node"),&EditorSelection::remove_node);
+ ClassDB::bind_method(_MD("get_selected_nodes"),&EditorSelection::_get_selected_nodes);
+ ClassDB::bind_method(_MD("get_transformable_selected_nodes"),&EditorSelection::_get_transformable_selected_nodes);
ADD_SIGNAL( MethodInfo("selection_changed") );
}
diff --git a/tools/editor/editor_data.h b/tools/editor/editor_data.h
index 59f9d4e4f3..f0bc5983a2 100644
--- a/tools/editor/editor_data.h
+++ b/tools/editor/editor_data.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -218,7 +218,7 @@ public:
class EditorSelection : public Object {
- OBJ_TYPE(EditorSelection,Object);
+ GDCLASS(EditorSelection,Object);
public:
Map<Node*,Object*> selection;
diff --git a/tools/editor/editor_dir_dialog.cpp b/tools/editor/editor_dir_dialog.cpp
index cf0732501e..bb9ddc2aef 100644
--- a/tools/editor/editor_dir_dialog.cpp
+++ b/tools/editor/editor_dir_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_dir_dialog.h"
+
#include "os/os.h"
#include "os/keyboard.h"
#include "tools/editor/editor_settings.h"
@@ -46,7 +47,7 @@ void EditorDirDialog::_update_dir(TreeItem* p_item) {
List<String> dirs;
bool ishidden;
- bool show_hidden = EditorSettings::get_singleton()->get("file_dialog/show_hidden_files");
+ bool show_hidden = EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files");
while(p!="") {
@@ -78,7 +79,7 @@ void EditorDirDialog::_update_dir(TreeItem* p_item) {
void EditorDirDialog::reload() {
- if (!is_visible()) {
+ if (!is_visible_in_tree()) {
must_reload=true;
return;
}
@@ -111,7 +112,7 @@ void EditorDirDialog::_notification(int p_what) {
}
if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
- if (must_reload && is_visible()) {
+ if (must_reload && is_visible_in_tree()) {
reload();
}
}
@@ -145,7 +146,7 @@ void EditorDirDialog::set_current_path(const String& p_path) {
if (p.begins_with("res://"))
p = p.replace_first("res://","");
- Vector<String> dirs = p.split("/");
+ Vector<String> dirs = p.split("/",false);
TreeItem *r=tree->get_root();
for(int i=0;i<dirs.size();i++) {
@@ -224,10 +225,10 @@ void EditorDirDialog::_make_dir_confirm() {
void EditorDirDialog::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_item_collapsed"),&EditorDirDialog::_item_collapsed);
- ObjectTypeDB::bind_method(_MD("_make_dir"),&EditorDirDialog::_make_dir);
- ObjectTypeDB::bind_method(_MD("_make_dir_confirm"),&EditorDirDialog::_make_dir_confirm);
- ObjectTypeDB::bind_method(_MD("reload"),&EditorDirDialog::reload);
+ ClassDB::bind_method(_MD("_item_collapsed"),&EditorDirDialog::_item_collapsed);
+ ClassDB::bind_method(_MD("_make_dir"),&EditorDirDialog::_make_dir);
+ ClassDB::bind_method(_MD("_make_dir_confirm"),&EditorDirDialog::_make_dir_confirm);
+ ClassDB::bind_method(_MD("reload"),&EditorDirDialog::reload);
ADD_SIGNAL(MethodInfo("dir_selected",PropertyInfo(Variant::STRING,"dir")));
}
@@ -243,7 +244,7 @@ EditorDirDialog::EditorDirDialog() {
tree = memnew( Tree );
add_child(tree);
- set_child_rect(tree);
+
tree->connect("item_activated",this,"_ok");
makedir = add_button(TTR("Create Folder"),OS::get_singleton()->get_swap_ok_cancel()?true:false,"makedir");
@@ -255,7 +256,7 @@ EditorDirDialog::EditorDirDialog() {
VBoxContainer *makevb= memnew( VBoxContainer );
makedialog->add_child(makevb);
- makedialog->set_child_rect(makevb);
+ //makedialog->set_child_rect(makevb);
makedirname = memnew( LineEdit );
makevb->add_margin_child(TTR("Name:"),makedirname);
diff --git a/tools/editor/editor_dir_dialog.h b/tools/editor/editor_dir_dialog.h
index 69f9850c30..0577ff0442 100644
--- a/tools/editor/editor_dir_dialog.h
+++ b/tools/editor/editor_dir_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -34,7 +34,7 @@
#include "scene/gui/tree.h"
class EditorDirDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorDirDialog,ConfirmationDialog);
+ GDCLASS(EditorDirDialog,ConfirmationDialog);
ConfirmationDialog *makedialog;
diff --git a/tools/editor/editor_file_dialog.cpp b/tools/editor/editor_file_dialog.cpp
index 90289a275e..e23e2419d8 100644
--- a/tools/editor/editor_file_dialog.cpp
+++ b/tools/editor/editor_file_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_file_dialog.h"
+
#include "scene/gui/label.h"
#include "scene/gui/center_container.h"
#include "print_string.h"
@@ -36,6 +37,7 @@
#include "scene/gui/margin_container.h"
#include "os/file_access.h"
#include "editor_scale.h"
+
EditorFileDialog::GetIconFunc EditorFileDialog::get_icon_func=NULL;
EditorFileDialog::GetIconFunc EditorFileDialog::get_large_icon_func=NULL;
@@ -87,10 +89,10 @@ void EditorFileDialog::_notification(int p_what) {
} else if (p_what==EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
- bool show_hidden=EditorSettings::get_singleton()->get("file_dialog/show_hidden_files");
+ bool show_hidden=EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files");
if (show_hidden_files!=show_hidden)
set_show_hidden_files(show_hidden);
- set_display_mode((DisplayMode)EditorSettings::get_singleton()->get("file_dialog/display_mode").operator int());
+ set_display_mode((DisplayMode)EditorSettings::get_singleton()->get("filesystem/file_dialog/display_mode").operator int());
}
}
@@ -121,7 +123,7 @@ void EditorFileDialog::_unhandled_input(const InputEvent& p_event) {
if (ED_IS_SHORTCUT("file_dialog/toggle_hidden_files", p_event)) {
bool show=!show_hidden_files;
set_show_hidden_files(show);
- EditorSettings::get_singleton()->set("file_dialog/show_hidden_files",show);
+ EditorSettings::get_singleton()->set("filesystem/file_dialog/show_hidden_files",show);
handled=true;
}
if (ED_IS_SHORTCUT("file_dialog/toggle_favorite", p_event)) {
@@ -218,10 +220,10 @@ void EditorFileDialog::_post_popup() {
else
item_list->grab_focus();
- if (is_visible() && get_current_file()!="")
+ if (is_visible_in_tree() && get_current_file()!="")
_request_single_thumbnail(get_current_dir().plus_file(get_current_file()));
- if (is_visible()) {
+ if (is_visible_in_tree()) {
Ref<Texture> folder = get_icon("folder","FileDialog");
recent->clear();
@@ -313,7 +315,7 @@ void EditorFileDialog::_action_pressed() {
String fbase=dir_access->get_current_dir();
- DVector<String> files;
+ PoolVector<String> files;
for(int i=0;i<item_list->get_item_count();i++) {
if (item_list->is_selected(i))
files.push_back( fbase.plus_file(item_list->get_item_text(i) ));
@@ -490,7 +492,7 @@ void EditorFileDialog::_item_dc_selected(int p_item) {
void EditorFileDialog::update_file_list() {
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
Ref<Texture> folder_thumbnail;
Ref<Texture> file_thumbnail;
@@ -713,8 +715,10 @@ void EditorFileDialog::update_file_list() {
}
// ??
- //if (tree->get_root() && tree->get_root()->get_children())
- // tree->get_root()->get_children()->select(0);
+ /*
+ if (tree->get_root() && tree->get_root()->get_children())
+ tree->get_root()->get_children()->select(0);
+ */
files.clear();
@@ -806,7 +810,7 @@ void EditorFileDialog::set_current_file(const String& p_file) {
file->grab_focus();
}
- if (is_visible())
+ if (is_visible_in_tree())
_request_single_thumbnail(get_current_dir().plus_file(get_current_file()));
@@ -882,7 +886,7 @@ void EditorFileDialog::set_access(Access p_access) {
void EditorFileDialog::invalidate() {
- if (is_visible()) {
+ if (is_visible_in_tree()) {
update_file_list();
invalidated=false;
} else {
@@ -1148,7 +1152,7 @@ void EditorFileDialog::set_display_mode(DisplayMode p_mode) {
mode_list->set_pressed(true);
}
display_mode=p_mode;
- invalidate();;
+ invalidate();
}
EditorFileDialog::DisplayMode EditorFileDialog::get_display_mode() const{
@@ -1160,58 +1164,58 @@ EditorFileDialog::DisplayMode EditorFileDialog::get_display_mode() const{
void EditorFileDialog::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_unhandled_input"),&EditorFileDialog::_unhandled_input);
-
- ObjectTypeDB::bind_method(_MD("_item_selected"),&EditorFileDialog::_item_selected);
- ObjectTypeDB::bind_method(_MD("_item_db_selected"),&EditorFileDialog::_item_dc_selected);
- ObjectTypeDB::bind_method(_MD("_dir_entered"),&EditorFileDialog::_dir_entered);
- ObjectTypeDB::bind_method(_MD("_file_entered"),&EditorFileDialog::_file_entered);
- ObjectTypeDB::bind_method(_MD("_action_pressed"),&EditorFileDialog::_action_pressed);
- ObjectTypeDB::bind_method(_MD("_cancel_pressed"),&EditorFileDialog::_cancel_pressed);
- ObjectTypeDB::bind_method(_MD("_filter_selected"),&EditorFileDialog::_filter_selected);
- ObjectTypeDB::bind_method(_MD("_save_confirm_pressed"),&EditorFileDialog::_save_confirm_pressed);
-
- ObjectTypeDB::bind_method(_MD("clear_filters"),&EditorFileDialog::clear_filters);
- ObjectTypeDB::bind_method(_MD("add_filter","filter"),&EditorFileDialog::add_filter);
- ObjectTypeDB::bind_method(_MD("get_current_dir"),&EditorFileDialog::get_current_dir);
- ObjectTypeDB::bind_method(_MD("get_current_file"),&EditorFileDialog::get_current_file);
- ObjectTypeDB::bind_method(_MD("get_current_path"),&EditorFileDialog::get_current_path);
- ObjectTypeDB::bind_method(_MD("set_current_dir","dir"),&EditorFileDialog::set_current_dir);
- ObjectTypeDB::bind_method(_MD("set_current_file","file"),&EditorFileDialog::set_current_file);
- ObjectTypeDB::bind_method(_MD("set_current_path","path"),&EditorFileDialog::set_current_path);
- ObjectTypeDB::bind_method(_MD("set_mode","mode"),&EditorFileDialog::set_mode);
- ObjectTypeDB::bind_method(_MD("get_mode"),&EditorFileDialog::get_mode);
- ObjectTypeDB::bind_method(_MD("get_vbox:VBoxContainer"),&EditorFileDialog::get_vbox);
- ObjectTypeDB::bind_method(_MD("set_access","access"),&EditorFileDialog::set_access);
- ObjectTypeDB::bind_method(_MD("get_access"),&EditorFileDialog::get_access);
- ObjectTypeDB::bind_method(_MD("set_show_hidden_files","show"),&EditorFileDialog::set_show_hidden_files);
- ObjectTypeDB::bind_method(_MD("is_showing_hidden_files"),&EditorFileDialog::is_showing_hidden_files);
- ObjectTypeDB::bind_method(_MD("_select_drive"),&EditorFileDialog::_select_drive);
- ObjectTypeDB::bind_method(_MD("_make_dir"),&EditorFileDialog::_make_dir);
- ObjectTypeDB::bind_method(_MD("_make_dir_confirm"),&EditorFileDialog::_make_dir_confirm);
- ObjectTypeDB::bind_method(_MD("_update_file_list"),&EditorFileDialog::update_file_list);
- ObjectTypeDB::bind_method(_MD("_update_dir"),&EditorFileDialog::update_dir);
- ObjectTypeDB::bind_method(_MD("_thumbnail_done"),&EditorFileDialog::_thumbnail_done);
- ObjectTypeDB::bind_method(_MD("set_display_mode","mode"),&EditorFileDialog::set_display_mode);
- ObjectTypeDB::bind_method(_MD("get_display_mode"),&EditorFileDialog::get_display_mode);
- ObjectTypeDB::bind_method(_MD("_thumbnail_result"),&EditorFileDialog::_thumbnail_result);
- ObjectTypeDB::bind_method(_MD("set_disable_overwrite_warning","disable"),&EditorFileDialog::set_disable_overwrite_warning);
- ObjectTypeDB::bind_method(_MD("is_overwrite_warning_disabled"),&EditorFileDialog::is_overwrite_warning_disabled);
-
- ObjectTypeDB::bind_method(_MD("_recent_selected"),&EditorFileDialog::_recent_selected);
- ObjectTypeDB::bind_method(_MD("_go_back"),&EditorFileDialog::_go_back);
- ObjectTypeDB::bind_method(_MD("_go_forward"),&EditorFileDialog::_go_forward);
- ObjectTypeDB::bind_method(_MD("_go_up"),&EditorFileDialog::_go_up);
-
- ObjectTypeDB::bind_method(_MD("_favorite_toggled"),&EditorFileDialog::_favorite_toggled);
- ObjectTypeDB::bind_method(_MD("_favorite_selected"),&EditorFileDialog::_favorite_selected);
- ObjectTypeDB::bind_method(_MD("_favorite_move_up"),&EditorFileDialog::_favorite_move_up);
- ObjectTypeDB::bind_method(_MD("_favorite_move_down"),&EditorFileDialog::_favorite_move_down);
-
- ObjectTypeDB::bind_method(_MD("invalidate"),&EditorFileDialog::invalidate);
+ ClassDB::bind_method(_MD("_unhandled_input"),&EditorFileDialog::_unhandled_input);
+
+ ClassDB::bind_method(_MD("_item_selected"),&EditorFileDialog::_item_selected);
+ ClassDB::bind_method(_MD("_item_db_selected"),&EditorFileDialog::_item_dc_selected);
+ ClassDB::bind_method(_MD("_dir_entered"),&EditorFileDialog::_dir_entered);
+ ClassDB::bind_method(_MD("_file_entered"),&EditorFileDialog::_file_entered);
+ ClassDB::bind_method(_MD("_action_pressed"),&EditorFileDialog::_action_pressed);
+ ClassDB::bind_method(_MD("_cancel_pressed"),&EditorFileDialog::_cancel_pressed);
+ ClassDB::bind_method(_MD("_filter_selected"),&EditorFileDialog::_filter_selected);
+ ClassDB::bind_method(_MD("_save_confirm_pressed"),&EditorFileDialog::_save_confirm_pressed);
+
+ ClassDB::bind_method(_MD("clear_filters"),&EditorFileDialog::clear_filters);
+ ClassDB::bind_method(_MD("add_filter","filter"),&EditorFileDialog::add_filter);
+ ClassDB::bind_method(_MD("get_current_dir"),&EditorFileDialog::get_current_dir);
+ ClassDB::bind_method(_MD("get_current_file"),&EditorFileDialog::get_current_file);
+ ClassDB::bind_method(_MD("get_current_path"),&EditorFileDialog::get_current_path);
+ ClassDB::bind_method(_MD("set_current_dir","dir"),&EditorFileDialog::set_current_dir);
+ ClassDB::bind_method(_MD("set_current_file","file"),&EditorFileDialog::set_current_file);
+ ClassDB::bind_method(_MD("set_current_path","path"),&EditorFileDialog::set_current_path);
+ ClassDB::bind_method(_MD("set_mode","mode"),&EditorFileDialog::set_mode);
+ ClassDB::bind_method(_MD("get_mode"),&EditorFileDialog::get_mode);
+ ClassDB::bind_method(_MD("get_vbox:VBoxContainer"),&EditorFileDialog::get_vbox);
+ ClassDB::bind_method(_MD("set_access","access"),&EditorFileDialog::set_access);
+ ClassDB::bind_method(_MD("get_access"),&EditorFileDialog::get_access);
+ ClassDB::bind_method(_MD("set_show_hidden_files","show"),&EditorFileDialog::set_show_hidden_files);
+ ClassDB::bind_method(_MD("is_showing_hidden_files"),&EditorFileDialog::is_showing_hidden_files);
+ ClassDB::bind_method(_MD("_select_drive"),&EditorFileDialog::_select_drive);
+ ClassDB::bind_method(_MD("_make_dir"),&EditorFileDialog::_make_dir);
+ ClassDB::bind_method(_MD("_make_dir_confirm"),&EditorFileDialog::_make_dir_confirm);
+ ClassDB::bind_method(_MD("_update_file_list"),&EditorFileDialog::update_file_list);
+ ClassDB::bind_method(_MD("_update_dir"),&EditorFileDialog::update_dir);
+ ClassDB::bind_method(_MD("_thumbnail_done"),&EditorFileDialog::_thumbnail_done);
+ ClassDB::bind_method(_MD("set_display_mode","mode"),&EditorFileDialog::set_display_mode);
+ ClassDB::bind_method(_MD("get_display_mode"),&EditorFileDialog::get_display_mode);
+ ClassDB::bind_method(_MD("_thumbnail_result"),&EditorFileDialog::_thumbnail_result);
+ ClassDB::bind_method(_MD("set_disable_overwrite_warning","disable"),&EditorFileDialog::set_disable_overwrite_warning);
+ ClassDB::bind_method(_MD("is_overwrite_warning_disabled"),&EditorFileDialog::is_overwrite_warning_disabled);
+
+ ClassDB::bind_method(_MD("_recent_selected"),&EditorFileDialog::_recent_selected);
+ ClassDB::bind_method(_MD("_go_back"),&EditorFileDialog::_go_back);
+ ClassDB::bind_method(_MD("_go_forward"),&EditorFileDialog::_go_forward);
+ ClassDB::bind_method(_MD("_go_up"),&EditorFileDialog::_go_up);
+
+ ClassDB::bind_method(_MD("_favorite_toggled"),&EditorFileDialog::_favorite_toggled);
+ ClassDB::bind_method(_MD("_favorite_selected"),&EditorFileDialog::_favorite_selected);
+ ClassDB::bind_method(_MD("_favorite_move_up"),&EditorFileDialog::_favorite_move_up);
+ ClassDB::bind_method(_MD("_favorite_move_down"),&EditorFileDialog::_favorite_move_down);
+
+ ClassDB::bind_method(_MD("invalidate"),&EditorFileDialog::invalidate);
ADD_SIGNAL(MethodInfo("file_selected",PropertyInfo( Variant::STRING,"path")));
- ADD_SIGNAL(MethodInfo("files_selected",PropertyInfo( Variant::STRING_ARRAY,"paths")));
+ ADD_SIGNAL(MethodInfo("files_selected",PropertyInfo( Variant::POOL_STRING_ARRAY,"paths")));
ADD_SIGNAL(MethodInfo("dir_selected",PropertyInfo( Variant::STRING,"dir")));
BIND_CONSTANT( MODE_OPEN_FILE );
@@ -1289,7 +1293,6 @@ EditorFileDialog::EditorFileDialog() {
disable_overwrite_warning=false;
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
mode=MODE_SAVE_FILE;
set_title(TTR("Save a File"));
@@ -1406,7 +1409,7 @@ EditorFileDialog::EditorFileDialog() {
filter_hb->add_child(preview_vb);
CenterContainer *prev_cc = memnew( CenterContainer );
preview_vb->add_margin_child(TTR("Preview:"),prev_cc);
- preview = memnew( TextureFrame );
+ preview = memnew( TextureRect );
prev_cc->add_child(preview);
preview_vb->hide();
@@ -1446,7 +1449,7 @@ EditorFileDialog::EditorFileDialog() {
makedialog->set_title(TTR("Create Folder"));
VBoxContainer *makevb= memnew( VBoxContainer );
makedialog->add_child(makevb);
- makedialog->set_child_rect(makevb);
+
makedirname = memnew( LineEdit );
makevb->add_margin_child(TTR("Name:"),makedirname);
add_child(makedialog);
@@ -1490,11 +1493,11 @@ EditorFileDialog::~EditorFileDialog() {
void EditorLineEditFileChooser::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_browse"),&EditorLineEditFileChooser::_browse);
- ObjectTypeDB::bind_method(_MD("_chosen"),&EditorLineEditFileChooser::_chosen);
- ObjectTypeDB::bind_method(_MD("get_button:Button"),&EditorLineEditFileChooser::get_button);
- ObjectTypeDB::bind_method(_MD("get_line_edit:LineEdit"),&EditorLineEditFileChooser::get_line_edit);
- ObjectTypeDB::bind_method(_MD("get_file_dialog:EditorFileDialog"),&EditorLineEditFileChooser::get_file_dialog);
+ ClassDB::bind_method(_MD("_browse"),&EditorLineEditFileChooser::_browse);
+ ClassDB::bind_method(_MD("_chosen"),&EditorLineEditFileChooser::_chosen);
+ ClassDB::bind_method(_MD("get_button:Button"),&EditorLineEditFileChooser::get_button);
+ ClassDB::bind_method(_MD("get_line_edit:LineEdit"),&EditorLineEditFileChooser::get_line_edit);
+ ClassDB::bind_method(_MD("get_file_dialog:EditorFileDialog"),&EditorLineEditFileChooser::get_file_dialog);
}
diff --git a/tools/editor/editor_file_dialog.h b/tools/editor/editor_file_dialog.h
index 14683856c0..193cbc513c 100644
--- a/tools/editor/editor_file_dialog.h
+++ b/tools/editor/editor_file_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,14 +35,14 @@
#include "scene/gui/option_button.h"
#include "os/dir_access.h"
#include "scene/gui/box_container.h"
-#include "scene/gui/texture_frame.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/tool_button.h"
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
class EditorFileDialog : public ConfirmationDialog {
- OBJ_TYPE( EditorFileDialog, ConfirmationDialog );
+ GDCLASS( EditorFileDialog, ConfirmationDialog );
public:
@@ -93,7 +93,7 @@ private:
OptionButton *drives;
ItemList *item_list;
- TextureFrame *preview;
+ TextureRect *preview;
VBoxContainer *preview_vb;
HBoxContainer *list_hb;
LineEdit *file;
@@ -227,7 +227,7 @@ public:
class EditorLineEditFileChooser : public HBoxContainer {
- OBJ_TYPE( EditorLineEditFileChooser, HBoxContainer );
+ GDCLASS( EditorLineEditFileChooser, HBoxContainer );
Button *button;
LineEdit *line_edit;
EditorFileDialog *dialog;
diff --git a/tools/editor/editor_file_system.cpp b/tools/editor/editor_file_system.cpp
index be1af16576..39869beef4 100644
--- a/tools/editor/editor_file_system.cpp
+++ b/tools/editor/editor_file_system.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_file_system.h"
+
#include "globals.h"
#include "io/resource_loader.h"
#include "os/os.h"
@@ -203,18 +204,18 @@ EditorFileSystemDirectory *EditorFileSystemDirectory::get_parent() {
void EditorFileSystemDirectory::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("get_subdir_count"),&EditorFileSystemDirectory::get_subdir_count);
- ObjectTypeDB::bind_method(_MD("get_subdir","idx"),&EditorFileSystemDirectory::get_subdir);
- ObjectTypeDB::bind_method(_MD("get_file_count"),&EditorFileSystemDirectory::get_file_count);
- ObjectTypeDB::bind_method(_MD("get_file","idx"),&EditorFileSystemDirectory::get_file);
- ObjectTypeDB::bind_method(_MD("get_file_path","idx"),&EditorFileSystemDirectory::get_file_path);
- ObjectTypeDB::bind_method(_MD("get_file_type","idx"),&EditorFileSystemDirectory::get_file_type);
- ObjectTypeDB::bind_method(_MD("is_missing_sources","idx"),&EditorFileSystemDirectory::is_missing_sources);
- ObjectTypeDB::bind_method(_MD("get_name"),&EditorFileSystemDirectory::get_name);
- ObjectTypeDB::bind_method(_MD("get_path"),&EditorFileSystemDirectory::get_path);
- ObjectTypeDB::bind_method(_MD("get_parent:EditorFileSystemDirectory"),&EditorFileSystemDirectory::get_parent);
- ObjectTypeDB::bind_method(_MD("find_file_index","name"),&EditorFileSystemDirectory::find_file_index);
- ObjectTypeDB::bind_method(_MD("find_dir_index","name"),&EditorFileSystemDirectory::find_dir_index);
+ ClassDB::bind_method(_MD("get_subdir_count"),&EditorFileSystemDirectory::get_subdir_count);
+ ClassDB::bind_method(_MD("get_subdir","idx"),&EditorFileSystemDirectory::get_subdir);
+ ClassDB::bind_method(_MD("get_file_count"),&EditorFileSystemDirectory::get_file_count);
+ ClassDB::bind_method(_MD("get_file","idx"),&EditorFileSystemDirectory::get_file);
+ ClassDB::bind_method(_MD("get_file_path","idx"),&EditorFileSystemDirectory::get_file_path);
+ ClassDB::bind_method(_MD("get_file_type","idx"),&EditorFileSystemDirectory::get_file_type);
+ ClassDB::bind_method(_MD("is_missing_sources","idx"),&EditorFileSystemDirectory::is_missing_sources);
+ ClassDB::bind_method(_MD("get_name"),&EditorFileSystemDirectory::get_name);
+ ClassDB::bind_method(_MD("get_path"),&EditorFileSystemDirectory::get_path);
+ ClassDB::bind_method(_MD("get_parent:EditorFileSystemDirectory"),&EditorFileSystemDirectory::get_parent);
+ ClassDB::bind_method(_MD("find_file_index","name"),&EditorFileSystemDirectory::find_file_index);
+ ClassDB::bind_method(_MD("find_dir_index","name"),&EditorFileSystemDirectory::find_dir_index);
}
@@ -286,7 +287,7 @@ void EditorFileSystem::_scan_filesystem() {
sources_changed.clear();
file_cache.clear();
- String project=Globals::get_singleton()->get_resource_path();
+ String project=GlobalConfig::get_singleton()->get_resource_path();
String fscache = EditorSettings::get_singleton()->get_project_settings_path().plus_file("filesystem_cache");
FileAccess *f =FileAccess::open(fscache,FileAccess::READ);
@@ -378,7 +379,7 @@ void EditorFileSystem::_scan_filesystem() {
//save back the findings
-// String fscache = EditorSettings::get_singleton()->get_project_settings_path().plus_file("file_cache");
+ //String fscache = EditorSettings::get_singleton()->get_project_settings_path().plus_file("file_cache");
f=FileAccess::open(fscache,FileAccess::WRITE);
_save_filesystem_cache(new_filesystem,f);
@@ -488,7 +489,7 @@ bool EditorFileSystem::_update_scan_actions() {
void EditorFileSystem::scan() {
- if (bool(Globals::get_singleton()->get("debug/disable_scan")))
+ if (false /*&& bool(Globals::get_singleton()->get("debug/disable_scan"))*/)
return;
if (scanning || scanning_sources|| thread)
@@ -502,7 +503,7 @@ void EditorFileSystem::scan() {
_scan_filesystem();
if (filesystem)
memdelete(filesystem);
-// file_type_cache.clear();
+ //file_type_cache.clear();
filesystem=new_filesystem;
new_filesystem=NULL;
_update_scan_actions();
@@ -670,7 +671,7 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir,DirAccess
for (List<String>::Element*E=files.front();E;E=E->next(),idx++) {
- String ext = E->get().extension().to_lower();
+ String ext = E->get().get_extension().to_lower();
if (!valid_extensions.has(ext))
continue; //invalid
@@ -789,7 +790,7 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir,const S
} else {
- String ext = f.extension().to_lower();
+ String ext = f.get_extension().to_lower();
if (!valid_extensions.has(ext))
continue; //invalid
@@ -1088,7 +1089,7 @@ bool EditorFileSystem::_find_file(const String& p_file,EditorFileSystemDirectory
return false;
- String f = Globals::get_singleton()->localize_path(p_file);
+ String f = GlobalConfig::get_singleton()->localize_path(p_file);
if (!f.begins_with("res://"))
return false;
@@ -1198,13 +1199,13 @@ EditorFileSystemDirectory* EditorFileSystem::find_file(const String& p_file,int*
}
-EditorFileSystemDirectory *EditorFileSystem::get_path(const String& p_path) {
+EditorFileSystemDirectory *EditorFileSystem::get_filesystem_path(const String& p_path) {
if (!filesystem || scanning)
return NULL;
- String f = Globals::get_singleton()->localize_path(p_path);
+ String f = GlobalConfig::get_singleton()->localize_path(p_path);
if (!f.begins_with("res://"))
return NULL;
@@ -1346,14 +1347,14 @@ void EditorFileSystem::update_file(const String& p_file) {
void EditorFileSystem::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("get_filesystem:EditorFileSystemDirectory"),&EditorFileSystem::get_filesystem);
- ObjectTypeDB::bind_method(_MD("is_scanning"),&EditorFileSystem::is_scanning);
- ObjectTypeDB::bind_method(_MD("get_scanning_progress"),&EditorFileSystem::get_scanning_progress);
- ObjectTypeDB::bind_method(_MD("scan"),&EditorFileSystem::scan);
- ObjectTypeDB::bind_method(_MD("scan_sources"),&EditorFileSystem::scan_sources);
- ObjectTypeDB::bind_method(_MD("update_file","path"),&EditorFileSystem::update_file);
- ObjectTypeDB::bind_method(_MD("get_path:EditorFileSystemDirectory","path"),&EditorFileSystem::get_path);
- ObjectTypeDB::bind_method(_MD("get_file_type","path"),&EditorFileSystem::get_file_type);
+ ClassDB::bind_method(_MD("get_filesystem:EditorFileSystemDirectory"),&EditorFileSystem::get_filesystem);
+ ClassDB::bind_method(_MD("is_scanning"),&EditorFileSystem::is_scanning);
+ ClassDB::bind_method(_MD("get_scanning_progress"),&EditorFileSystem::get_scanning_progress);
+ ClassDB::bind_method(_MD("scan"),&EditorFileSystem::scan);
+ ClassDB::bind_method(_MD("scan_sources"),&EditorFileSystem::scan_sources);
+ ClassDB::bind_method(_MD("update_file","path"),&EditorFileSystem::update_file);
+ ClassDB::bind_method(_MD("get_filesystem_path:EditorFileSystemDirectory","path"),&EditorFileSystem::get_filesystem_path);
+ ClassDB::bind_method(_MD("get_file_type","path"),&EditorFileSystem::get_file_type);
ADD_SIGNAL( MethodInfo("filesystem_changed") );
ADD_SIGNAL( MethodInfo("sources_changed",PropertyInfo(Variant::BOOL,"exist")) );
diff --git a/tools/editor/editor_file_system.h b/tools/editor/editor_file_system.h
index fb768fb358..3a26f46aa9 100644
--- a/tools/editor/editor_file_system.h
+++ b/tools/editor/editor_file_system.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -39,7 +39,7 @@ class FileAccess;
struct EditorProgressBG;
class EditorFileSystemDirectory : public Object {
- OBJ_TYPE( EditorFileSystemDirectory,Object );
+ GDCLASS( EditorFileSystemDirectory,Object );
String name;
uint64_t modified_time;
@@ -122,7 +122,7 @@ public:
class EditorFileSystem : public Node {
- OBJ_TYPE( EditorFileSystem, Node );
+ GDCLASS( EditorFileSystem, Node );
_THREAD_SAFE_CLASS_
@@ -233,7 +233,7 @@ public:
void get_changed_sources(List<String> *r_changed);
void update_file(const String& p_file);
String find_resource_from_source(const String& p_path) const;
- EditorFileSystemDirectory *get_path(const String& p_path);
+ EditorFileSystemDirectory *get_filesystem_path(const String& p_path);
String get_file_type(const String& p_file) const;
EditorFileSystemDirectory* find_file(const String& p_file,int* r_index) const;
diff --git a/tools/editor/editor_fonts.cpp b/tools/editor/editor_fonts.cpp
index bcf41cbac8..3652a59978 100644
--- a/tools/editor/editor_fonts.cpp
+++ b/tools/editor/editor_fonts.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_fonts.h"
+
#include "doc_font.h"
#include "doc_title_font.h"
#include "doc_code_font.h"
@@ -122,18 +123,18 @@ void editor_register_fonts(Ref<Theme> p_theme) {
dfmono->set_font_ptr(_font_source_code_pro,_font_source_code_pro_size);
//dfd->set_force_autohinter(true); //just looks better..i think?
- MAKE_DROID_SANS(df,int(EditorSettings::get_singleton()->get("global/font_size"))*EDSCALE);
+ MAKE_DROID_SANS(df,int(EditorSettings::get_singleton()->get("interface/font_size"))*EDSCALE);
p_theme->set_default_theme_font(df);
-// Ref<BitmapFont> doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons"));
-// Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons"));
-// Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons"));
+ //Ref<BitmapFont> doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons"));
+ //Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons"));
+ //Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons"));
- MAKE_DROID_SANS(df_title,int(EDITOR_DEF("help/help_title_font_size",18))*EDSCALE);
+ MAKE_DROID_SANS(df_title,int(EDITOR_DEF("text_editor/help/help_title_font_size",18))*EDSCALE);
- MAKE_DROID_SANS(df_doc,int(EDITOR_DEF("help/help_font_size",16))*EDSCALE);
+ MAKE_DROID_SANS(df_doc,int(EDITOR_DEF("text_editor/help/help_font_size",16))*EDSCALE);
p_theme->set_font("doc","EditorFonts",df_doc);
@@ -142,7 +143,7 @@ void editor_register_fonts(Ref<Theme> p_theme) {
Ref<DynamicFont> df_code;
df_code.instance();
- df_code->set_size(int(EditorSettings::get_singleton()->get("global/source_font_size"))*EDSCALE);
+ df_code->set_size(int(EditorSettings::get_singleton()->get("interface/source_font_size"))*EDSCALE);
df_code->set_font_data(dfmono);
MAKE_FALLBACKS(df_code);
@@ -150,7 +151,7 @@ void editor_register_fonts(Ref<Theme> p_theme) {
Ref<DynamicFont> df_doc_code;
df_doc_code.instance();
- df_doc_code->set_size(int(EDITOR_DEF("help/help_source_font_size",14))*EDSCALE);
+ df_doc_code->set_size(int(EDITOR_DEF("text_editor/help/help_source_font_size",14))*EDSCALE);
df_doc_code->set_font_data(dfmono);
MAKE_FALLBACKS(df_doc_code);
diff --git a/tools/editor/editor_fonts.h b/tools/editor/editor_fonts.h
index 3b2422c3e3..0e8ce20609 100644
--- a/tools/editor/editor_fonts.h
+++ b/tools/editor/editor_fonts.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/editor_help.cpp b/tools/editor/editor_help.cpp
index 4f83dc2f66..03e631cbc3 100644
--- a/tools/editor/editor_help.cpp
+++ b/tools/editor/editor_help.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,15 +27,13 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_help.h"
+
#include "editor_node.h"
#include "editor_settings.h"
#include "os/keyboard.h"
#include "doc_data_compressed.h"
#include "tools/editor/plugins/script_editor_plugin.h"
-
-#include "os/keyboard.h"
-
void EditorHelpSearch::popup() {
popup_centered_ratio(0.6);
if (search_box->get_text()!="") {
@@ -71,7 +69,7 @@ void EditorHelpSearch::_sbox_input(const InputEvent& p_ie) {
p_ie.key.scancode == KEY_PAGEUP ||
p_ie.key.scancode == KEY_PAGEDOWN ) ) {
- search_options->call("_input_event",p_ie);
+ search_options->call("_gui_input",p_ie);
search_box->accept_event();
}
@@ -88,7 +86,7 @@ void EditorHelpSearch::_update_search() {
*/
List<StringName> type_list;
- ObjectTypeDB::get_type_list(&type_list);
+ ClassDB::get_class_list(&type_list);
DocData *doc=EditorHelp::get_doc_data();
String term = search_box->get_text();
@@ -287,7 +285,7 @@ void EditorHelpSearch::_notification(int p_what) {
if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
- if (is_visible()) {
+ if (is_visible_in_tree()) {
search_box->call_deferred("grab_focus"); // still not visible
search_box->select_all();
@@ -299,10 +297,10 @@ void EditorHelpSearch::_notification(int p_what) {
void EditorHelpSearch::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_text_changed"),&EditorHelpSearch::_text_changed);
- ObjectTypeDB::bind_method(_MD("_confirmed"),&EditorHelpSearch::_confirmed);
- ObjectTypeDB::bind_method(_MD("_sbox_input"),&EditorHelpSearch::_sbox_input);
- ObjectTypeDB::bind_method(_MD("_update_search"),&EditorHelpSearch::_update_search);
+ ClassDB::bind_method(_MD("_text_changed"),&EditorHelpSearch::_text_changed);
+ ClassDB::bind_method(_MD("_confirmed"),&EditorHelpSearch::_confirmed);
+ ClassDB::bind_method(_MD("_sbox_input"),&EditorHelpSearch::_sbox_input);
+ ClassDB::bind_method(_MD("_update_search"),&EditorHelpSearch::_update_search);
ADD_SIGNAL(MethodInfo("go_to_help"));
@@ -314,7 +312,7 @@ EditorHelpSearch::EditorHelpSearch() {
editor=EditorNode::get_singleton();
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+
HBoxContainer *sb_hb = memnew( HBoxContainer);
search_box = memnew( LineEdit );
sb_hb->add_child(search_box);
@@ -324,7 +322,7 @@ EditorHelpSearch::EditorHelpSearch() {
sb_hb->add_child(sb);
vbc->add_margin_child(TTR("Search:"),sb_hb);
search_box->connect("text_changed",this,"_text_changed");
- search_box->connect("input_event",this,"_sbox_input");
+ search_box->connect("gui_input",this,"_sbox_input");
search_options = memnew( Tree );
vbc->add_margin_child(TTR("Matches:"),search_options,true);
get_ok()->set_text(TTR("Open"));
@@ -334,7 +332,7 @@ EditorHelpSearch::EditorHelpSearch() {
search_options->connect("item_activated",this,"_confirmed");
set_title(TTR("Search Help"));
-// search_options->set_hide_root(true);
+ //search_options->set_hide_root(true);
}
@@ -349,8 +347,10 @@ void EditorHelpIndex::add_type(const String& p_type,HashMap<String,TreeItem*>& p
if (p_types.has(p_type))
return;
-// if (!ObjectTypeDB::is_type(p_type,base) || p_type==base)
-// return;
+ /*
+ if (!ClassDB::is_type(p_type,base) || p_type==base)
+ return;
+ */
String inherits=EditorHelp::get_doc_data()->class_list[p_type].inherits;
@@ -488,17 +488,17 @@ void EditorHelpIndex::_sbox_input(const InputEvent& p_ie) {
p_ie.key.scancode == KEY_PAGEUP ||
p_ie.key.scancode == KEY_PAGEDOWN ) ) {
- class_list->call("_input_event",p_ie);
+ class_list->call("_gui_input",p_ie);
search_box->accept_event();
}
}
void EditorHelpIndex::_bind_methods() {
- ObjectTypeDB::bind_method("_tree_item_selected",&EditorHelpIndex::_tree_item_selected);
- ObjectTypeDB::bind_method("_text_changed",&EditorHelpIndex::_text_changed);
- ObjectTypeDB::bind_method("_sbox_input",&EditorHelpIndex::_sbox_input);
- ObjectTypeDB::bind_method("select_class",&EditorHelpIndex::select_class);
+ ClassDB::bind_method("_tree_item_selected",&EditorHelpIndex::_tree_item_selected);
+ ClassDB::bind_method("_text_changed",&EditorHelpIndex::_text_changed);
+ ClassDB::bind_method("_sbox_input",&EditorHelpIndex::_sbox_input);
+ ClassDB::bind_method("select_class",&EditorHelpIndex::select_class);
ADD_SIGNAL( MethodInfo("open_class"));
}
@@ -508,7 +508,6 @@ EditorHelpIndex::EditorHelpIndex() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
search_box = memnew( LineEdit );
vbc->add_margin_child(TTR("Search:"), search_box);
@@ -517,7 +516,7 @@ EditorHelpIndex::EditorHelpIndex() {
register_text_enter(search_box);
search_box->connect("text_changed", this, "_text_changed");
- search_box->connect("input_event", this, "_sbox_input");
+ search_box->connect("gui_input", this, "_sbox_input");
class_list = memnew( Tree );
vbc->add_margin_child(TTR("Class List:")+" ", class_list, true);
@@ -539,7 +538,7 @@ DocData *EditorHelp::doc=NULL;
void EditorHelp::_unhandled_key_input(const InputEvent& p_ev) {
- if (!is_visible())
+ if (!is_visible_in_tree())
return;
if ( p_ev.key.mod.control && p_ev.key.scancode==KEY_F) {
@@ -572,15 +571,15 @@ void EditorHelp::_button_pressed(int p_idx) {
if (p_idx==PAGE_CLASS_LIST) {
- // edited_class->set_pressed(false);
- // class_list_button->set_pressed(true);
- // tabs->set_current_tab(PAGE_CLASS_LIST);
+ //edited_class->set_pressed(false);
+ //class_list_button->set_pressed(true);
+ //tabs->set_current_tab(PAGE_CLASS_LIST);
} else if (p_idx==PAGE_CLASS_DESC) {
- // edited_class->set_pressed(true);
- // class_list_button->set_pressed(false);
- // tabs->set_current_tab(PAGE_CLASS_DESC);
+ //edited_class->set_pressed(true);
+ //class_list_button->set_pressed(false);
+ //tabs->set_current_tab(PAGE_CLASS_DESC);
} else if (p_idx==PAGE_CLASS_PREV) {
@@ -620,7 +619,7 @@ void EditorHelp::_class_desc_select(const String& p_select) {
-// print_line("LINK: "+p_select);
+ //print_line("LINK: "+p_select);
if (p_select.begins_with("#")) {
//_goto_desc(p_select.substr(1,p_select.length()));
emit_signal("go_to_help","class_name:"+p_select.substr(1,p_select.length()));
@@ -660,7 +659,7 @@ void EditorHelp::_add_type(const String& p_type) {
t="void";
bool can_ref = (t!="int" && t!="real" && t!="bool" && t!="void");
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color"));
if (can_ref)
class_desc->push_meta("#"+t); //class
class_desc->add_text(t);
@@ -675,7 +674,7 @@ void EditorHelp::_scroll_changed(double p_scroll) {
if (scroll_locked)
return;
- if (class_desc->get_v_scroll()->is_hidden())
+ if (!class_desc->get_v_scroll()->is_visible())
p_scroll=0;
//history[p].scroll=p_scroll;
@@ -719,9 +718,9 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
h_color=Color(1,1,1,1);
class_desc->push_font(doc_title_font);
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->add_text(TTR("Class:")+" ");
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color"));
_add_text(p_class);
class_desc->pop();
class_desc->pop();
@@ -730,7 +729,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (cd.inherits!="") {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Inherits:")+" ");
class_desc->pop();
@@ -754,7 +753,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
}
- if (ObjectTypeDB::type_exists(cd.name)) {
+ if (ClassDB::class_exists(cd.name)) {
bool found = false;
bool prev = false;
@@ -764,7 +763,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (E->get().inherits == cd.name) {
if (!found) {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Inherited by:")+" ");
class_desc->pop();
@@ -795,7 +794,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (cd.brief_description!="") {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Brief Description:"));
class_desc->pop();
@@ -803,7 +802,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
//class_desc->add_newline();
class_desc->add_newline();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
class_desc->push_font( doc_font );
class_desc->push_indent(1);
_add_text(cd.brief_description);
@@ -814,37 +813,132 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
}
+ Set<String> skip_methods;
+ bool property_descr=false;
+
+ if (cd.properties.size()) {
+
+
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
+ class_desc->push_font(doc_title_font);
+ class_desc->add_text(TTR("Members:"));
+ class_desc->pop();
+ class_desc->pop();
+ //class_desc->add_newline();
+
+ class_desc->push_indent(1);
+ class_desc->push_table(2);
+ class_desc->set_table_column_expand(1,1);
+
+ for(int i=0;i<cd.properties.size();i++) {
+ property_line[cd.properties[i].name]=class_desc->get_line_count()-2; //gets overriden if description
+
+ class_desc->push_cell();
+ class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
+ class_desc->push_font(doc_code_font);
+ _add_type(cd.properties[i].type);
+ class_desc->add_text(" ");
+ class_desc->pop();
+ class_desc->pop();
+ class_desc->pop();
+
+ bool describe=false;
+
+ if (cd.properties[i].setter!="") {
+ skip_methods.insert(cd.properties[i].setter);
+ describe=true;
+
+ }
+ if (cd.properties[i].getter!="") {
+ skip_methods.insert(cd.properties[i].getter);
+ describe=true;
+ }
+
+ if (cd.properties[i].description!="") {
+ describe=true;
+
+ }
+ class_desc->push_cell();
+ if (describe) {
+ class_desc->push_meta("@"+cd.properties[i].name);
+ }
+
+ class_desc->push_font(doc_code_font);
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
+ _add_text(cd.properties[i].name);
+
+ if (describe) {
+ class_desc->pop();
+ }
+
+
+ if (cd.properties[i].brief_description!="") {
+ class_desc->push_font(doc_font);
+ class_desc->add_text(" ");
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
+ _add_text(cd.properties[i].description);
+ class_desc->pop();
+ class_desc->pop();
+
+ }
+
+ if (describe) {
+ property_descr=true;
+ }
+
+
+ class_desc->pop();
+ class_desc->pop();
+ class_desc->pop();
+
+ }
+
+
+ class_desc->pop(); //table
+ class_desc->pop();
+ class_desc->add_newline();
+ class_desc->add_newline();
+ }
+
+
bool method_descr=false;
- bool sort_methods = EditorSettings::get_singleton()->get("help/sort_functions_alphabetically");
+ bool sort_methods = EditorSettings::get_singleton()->get("text_editor/help/sort_functions_alphabetically");
+ Vector<DocData::MethodDoc> methods;
+
+ for(int i=0;i<cd.methods.size();i++) {
+ if (skip_methods.has(cd.methods[i].name))
+ continue;
+ methods.push_back(cd.methods[i]);
+ }
- if (cd.methods.size()) {
+ if (methods.size()) {
if (sort_methods)
- cd.methods.sort();
+ methods.sort();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Public Methods:"));
class_desc->pop();
class_desc->pop();
//class_desc->add_newline();
-// class_desc->add_newline();
+ //class_desc->add_newline();
class_desc->push_indent(1);
class_desc->push_table(2);
class_desc->set_table_column_expand(1,1);
- for(int i=0;i<cd.methods.size();i++) {
+ for(int i=0;i<methods.size();i++) {
class_desc->push_cell();
- method_line[cd.methods[i].name]=class_desc->get_line_count()-2; //gets overriden if description
+ method_line[methods[i].name]=class_desc->get_line_count()-2; //gets overriden if description
class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
class_desc->push_font(doc_code_font);
- _add_type(cd.methods[i].return_type);
+ _add_type(methods[i].return_type);
//class_desc->add_text(" ");
class_desc->pop(); //align
class_desc->pop(); //font
@@ -852,58 +946,58 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->push_cell();
class_desc->push_font(doc_code_font);
- if (cd.methods[i].description!="") {
+ if (methods[i].description!="") {
method_descr=true;
- class_desc->push_meta("@"+cd.methods[i].name);
+ class_desc->push_meta("@"+methods[i].name);
}
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- _add_text(cd.methods[i].name);
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
+ _add_text(methods[i].name);
class_desc->pop();
- if (cd.methods[i].description!="")
+ if (methods[i].description!="")
class_desc->pop();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
- class_desc->add_text(cd.methods[i].arguments.size()?"( ":"(");
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
+ class_desc->add_text(methods[i].arguments.size()?"( ":"(");
class_desc->pop();
- for(int j=0;j<cd.methods[i].arguments.size();j++) {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ for(int j=0;j<methods[i].arguments.size();j++) {
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
if (j>0)
class_desc->add_text(", ");
- _add_type(cd.methods[i].arguments[j].type);
+ _add_type(methods[i].arguments[j].type);
class_desc->add_text(" ");
- _add_text(cd.methods[i].arguments[j].name);
- if (cd.methods[i].arguments[j].default_value!="") {
+ _add_text(methods[i].arguments[j].name);
+ if (methods[i].arguments[j].default_value!="") {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
class_desc->add_text("=");
class_desc->pop();
- _add_text(cd.methods[i].arguments[j].default_value);
+ _add_text(methods[i].arguments[j].default_value);
}
class_desc->pop();
}
- if (cd.methods[i].qualifiers.find("vararg")!=-1) {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ if (methods[i].qualifiers.find("vararg")!=-1) {
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
class_desc->add_text(",");
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
class_desc->add_text(" ... ");
class_desc->pop();
class_desc->pop();
}
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
- class_desc->add_text(cd.methods[i].arguments.size()?" )":")");
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
+ class_desc->add_text(methods[i].arguments.size()?" )":")");
class_desc->pop();
- if (cd.methods[i].qualifiers!="") {
+ if (methods[i].qualifiers!="") {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->add_text(" ");
- _add_text(cd.methods[i].qualifiers);
+ _add_text(methods[i].qualifiers);
class_desc->pop();
}
class_desc->pop();//monofont
-// class_desc->add_newline();
+ //class_desc->add_newline();
class_desc->pop(); //cell
}
@@ -914,53 +1008,11 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
}
- if (cd.properties.size()) {
-
-
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
- class_desc->push_font(doc_title_font);
- class_desc->add_text(TTR("Members:"));
- class_desc->pop();
- class_desc->pop();
- class_desc->add_newline();
-
- class_desc->push_indent(1);
-
- //class_desc->add_newline();
-
- for(int i=0;i<cd.properties.size();i++) {
-
- property_line[cd.properties[i].name]=class_desc->get_line_count()-2; //gets overriden if description
- class_desc->push_font(doc_code_font);
- _add_type(cd.properties[i].type);
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- class_desc->add_text(" ");
- _add_text(cd.properties[i].name);
- class_desc->pop();
- class_desc->pop();
-
- if (cd.properties[i].description!="") {
- class_desc->push_font(doc_font);
- class_desc->add_text(" ");
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
- _add_text(cd.properties[i].description);
- class_desc->pop();
- class_desc->pop();
-
- }
-
- class_desc->add_newline();
- }
-
-
- class_desc->pop();
- class_desc->add_newline();
- }
if (cd.theme_properties.size()) {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("GUI Theme Items:"));
class_desc->pop();
@@ -976,7 +1028,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
theme_property_line[cd.theme_properties[i].name]=class_desc->get_line_count()-2; //gets overriden if description
class_desc->push_font(doc_code_font);
_add_type(cd.theme_properties[i].type);
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
class_desc->add_text(" ");
_add_text(cd.theme_properties[i].name);
class_desc->pop();
@@ -985,7 +1037,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (cd.theme_properties[i].description!="") {
class_desc->push_font(doc_font);
class_desc->add_text(" ");
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
_add_text(cd.theme_properties[i].description);
class_desc->pop();
class_desc->pop();
@@ -1004,7 +1056,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (sort_methods) {
cd.signals.sort();
}
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Signals:"));
class_desc->pop();
@@ -1021,14 +1073,14 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->push_font(doc_code_font); // monofont
//_add_type("void");
//class_desc->add_text(" ");
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
_add_text(cd.signals[i].name);
class_desc->pop();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
class_desc->add_text(cd.signals[i].arguments.size()?"( ":"(");
class_desc->pop();
for(int j=0;j<cd.signals[i].arguments.size();j++) {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
if (j>0)
class_desc->add_text(", ");
_add_type(cd.signals[i].arguments[j].type);
@@ -1036,7 +1088,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
_add_text(cd.signals[i].arguments[j].name);
if (cd.signals[i].arguments[j].default_value!="") {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
class_desc->add_text("=");
class_desc->pop();
_add_text(cd.signals[i].arguments[j].default_value);
@@ -1045,13 +1097,13 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->pop();
}
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
class_desc->add_text(cd.signals[i].arguments.size()?" )":")");
class_desc->pop();
class_desc->pop(); // end monofont
if (cd.signals[i].description!="") {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
class_desc->add_text(" ");
_add_text(cd.signals[i].description);
class_desc->pop();
@@ -1069,7 +1121,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (cd.constants.size()) {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Constants:"));
class_desc->pop();
@@ -1083,20 +1135,20 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
constant_line[cd.constants[i].name]=class_desc->get_line_count()-2;
class_desc->push_font(doc_code_font);
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color"));
_add_text(cd.constants[i].name);
class_desc->pop();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
class_desc->add_text(" = ");
class_desc->pop();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
_add_text(cd.constants[i].value);
class_desc->pop();
class_desc->pop();
if (cd.constants[i].description!="") {
class_desc->push_font(doc_font);
class_desc->add_text(" ");
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/comment_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
_add_text(cd.constants[i].description);
class_desc->pop();
class_desc->pop();
@@ -1114,7 +1166,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (cd.description!="") {
description_line=class_desc->get_line_count()-2;
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Description:"));
class_desc->pop();
@@ -1122,7 +1174,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
class_desc->add_newline();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
class_desc->push_font( doc_font );
class_desc->push_indent(1);
_add_text(cd.description);
@@ -1133,9 +1185,92 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
}
+ if (property_descr) {
+
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
+ class_desc->push_font(doc_title_font);
+ class_desc->add_text(TTR("Property Description:"));
+ class_desc->pop();
+ class_desc->pop();
+
+ class_desc->add_newline();
+ class_desc->add_newline();
+
+
+ for(int i=0;i<cd.properties.size();i++) {
+
+ method_line[cd.properties[i].name]=class_desc->get_line_count()-2;
+
+ class_desc->push_font(doc_code_font);
+ _add_type(cd.properties[i].type);
+
+ class_desc->add_text(" ");
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
+ _add_text(cd.properties[i].name);
+ class_desc->pop(); //color
+
+ class_desc->add_text(" ");
+
+ class_desc->pop(); //font
+
+ if (cd.properties[i].setter!="") {
+
+ class_desc->push_font( doc_font );
+
+ class_desc->push_indent(2);
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
+ class_desc->add_text("Setter: ");
+ class_desc->pop();
+
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
+ class_desc->add_text(cd.properties[i].setter+"(value)");
+ class_desc->pop(); //color
+
+ class_desc->pop(); //indent
+
+ class_desc->pop(); //font
+
+ }
+
+ if (cd.properties[i].getter!="") {
+
+ class_desc->push_font( doc_font );
+
+ class_desc->push_indent(2);
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
+ class_desc->add_text("Getter: ");
+ class_desc->pop();
+
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
+ class_desc->add_text(cd.properties[i].getter+"()");
+ class_desc->pop(); //color
+
+ class_desc->pop(); //indent
+
+ class_desc->pop(); //font
+
+ }
+
+ class_desc->add_newline();
+
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
+ class_desc->push_font( doc_font );
+ class_desc->push_indent(1);
+ _add_text(cd.properties[i].description);
+ class_desc->pop();
+ class_desc->pop();
+ class_desc->pop();
+ class_desc->add_newline();
+ class_desc->add_newline();
+ class_desc->add_newline();
+
+ }
+
+ }
+
if (method_descr) {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Method Description:"));
class_desc->pop();
@@ -1145,46 +1280,46 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
- for(int i=0;i<cd.methods.size();i++) {
+ for(int i=0;i<methods.size();i++) {
- method_line[cd.methods[i].name]=class_desc->get_line_count()-2;
+ method_line[methods[i].name]=class_desc->get_line_count()-2;
class_desc->push_font(doc_code_font);
- _add_type(cd.methods[i].return_type);
+ _add_type(methods[i].return_type);
class_desc->add_text(" ");
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- _add_text(cd.methods[i].name);
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
+ _add_text(methods[i].name);
class_desc->pop();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
- class_desc->add_text(cd.methods[i].arguments.size()?"( ":"(");
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
+ class_desc->add_text(methods[i].arguments.size()?"( ":"(");
class_desc->pop();
- for(int j=0;j<cd.methods[i].arguments.size();j++) {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ for(int j=0;j<methods[i].arguments.size();j++) {
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
if (j>0)
class_desc->add_text(", ");
- _add_type(cd.methods[i].arguments[j].type);
+ _add_type(methods[i].arguments[j].type);
class_desc->add_text(" ");
- _add_text(cd.methods[i].arguments[j].name);
- if (cd.methods[i].arguments[j].default_value!="") {
+ _add_text(methods[i].arguments[j].name);
+ if (methods[i].arguments[j].default_value!="") {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
class_desc->add_text("=");
class_desc->pop();
- _add_text(cd.methods[i].arguments[j].default_value);
+ _add_text(methods[i].arguments[j].default_value);
}
class_desc->pop();
}
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/symbol_color"));
- class_desc->add_text(cd.methods[i].arguments.size()?" )":")");
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
+ class_desc->add_text(methods[i].arguments.size()?" )":")");
class_desc->pop();
- if (cd.methods[i].qualifiers!="") {
+ if (methods[i].qualifiers!="") {
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
class_desc->add_text(" ");
- _add_text(cd.methods[i].qualifiers);
+ _add_text(methods[i].qualifiers);
class_desc->pop();
}
@@ -1192,10 +1327,10 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->pop();
class_desc->add_newline();
- class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
class_desc->push_font( doc_font );
class_desc->push_indent(1);
- _add_text(cd.methods[i].description);
+ _add_text(methods[i].description);
class_desc->pop();
class_desc->pop();
class_desc->pop();
@@ -1272,7 +1407,7 @@ static void _add_text_to_rt(const String& p_bbcode,RichTextLabel *p_rt) {
DocData *doc = EditorHelp::get_doc_data();
String base_path;
- /*p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
+ /*p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
p_rt->push_font( get_font("normal","Fonts") );
p_rt->push_indent(1);*/
int pos = 0;
@@ -1388,7 +1523,7 @@ static void _add_text_to_rt(const String& p_bbcode,RichTextLabel *p_rt) {
} else if (tag.begins_with("method ")) {
String m = tag.substr(7,tag.length());
- p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
p_rt->push_meta("@"+m);
p_rt->add_text(m+"()");
p_rt->pop();
@@ -1398,7 +1533,7 @@ static void _add_text_to_rt(const String& p_bbcode,RichTextLabel *p_rt) {
} else if (doc->class_list.has(tag)) {
- p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
+ p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
p_rt->push_meta("#"+tag);
p_rt->add_text(tag);
p_rt->pop();
@@ -1414,7 +1549,7 @@ static void _add_text_to_rt(const String& p_bbcode,RichTextLabel *p_rt) {
} else if (tag=="i") {
//use italics font
- Color text_color = EditorSettings::get_singleton()->get("text_editor/text_color");
+ Color text_color = EditorSettings::get_singleton()->get("text_editor/highlighting/text_color");
//no italics so emphasize with color
text_color.r*=1.1;
text_color.g*=1.1;
@@ -1599,8 +1734,8 @@ void EditorHelp::_notification(int p_what) {
case NOTIFICATION_READY: {
-// forward->set_icon(get_icon("Forward","EditorIcons"));
-// back->set_icon(get_icon("Back","EditorIcons"));
+ //forward->set_icon(get_icon("Forward","EditorIcons"));
+ //back->set_icon(get_icon("Back","EditorIcons"));
_update_doc();
} break;
@@ -1629,7 +1764,7 @@ void EditorHelp::_search_cbk() {
_search(search->get_text());
}
-String EditorHelp::get_class_name() {
+String EditorHelp::get_class() {
return edited_class;
}
@@ -1640,27 +1775,27 @@ void EditorHelp::search_again() {
int EditorHelp::get_scroll() const {
- return class_desc->get_v_scroll()->get_val();
+ return class_desc->get_v_scroll()->get_value();
}
void EditorHelp::set_scroll(int p_scroll) {
- class_desc->get_v_scroll()->set_val(p_scroll);
+ class_desc->get_v_scroll()->set_value(p_scroll);
}
void EditorHelp::_bind_methods() {
- ObjectTypeDB::bind_method("_class_list_select",&EditorHelp::_class_list_select);
- ObjectTypeDB::bind_method("_class_desc_select",&EditorHelp::_class_desc_select);
- ObjectTypeDB::bind_method("_class_desc_input",&EditorHelp::_class_desc_input);
-// ObjectTypeDB::bind_method("_button_pressed",&EditorHelp::_button_pressed);
- ObjectTypeDB::bind_method("_scroll_changed",&EditorHelp::_scroll_changed);
- ObjectTypeDB::bind_method("_request_help",&EditorHelp::_request_help);
- ObjectTypeDB::bind_method("_unhandled_key_input",&EditorHelp::_unhandled_key_input);
- ObjectTypeDB::bind_method("_search",&EditorHelp::_search);
- ObjectTypeDB::bind_method("_search_cbk",&EditorHelp::_search_cbk);
- ObjectTypeDB::bind_method("_help_callback",&EditorHelp::_help_callback);
+ ClassDB::bind_method("_class_list_select",&EditorHelp::_class_list_select);
+ ClassDB::bind_method("_class_desc_select",&EditorHelp::_class_desc_select);
+ ClassDB::bind_method("_class_desc_input",&EditorHelp::_class_desc_input);
+ //ClassDB::bind_method("_button_pressed",&EditorHelp::_button_pressed);
+ ClassDB::bind_method("_scroll_changed",&EditorHelp::_scroll_changed);
+ ClassDB::bind_method("_request_help",&EditorHelp::_request_help);
+ ClassDB::bind_method("_unhandled_key_input",&EditorHelp::_unhandled_key_input);
+ ClassDB::bind_method("_search",&EditorHelp::_search);
+ ClassDB::bind_method("_search_cbk",&EditorHelp::_search_cbk);
+ ClassDB::bind_method("_help_callback",&EditorHelp::_help_callback);
ADD_SIGNAL(MethodInfo("go_to_help"));
@@ -1672,7 +1807,7 @@ EditorHelp::EditorHelp() {
VBoxContainer *vbc = this;
- EDITOR_DEF("help/sort_functions_alphabetically",true);
+ EDITOR_DEF("text_editor/help/sort_functions_alphabetically",true);
//class_list->connect("meta_clicked",this,"_class_list_select");
//class_list->set_selection_enabled(true);
@@ -1680,7 +1815,7 @@ EditorHelp::EditorHelp() {
{
Panel *pc = memnew( Panel );
Ref<StyleBoxFlat> style( memnew( StyleBoxFlat ) );
- style->set_bg_color( EditorSettings::get_singleton()->get("text_editor/background_color") );
+ style->set_bg_color( EditorSettings::get_singleton()->get("text_editor/highlighting/background_color") );
pc->set_v_size_flags(SIZE_EXPAND_FILL);
pc->add_style_override("panel", style); //get_stylebox("normal","TextEdit"));
vbc->add_child(pc);
@@ -1688,7 +1823,7 @@ EditorHelp::EditorHelp() {
pc->add_child(class_desc);
class_desc->set_area_as_parent_rect(8);
class_desc->connect("meta_clicked",this,"_class_desc_select");
- class_desc->connect("input_event",this,"_class_desc_input");
+ class_desc->connect("gui_input",this,"_class_desc_input");
}
class_desc->get_v_scroll()->connect("value_changed",this,"_scroll_changed");
@@ -1703,21 +1838,21 @@ EditorHelp::EditorHelp() {
add_child(search_dialog);
VBoxContainer *search_vb = memnew( VBoxContainer );
search_dialog->add_child(search_vb);
- search_dialog->set_child_rect(search_vb);
+
search = memnew( LineEdit );
search_dialog->register_text_enter(search);
search_vb->add_margin_child(TTR("Search Text"),search);
search_dialog->get_ok()->set_text(TTR("Find"));
search_dialog->connect("confirmed",this,"_search_cbk");
search_dialog->set_hide_on_ok(false);
- search_dialog->set_self_opacity(0.8);
+ search_dialog->set_self_modulate(Color(1,1,1,0.8));
/*class_search = memnew( EditorHelpSearch(editor) );
editor->get_gui_base()->add_child(class_search);
class_search->connect("go_to_help",this,"_help_callback");*/
-// prev_search_page=-1;
+ //prev_search_page=-1;
}
EditorHelp::~EditorHelp() {
@@ -1737,8 +1872,7 @@ void EditorHelpBit::_go_to_help(String p_what) {
void EditorHelpBit::_meta_clicked(String p_select) {
-
- // print_line("LINK: "+p_select);
+ //print_line("LINK: "+p_select);
if (p_select.begins_with("#")) {
//_goto_desc(p_select.substr(1,p_select.length()));
_go_to_help("class_name:"+p_select.substr(1,p_select.length()));
@@ -1752,10 +1886,11 @@ void EditorHelpBit::_meta_clicked(String p_select) {
_go_to_help("class_method:"+m.get_slice(".",0)+":"+m.get_slice(".",0));
} else {
-//
- // if (!method_line.has(m))
- // return;
- //class_desc->scroll_to_line(method_line[m]);
+ /*
+ if (!method_line.has(m))
+ return;
+ class_desc->scroll_to_line(method_line[m]);
+ */
}
}
@@ -1765,7 +1900,7 @@ void EditorHelpBit::_meta_clicked(String p_select) {
void EditorHelpBit::_bind_methods() {
- ObjectTypeDB::bind_method("_meta_clicked",&EditorHelpBit::_meta_clicked);
+ ClassDB::bind_method("_meta_clicked",&EditorHelpBit::_meta_clicked);
ADD_SIGNAL(MethodInfo("request_hide"));
}
diff --git a/tools/editor/editor_help.h b/tools/editor/editor_help.h
index b0dc2809fe..85bac27705 100644
--- a/tools/editor/editor_help.h
+++ b/tools/editor/editor_help.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -47,7 +47,7 @@ class EditorNode;
class EditorHelpSearch : public ConfirmationDialog {
- OBJ_TYPE(EditorHelpSearch,ConfirmationDialog )
+ GDCLASS(EditorHelpSearch,ConfirmationDialog )
EditorNode *editor;
LineEdit *search_box;
@@ -75,7 +75,7 @@ public:
};
class EditorHelpIndex : public ConfirmationDialog {
- OBJ_TYPE( EditorHelpIndex, ConfirmationDialog );
+ GDCLASS( EditorHelpIndex, ConfirmationDialog );
LineEdit *search_box;
Tree *class_list;
@@ -104,7 +104,7 @@ public:
class EditorHelp : public VBoxContainer {
- OBJ_TYPE( EditorHelp, VBoxContainer );
+ GDCLASS( EditorHelp, VBoxContainer );
enum Page {
@@ -187,7 +187,7 @@ public:
void popup_search();
void search_again();
- String get_class_name();
+ String get_class();
void set_focused() { class_desc->grab_focus(); }
@@ -202,7 +202,7 @@ public:
class EditorHelpBit : public Panel {
- OBJ_TYPE( EditorHelpBit, Panel);
+ GDCLASS( EditorHelpBit, Panel);
RichTextLabel *rich_text;
void _go_to_help(String p_what);
diff --git a/tools/editor/editor_icons.h b/tools/editor/editor_icons.h
index 191b908682..7e8d8c0828 100644
--- a/tools/editor/editor_icons.h
+++ b/tools/editor/editor_icons.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/editor_import_export.cpp b/tools/editor/editor_import_export.cpp
index d90a175811..6ef238920d 100644
--- a/tools/editor/editor_import_export.cpp
+++ b/tools/editor/editor_import_export.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,8 +26,9 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "version.h"
#include "editor_import_export.h"
+
+#include "version.h"
#include "script_language.h"
#include "globals.h"
#include "os/file_access.h"
@@ -46,8 +47,8 @@
String EditorImportPlugin::validate_source_path(const String& p_path) {
- String gp = Globals::get_singleton()->globalize_path(p_path);
- String rp = Globals::get_singleton()->get_resource_path();
+ String gp = GlobalConfig::get_singleton()->globalize_path(p_path);
+ String rp = GlobalConfig::get_singleton()->get_resource_path();
if (!rp.ends_with("/"))
rp+="/";
@@ -57,7 +58,7 @@ String EditorImportPlugin::validate_source_path(const String& p_path) {
String EditorImportPlugin::expand_source_path(const String& p_path) {
if (p_path.is_rel_path()) {
- return Globals::get_singleton()->get_resource_path().plus_file(p_path).simplify_path();
+ return GlobalConfig::get_singleton()->get_resource_path().plus_file(p_path).simplify_path();
} else {
return p_path;
}
@@ -77,19 +78,19 @@ String EditorImportPlugin::_expand_source_path(const String& p_path) {
void EditorImportPlugin::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("validate_source_path","path"),&EditorImportPlugin::_validate_source_path);
- ObjectTypeDB::bind_method(_MD("expand_source_path","path"),&EditorImportPlugin::_expand_source_path);
+ ClassDB::bind_method(_MD("validate_source_path","path"),&EditorImportPlugin::_validate_source_path);
+ ClassDB::bind_method(_MD("expand_source_path","path"),&EditorImportPlugin::_expand_source_path);
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::STRING,"get_name"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::STRING,"get_visible_name"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("import_dialog",PropertyInfo(Variant::STRING,"from")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::INT,"import",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"ResourceImportMetadata")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::RAW_ARRAY,"custom_export",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"platform",PROPERTY_HINT_RESOURCE_TYPE,"EditorExportPlatform")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("import_from_drop",PropertyInfo(Variant::STRING_ARRAY,"files"),PropertyInfo(Variant::STRING,"dest_path")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("reimport_multiple_files",PropertyInfo(Variant::STRING_ARRAY,"files")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"can_reimport_multiple_files"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::STRING,"get_name"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::STRING,"get_visible_name"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("import_dialog",PropertyInfo(Variant::STRING,"from")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::INT,"import",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"ResourceImportMetadata")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::POOL_BYTE_ARRAY,"custom_export",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"platform",PROPERTY_HINT_RESOURCE_TYPE,"EditorExportPlatform")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("import_from_drop",PropertyInfo(Variant::POOL_STRING_ARRAY,"files"),PropertyInfo(Variant::STRING,"dest_path")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("reimport_multiple_files",PropertyInfo(Variant::POOL_STRING_ARRAY,"files")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"can_reimport_multiple_files"));
-// BIND_VMETHOD( mi );
+ //BIND_VMETHOD( mi );
}
String EditorImportPlugin::get_name() const {
@@ -175,7 +176,7 @@ EditorImportPlugin::EditorImportPlugin() {
void EditorExportPlugin::_bind_methods() {
MethodInfo mi = MethodInfo("custom_export:Variant",PropertyInfo(Variant::STRING,"name"),PropertyInfo(Variant::OBJECT,"platform",PROPERTY_HINT_RESOURCE_TYPE,"EditorExportPlatform"));
- mi.return_val.type=Variant::RAW_ARRAY;
+ mi.return_val.type=Variant::POOL_BYTE_ARRAY;
BIND_VMETHOD( mi );
}
@@ -188,7 +189,7 @@ Vector<uint8_t> EditorExportPlugin::custom_export(String& p_path,const Ref<Edito
Variant d = get_script_instance()->call("custom_export",p_path,p_platform);
if (d.get_type()==Variant::NIL)
return Vector<uint8_t>();
- if (d.get_type()==Variant::RAW_ARRAY)
+ if (d.get_type()==Variant::POOL_BYTE_ARRAY)
return d;
ERR_FAIL_COND_V(d.get_type()!=Variant::DICTIONARY,Vector<uint8_t>());
@@ -420,11 +421,12 @@ Vector<StringName> EditorExportPlatform::get_dependencies(bool p_bundles) const
{
List<String> l;
- // SceneLoader::get_recognized_extensions(&l);
- // for(List<String>::Element *E=l.front();E;E=E->next()) {
- //
- // scene_extensions.insert(E->get());
- // }
+ /*
+ SceneLoader::get_recognized_extensions(&l);
+ for(List<String>::Element *E=l.front();E;E=E->next()) {
+ scene_extensions.insert(E->get());
+ }
+ */
ResourceLoader::get_recognized_extensions_for_type("",&l);
for(List<String>::Element *E=l.front();E;E=E->next()) {
@@ -765,7 +767,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
{
MD5_CTX ctx;
MD5Init(&ctx);
- String path = Globals::get_singleton()->get_resource_path()+"::"+String(E->get())+"::"+get_name();
+ String path = GlobalConfig::get_singleton()->get_resource_path()+"::"+String(E->get())+"::"+get_name();
MD5Update(&ctx,(unsigned char*)path.utf8().get_data(),path.utf8().length());
MD5Final(&ctx);
md5 = String::md5(ctx.digest);
@@ -783,7 +785,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
if (atlas_valid) {
//compare options
- Dictionary options;
+ /*Dictionary options;
options.parse_json(f->get_line());
if (!options.has("lossy_quality") || float(options["lossy_quality"])!=group_lossy_quality)
atlas_valid=false;
@@ -794,7 +796,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
if (!atlas_valid)
print_line("JSON INVALID");
-
+*/
}
@@ -874,11 +876,11 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
int flags=0;
- if (Globals::get_singleton()->get("image_loader/filter"))
+ if (GlobalConfig::get_singleton()->get("image_loader/filter"))
flags|=EditorTextureImportPlugin::IMAGE_FLAG_FILTER;
- if (!Globals::get_singleton()->get("image_loader/gen_mipmaps"))
+ if (!GlobalConfig::get_singleton()->get("image_loader/gen_mipmaps"))
flags|=EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS;
- if (!Globals::get_singleton()->get("image_loader/repeat"))
+ if (!GlobalConfig::get_singleton()->get("image_loader/repeat"))
flags|=EditorTextureImportPlugin::IMAGE_FLAG_REPEAT;
flags|=EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA;
@@ -921,7 +923,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
options["lossy_quality"]=group_lossy_quality;
options["shrink"]=EditorImportExport::get_singleton()->image_export_group_get_shrink(E->get());
options["image_format"]=group_format;
- f->store_line(options.to_json());
+ //f->store_line(options.to_json());
f->store_line(image_list_md5);
}
@@ -949,7 +951,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
return ERR_CANT_CREATE;
}
Vector<uint8_t> data = FileAccess::get_file_as_array(path);
- String dst_path = F->get().operator String().basename()+".atex";
+ String dst_path = F->get().operator String().get_basename()+".atex";
err = p_func(p_udata,dst_path,data,counter++,files.size());
saved.insert(dst_path);
if (err)
@@ -958,7 +960,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
if (f) {
//recreating deps..
String depline;
-// depline=String(F->get())+"::"+itos(FileAccess::get_modified_time(F->get()))+"::"+FileAccess::get_md5(F->get()); name unneccesary by top md5
+ //depline=String(F->get())+"::"+itos(FileAccess::get_modified_time(F->get()))+"::"+FileAccess::get_md5(F->get()); name unneccesary by top md5
depline=itos(FileAccess::get_modified_time(F->get()))+"::"+FileAccess::get_md5(F->get());
depline+="::"+itos(region.pos.x)+"::"+itos(region.pos.y)+"::"+itos(region.size.x)+"::"+itos(region.size.y);
depline+="::"+itos(margin.pos.x)+"::"+itos(margin.pos.y)+"::"+itos(margin.size.x)+"::"+itos(margin.size.y);
@@ -987,7 +989,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
StringName engine_cfg="res://engine.cfg";
StringName boot_splash;
{
- String splash=Globals::get_singleton()->get("application/boot_splash"); //avoid splash from being converted
+ String splash=GlobalConfig::get_singleton()->get("application/boot_splash"); //avoid splash from being converted
splash=splash.strip_edges();
if (splash!=String()) {
if (!splash.begins_with("res://"))
@@ -998,7 +1000,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
}
StringName custom_cursor;
{
- String splash=Globals::get_singleton()->get("display/custom_mouse_cursor"); //avoid splash from being converted
+ String splash=GlobalConfig::get_singleton()->get("display/custom_mouse_cursor"); //avoid splash from being converted
splash=splash.strip_edges();
if (splash!=String()) {
if (!splash.begins_with("res://"))
@@ -1084,7 +1086,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
String remap_file="engine.cfb";
String engine_cfb =EditorSettings::get_singleton()->get_settings_path()+"/tmp/tmp"+remap_file;
- Globals::get_singleton()->save_custom(engine_cfb,custom);
+ GlobalConfig::get_singleton()->save_custom(engine_cfb,custom);
Vector<uint8_t> data = FileAccess::get_file_as_array(engine_cfb);
Error err = p_func(p_udata,"res://"+remap_file,data,counter,files.size());
@@ -1115,8 +1117,8 @@ void EditorExportPlatform::gen_export_flags(Vector<String> &r_flags, int p_flags
host="localhost";
if (p_flags&EXPORT_DUMB_CLIENT) {
- int port = EditorSettings::get_singleton()->get("file_server/port");
- String passwd = EditorSettings::get_singleton()->get("file_server/password");
+ int port = EditorSettings::get_singleton()->get("filesystem/file_server/port");
+ String passwd = EditorSettings::get_singleton()->get("filesystem/file_server/password");
r_flags.push_back("-rfs");
r_flags.push_back(host+":"+itos(port));
if (passwd!="") {
@@ -1129,7 +1131,7 @@ void EditorExportPlatform::gen_export_flags(Vector<String> &r_flags, int p_flags
r_flags.push_back("-rdebug");
- r_flags.push_back(host+":"+String::num(GLOBAL_DEF("debug/debug_port", 6007)));
+ r_flags.push_back(host+":"+String::num(GLOBAL_DEF("network/debug/remote_port", 6007)));
List<String> breakpoints;
ScriptEditor::get_singleton()->get_breakpoints(&breakpoints);
@@ -1173,7 +1175,7 @@ Error EditorExportPlatform::save_pack_file(void *p_userdata,const String& p_path
pd->f->store_32(cs.length());
pd->f->store_buffer((uint8_t*)cs.get_data(),cs.length());
TempData td;
- td.pos=pd->f->get_pos();;
+ td.pos=pd->f->get_pos();
td.ofs=pd->ftmp->get_pos();
td.size=p_data.size();
pd->file_ofs.push_back(td);
@@ -2092,13 +2094,21 @@ void EditorImportExport::save_config() {
if (image_groups.size() && image_group_files.size()){
- Vector<String> igfsave;
- igfsave.resize(image_group_files.size()*2);
+ Vector<String> igfkeys;
+ igfkeys.resize(image_group_files.size());
int idx=0;
for (Map<StringName,StringName>::Element *E=image_group_files.front();E;E=E->next()) {
+ igfkeys[idx++]=E->key();
+ }
+ igfkeys.sort();
+
+ Vector<String> igfsave;
+ igfsave.resize(image_group_files.size()*2);
+ idx=0;
+ for (int i=0;i<igfkeys.size();++i) {
- igfsave[idx++]=E->key();
- igfsave[idx++]=E->get();
+ igfsave[idx++]=igfkeys[i];
+ igfsave[idx++]=image_group_files[igfkeys[i]];
}
cf->set_value("image_group_files","files",igfsave);
}
@@ -2174,9 +2184,9 @@ bool EditorImportExport::sample_get_trim() const{
return sample_action_trim;
}
-DVector<String> EditorImportExport::_get_export_file_list() {
+PoolVector<String> EditorImportExport::_get_export_file_list() {
- DVector<String> fl;
+ PoolVector<String> fl;
for (Map<StringName,FileAction>::Element *E=files.front();E;E=E->next()) {
fl.push_back(E->key());
@@ -2185,9 +2195,9 @@ DVector<String> EditorImportExport::_get_export_file_list() {
return fl;
}
-DVector<String> EditorImportExport::_get_export_platforms() {
+PoolVector<String> EditorImportExport::_get_export_platforms() {
- DVector<String> ep;
+ PoolVector<String> ep;
for (Map<StringName,Ref<EditorExportPlatform> >::Element *E=exporters.front();E;E=E->next()) {
ep.push_back(E->key());
@@ -2199,49 +2209,49 @@ DVector<String> EditorImportExport::_get_export_platforms() {
void EditorImportExport::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("add_import_plugin","plugin:EditorImportPlugin"),&EditorImportExport::add_import_plugin);
- ObjectTypeDB::bind_method(_MD("remove_import_plugin","plugin:EditorImportPlugin"),&EditorImportExport::remove_import_plugin);
- ObjectTypeDB::bind_method(_MD("get_import_plugin_count"),&EditorImportExport::get_import_plugin_count);
- ObjectTypeDB::bind_method(_MD("get_import_plugin:EditorImportPlugin","idx"),&EditorImportExport::get_import_plugin);
- ObjectTypeDB::bind_method(_MD("get_import_plugin_by_name:EditorImportPlugin","name"),&EditorImportExport::get_import_plugin_by_name);
-
- ObjectTypeDB::bind_method(_MD("add_export_plugin","plugin:EditorExportPlugin"),&EditorImportExport::add_export_plugin);
- ObjectTypeDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorImportExport::remove_export_plugin);
- ObjectTypeDB::bind_method(_MD("get_export_plugin_count"),&EditorImportExport::get_export_plugin_count);
- ObjectTypeDB::bind_method(_MD("get_export_plugin:EditorExportPlugin","idx"),&EditorImportExport::get_export_plugin);
-
- ObjectTypeDB::bind_method(_MD("set_export_file_action","file","action"),&EditorImportExport::set_export_file_action);
- ObjectTypeDB::bind_method(_MD("get_export_file_action","file"),&EditorImportExport::get_export_file_action);
- ObjectTypeDB::bind_method(_MD("get_export_file_list"),&EditorImportExport::_get_export_file_list);
-
- ObjectTypeDB::bind_method(_MD("add_export_platform","platform:EditorExportplatform"),&EditorImportExport::add_export_platform);
- //ObjectTypeDB::bind_method(_MD("remove_export_platform","platform:EditorExportplatform"),&EditorImportExport::add_export_platform);
- ObjectTypeDB::bind_method(_MD("get_export_platform:EditorExportPlatform","name"),&EditorImportExport::get_export_platform);
- ObjectTypeDB::bind_method(_MD("get_export_platforms"),&EditorImportExport::_get_export_platforms);
-
- ObjectTypeDB::bind_method(_MD("set_export_filter","filter"),&EditorImportExport::set_export_filter);
- ObjectTypeDB::bind_method(_MD("get_export_filter"),&EditorImportExport::get_export_filter);
-
- ObjectTypeDB::bind_method(_MD("set_export_custom_filter","filter"),&EditorImportExport::set_export_custom_filter);
- ObjectTypeDB::bind_method(_MD("get_export_custom_filter"),&EditorImportExport::get_export_custom_filter);
-
- ObjectTypeDB::bind_method(_MD("set_export_custom_filter_exclude","filter_exclude"),&EditorImportExport::set_export_custom_filter_exclude);
- ObjectTypeDB::bind_method(_MD("get_export_custom_filter_exclude"),&EditorImportExport::get_export_custom_filter_exclude);
-
-
- ObjectTypeDB::bind_method(_MD("image_export_group_create"),&EditorImportExport::image_export_group_create);
- ObjectTypeDB::bind_method(_MD("image_export_group_remove"),&EditorImportExport::image_export_group_remove);
- ObjectTypeDB::bind_method(_MD("image_export_group_set_image_action"),&EditorImportExport::image_export_group_set_image_action);
- ObjectTypeDB::bind_method(_MD("image_export_group_set_make_atlas"),&EditorImportExport::image_export_group_set_make_atlas);
- ObjectTypeDB::bind_method(_MD("image_export_group_set_shrink"),&EditorImportExport::image_export_group_set_shrink);
- ObjectTypeDB::bind_method(_MD("image_export_group_get_image_action"),&EditorImportExport::image_export_group_get_image_action);
- ObjectTypeDB::bind_method(_MD("image_export_group_get_make_atlas"),&EditorImportExport::image_export_group_get_make_atlas);
- ObjectTypeDB::bind_method(_MD("image_export_group_get_shrink"),&EditorImportExport::image_export_group_get_shrink);
- ObjectTypeDB::bind_method(_MD("image_add_to_export_group"),&EditorImportExport::image_add_to_export_group);
- ObjectTypeDB::bind_method(_MD("script_set_action"),&EditorImportExport::script_set_action);
- ObjectTypeDB::bind_method(_MD("script_set_encryption_key"),&EditorImportExport::script_set_encryption_key);
- ObjectTypeDB::bind_method(_MD("script_get_action"),&EditorImportExport::script_get_action);
- ObjectTypeDB::bind_method(_MD("script_get_encryption_key"),&EditorImportExport::script_get_encryption_key);
+ ClassDB::bind_method(_MD("add_import_plugin","plugin:EditorImportPlugin"),&EditorImportExport::add_import_plugin);
+ ClassDB::bind_method(_MD("remove_import_plugin","plugin:EditorImportPlugin"),&EditorImportExport::remove_import_plugin);
+ ClassDB::bind_method(_MD("get_import_plugin_count"),&EditorImportExport::get_import_plugin_count);
+ ClassDB::bind_method(_MD("get_import_plugin:EditorImportPlugin","idx"),&EditorImportExport::get_import_plugin);
+ ClassDB::bind_method(_MD("get_import_plugin_by_name:EditorImportPlugin","name"),&EditorImportExport::get_import_plugin_by_name);
+
+ ClassDB::bind_method(_MD("add_export_plugin","plugin:EditorExportPlugin"),&EditorImportExport::add_export_plugin);
+ ClassDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorImportExport::remove_export_plugin);
+ ClassDB::bind_method(_MD("get_export_plugin_count"),&EditorImportExport::get_export_plugin_count);
+ ClassDB::bind_method(_MD("get_export_plugin:EditorExportPlugin","idx"),&EditorImportExport::get_export_plugin);
+
+ ClassDB::bind_method(_MD("set_export_file_action","file","action"),&EditorImportExport::set_export_file_action);
+ ClassDB::bind_method(_MD("get_export_file_action","file"),&EditorImportExport::get_export_file_action);
+ ClassDB::bind_method(_MD("get_export_file_list"),&EditorImportExport::_get_export_file_list);
+
+ ClassDB::bind_method(_MD("add_export_platform","platform:EditorExportplatform"),&EditorImportExport::add_export_platform);
+ //ClassDB::bind_method(_MD("remove_export_platform","platform:EditorExportplatform"),&EditorImportExport::add_export_platform);
+ ClassDB::bind_method(_MD("get_export_platform:EditorExportPlatform","name"),&EditorImportExport::get_export_platform);
+ ClassDB::bind_method(_MD("get_export_platforms"),&EditorImportExport::_get_export_platforms);
+
+ ClassDB::bind_method(_MD("set_export_filter","filter"),&EditorImportExport::set_export_filter);
+ ClassDB::bind_method(_MD("get_export_filter"),&EditorImportExport::get_export_filter);
+
+ ClassDB::bind_method(_MD("set_export_custom_filter","filter"),&EditorImportExport::set_export_custom_filter);
+ ClassDB::bind_method(_MD("get_export_custom_filter"),&EditorImportExport::get_export_custom_filter);
+
+ ClassDB::bind_method(_MD("set_export_custom_filter_exclude","filter_exclude"),&EditorImportExport::set_export_custom_filter_exclude);
+ ClassDB::bind_method(_MD("get_export_custom_filter_exclude"),&EditorImportExport::get_export_custom_filter_exclude);
+
+
+ ClassDB::bind_method(_MD("image_export_group_create"),&EditorImportExport::image_export_group_create);
+ ClassDB::bind_method(_MD("image_export_group_remove"),&EditorImportExport::image_export_group_remove);
+ ClassDB::bind_method(_MD("image_export_group_set_image_action"),&EditorImportExport::image_export_group_set_image_action);
+ ClassDB::bind_method(_MD("image_export_group_set_make_atlas"),&EditorImportExport::image_export_group_set_make_atlas);
+ ClassDB::bind_method(_MD("image_export_group_set_shrink"),&EditorImportExport::image_export_group_set_shrink);
+ ClassDB::bind_method(_MD("image_export_group_get_image_action"),&EditorImportExport::image_export_group_get_image_action);
+ ClassDB::bind_method(_MD("image_export_group_get_make_atlas"),&EditorImportExport::image_export_group_get_make_atlas);
+ ClassDB::bind_method(_MD("image_export_group_get_shrink"),&EditorImportExport::image_export_group_get_shrink);
+ ClassDB::bind_method(_MD("image_add_to_export_group"),&EditorImportExport::image_add_to_export_group);
+ ClassDB::bind_method(_MD("script_set_action"),&EditorImportExport::script_set_action);
+ ClassDB::bind_method(_MD("script_set_encryption_key"),&EditorImportExport::script_set_encryption_key);
+ ClassDB::bind_method(_MD("script_get_action"),&EditorImportExport::script_get_action);
+ ClassDB::bind_method(_MD("script_get_encryption_key"),&EditorImportExport::script_get_encryption_key);
diff --git a/tools/editor/editor_import_export.h b/tools/editor/editor_import_export.h
index e21fd8c8f8..fb75373f17 100644
--- a/tools/editor/editor_import_export.h
+++ b/tools/editor/editor_import_export.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,7 +40,7 @@ struct EditorProgress;
class EditorImportPlugin : public Reference {
- OBJ_TYPE( EditorImportPlugin, Reference);
+ GDCLASS( EditorImportPlugin, Reference);
protected:
@@ -70,7 +70,7 @@ public:
class EditorExportPlugin : public Reference {
- OBJ_TYPE( EditorExportPlugin, Reference);
+ GDCLASS( EditorExportPlugin, Reference);
protected:
static void _bind_methods();
@@ -84,7 +84,7 @@ public:
class EditorExportPlatform : public Reference {
- OBJ_TYPE( EditorExportPlatform,Reference );
+ GDCLASS( EditorExportPlatform,Reference );
public:
@@ -187,7 +187,7 @@ public:
class EditorExportPlatformPC : public EditorExportPlatform {
- OBJ_TYPE( EditorExportPlatformPC,EditorExportPlatform );
+ GDCLASS( EditorExportPlatformPC,EditorExportPlatform );
public:
@@ -247,7 +247,7 @@ public:
class EditorImportExport : public Node {
- OBJ_TYPE(EditorImportExport,Node);
+ GDCLASS(EditorImportExport,Node);
public:
enum FileAction {
@@ -321,8 +321,8 @@ protected:
static EditorImportExport* singleton;
- DVector<String> _get_export_file_list();
- DVector<String> _get_export_platforms();
+ PoolVector<String> _get_export_file_list();
+ PoolVector<String> _get_export_platforms();
static void _bind_methods();
public:
diff --git a/tools/editor/editor_initialize_ssl.cpp b/tools/editor/editor_initialize_ssl.cpp
index c0b55b302f..c08dcc6656 100644
--- a/tools/editor/editor_initialize_ssl.cpp
+++ b/tools/editor/editor_initialize_ssl.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_initialize_ssl.h"
+
#include "certs_compressed.h"
#include "io/stream_peer_ssl.h"
#include "io/compression.h"
@@ -34,11 +35,12 @@
void editor_initialize_certificates() {
- ByteArray data;
- data.resize(_certs_uncompressed_size);
+ PoolByteArray data;
+ data.resize(_certs_uncompressed_size+1);
{
- ByteArray::Write w = data.write();
+ PoolByteArray::Write w = data.write();
Compression::decompress(w.ptr(),_certs_uncompressed_size,_certs_compressed,_certs_compressed_size,Compression::MODE_DEFLATE);
+ w[_certs_uncompressed_size]=0; //make sure it ends at zero
}
StreamPeerSSL::load_certs_from_memory(data);
diff --git a/tools/editor/editor_initialize_ssl.h b/tools/editor/editor_initialize_ssl.h
index 082d546832..0b34ac1d7e 100644
--- a/tools/editor/editor_initialize_ssl.h
+++ b/tools/editor/editor_initialize_ssl.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/editor_log.cpp b/tools/editor/editor_log.cpp
index 02af9712a8..6b6a1b9988 100644
--- a/tools/editor/editor_log.cpp
+++ b/tools/editor/editor_log.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,8 +26,9 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "version.h"
#include "editor_log.h"
+
+#include "version.h"
#include "scene/gui/center_container.h"
#include "editor_node.h"
@@ -44,8 +45,10 @@ void EditorLog::_error_handler(void *p_self, const char*p_func, const char*p_fil
err_str=String(p_file)+":"+itos(p_line)+" - "+String(p_error);
}
-// if (!self->is_visible())
-// self->emit_signal("show_request");
+ /*
+ if (!self->is_visible_in_tree())
+ self->emit_signal("show_request");
+ */
err_str=" "+err_str;
self->log->add_newline();
@@ -67,6 +70,10 @@ void EditorLog::_error_handler(void *p_self, const char*p_func, const char*p_fil
icon = self->get_icon("ScriptError","EditorIcons");
} break;
+ case ERR_HANDLER_SHADER: {
+
+ icon = self->get_icon("Shader","EditorIcons");
+ } break;
}
@@ -125,7 +132,7 @@ void EditorLog::add_message(const String& p_msg,bool p_error) {
log->add_newline();
log->add_text(p_msg);
-// button->set_text(p_msg);
+ //button->set_text(p_msg);
if (p_error)
log->pop();
@@ -160,9 +167,9 @@ void EditorLog::_undo_redo_cbk(void *p_self,const String& p_name) {
void EditorLog::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_clear_request"),&EditorLog::_clear_request );
- ObjectTypeDB::bind_method("_override_logger_styles",&EditorLog::_override_logger_styles );
- //ObjectTypeDB::bind_method(_MD("_dragged"),&EditorLog::_dragged );
+ ClassDB::bind_method(_MD("_clear_request"),&EditorLog::_clear_request );
+ ClassDB::bind_method("_override_logger_styles",&EditorLog::_override_logger_styles );
+ //ClassDB::bind_method(_MD("_dragged"),&EditorLog::_dragged );
ADD_SIGNAL( MethodInfo("clear_request"));
}
@@ -196,14 +203,14 @@ EditorLog::EditorLog() {
pc = memnew( PanelContainer );
ec->add_child(pc);
pc->set_area_as_parent_rect();
- pc->connect("enter_tree", this, "_override_logger_styles");
+ pc->connect("tree_entered", this, "_override_logger_styles");
log = memnew( RichTextLabel );
log->set_scroll_follow(true);
log->set_selection_enabled(true);
log->set_focus_mode(FOCUS_CLICK);
pc->add_child(log);
- add_message(VERSION_FULL_NAME" (c) 2008-2016 Juan Linietsky, Ariel Manzur.");
+ add_message(VERSION_FULL_NAME" (c) 2008-2017 Juan Linietsky, Ariel Manzur.");
//log->add_text("Initialization Complete.\n"); //because it looks cool.
eh.errfunc=_error_handler;
diff --git a/tools/editor/editor_log.h b/tools/editor/editor_log.h
index bbf35b63cb..965d8d6420 100644
--- a/tools/editor/editor_log.h
+++ b/tools/editor/editor_log.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,19 +36,19 @@
//#include "scene/gui/empty_control.h"
#include "scene/gui/box_container.h"
#include "scene/gui/panel_container.h"
-#include "scene/gui/texture_frame.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/tool_button.h"
#include "pane_drag.h"
#include "os/thread.h"
class EditorLog : public VBoxContainer {
- OBJ_TYPE( EditorLog, VBoxContainer );
+ GDCLASS( EditorLog, VBoxContainer );
Button *clearbutton;
Label *title;
RichTextLabel *log;
HBoxContainer *title_hb;
-// PaneDrag *pd;
+ //PaneDrag *pd;
Control *ec;
PanelContainer *pc;
@@ -58,7 +58,7 @@ class EditorLog : public VBoxContainer {
Thread::ID current;
-// void _dragged(const Point2& p_ofs);
+ //void _dragged(const Point2& p_ofs);
void _clear_request();
static void _undo_redo_cbk(void *p_self,const String& p_name);
protected:
diff --git a/tools/editor/editor_name_dialog.cpp b/tools/editor/editor_name_dialog.cpp
index c221b908e0..da9f25f1e3 100644
--- a/tools/editor/editor_name_dialog.cpp
+++ b/tools/editor/editor_name_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,12 +26,12 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-
#include "editor_name_dialog.h"
-#include "object_type_db.h"
+
+#include "class_db.h"
#include "os/keyboard.h"
-void EditorNameDialog::_line_input_event(const InputEvent& p_event) {
+void EditorNameDialog::_line_gui_input(const InputEvent& p_event) {
if (p_event.type == InputEvent::KEY) {
@@ -72,7 +72,7 @@ void EditorNameDialog::ok_pressed() {
void EditorNameDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_line_input_event",&EditorNameDialog::_line_input_event);
+ ClassDB::bind_method("_line_gui_input",&EditorNameDialog::_line_gui_input);
ADD_SIGNAL(MethodInfo("name_confirmed",PropertyInfo( Variant::STRING,"name")));
}
@@ -85,5 +85,5 @@ EditorNameDialog::EditorNameDialog()
name->set_margin(MARGIN_TOP,5);
name->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN,5);
name->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,5);
- name->connect("input_event", this, "_line_input_event");
+ name->connect("gui_input", this, "_line_gui_input");
}
diff --git a/tools/editor/editor_name_dialog.h b/tools/editor/editor_name_dialog.h
index 9e66908899..d6bc7eca94 100644
--- a/tools/editor/editor_name_dialog.h
+++ b/tools/editor/editor_name_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,11 +35,11 @@
class EditorNameDialog : public ConfirmationDialog {
- OBJ_TYPE( EditorNameDialog, ConfirmationDialog );
+ GDCLASS( EditorNameDialog, ConfirmationDialog );
LineEdit *name;
- void _line_input_event(const InputEvent& p_event);
+ void _line_gui_input(const InputEvent& p_event);
protected:
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index 5a3deb7b9d..c39dea2d72 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,22 +26,20 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "version.h"
#include "editor_node.h"
+
+#include "version.h"
#include "print_string.h"
#include "editor_themes.h"
-
#include "editor_help.h"
#include "core/io/resource_saver.h"
#include "core/io/resource_loader.h"
#include "servers/physics_2d_server.h"
#include "scene/resources/packed_scene.h"
#include "editor_settings.h"
-#include "io_plugins/editor_import_collada.h"
-#include "io_plugins/editor_scene_importer_fbxconv.h"
#include "globals.h"
#include <stdio.h>
-#include "object_type_db.h"
+#include "class_db.h"
#include "os/keyboard.h"
#include "os/os.h"
#include "os/file_access.h"
@@ -56,6 +54,8 @@
#include "io/config_file.h"
#include "animation_editor.h"
#include "io/stream_peer_ssl.h"
+#include "main/input_default.h"
+#include "os/input.h"
// plugins
#include "plugins/sprite_frames_editor_plugin.h"
#include "plugins/texture_region_editor_plugin.h"
@@ -76,7 +76,6 @@
#include "plugins/mesh_instance_editor_plugin.h"
#include "plugins/mesh_editor_plugin.h"
#include "plugins/theme_editor_plugin.h"
-
#include "plugins/tile_map_editor_plugin.h"
#include "plugins/cube_grid_theme_editor_plugin.h"
#include "plugins/shader_editor_plugin.h"
@@ -99,27 +98,31 @@
#include "plugins/light_occluder_2d_editor_plugin.h"
#include "plugins/color_ramp_editor_plugin.h"
#include "plugins/collision_shape_2d_editor_plugin.h"
-#include "main/input_default.h"
+#include "plugins/gi_probe_editor_plugin.h"
+
// end
-#include "tools/editor/editor_settings.h"
-#include "tools/editor/io_plugins/editor_texture_import_plugin.h"
-#include "tools/editor/io_plugins/editor_scene_import_plugin.h"
-#include "tools/editor/io_plugins/editor_font_import_plugin.h"
-#include "tools/editor/io_plugins/editor_sample_import_plugin.h"
-#include "tools/editor/io_plugins/editor_translation_import_plugin.h"
-#include "tools/editor/io_plugins/editor_bitmask_import_plugin.h"
-#include "tools/editor/io_plugins/editor_mesh_import_plugin.h"
-#include "tools/editor/io_plugins/editor_export_scene.h"
+#include "editor_settings.h"
+#include "io_plugins/editor_texture_import_plugin.h"
+#include "io_plugins/editor_scene_import_plugin.h"
+#include "io_plugins/editor_font_import_plugin.h"
+#include "io_plugins/editor_sample_import_plugin.h"
+#include "io_plugins/editor_translation_import_plugin.h"
+#include "io_plugins/editor_bitmask_import_plugin.h"
+#include "io_plugins/editor_mesh_import_plugin.h"
+#include "io_plugins/editor_export_scene.h"
+#include "io_plugins/editor_import_collada.h"
+#include "io_plugins/editor_scene_importer_fbxconv.h"
#include "plugins/editor_preview_plugins.h"
#include "editor_initialize_ssl.h"
+#include "editor_audio_buses.h"
#include "script_editor_debugger.h"
EditorNode *EditorNode::singleton=NULL;
void EditorNode::_update_scene_tabs() {
- bool show_rb = EditorSettings::get_singleton()->get("global/show_script_in_scene_tabs");
+ bool show_rb = EditorSettings::get_singleton()->get("interface/show_script_in_scene_tabs");
scene_tabs->clear_tabs();
Ref<Texture> script_icon = gui_base->get_icon("Script","EditorIcons");
@@ -156,7 +159,7 @@ void EditorNode::_update_scene_tabs() {
void EditorNode::_update_title() {
- String appname = Globals::get_singleton()->get("application/name");
+ String appname = GlobalConfig::get_singleton()->get("application/name");
String title = appname.empty()?String(VERSION_FULL_NAME):String(_MKSTR(VERSION_NAME) + String(" - ") + appname);
String edited = editor_data.get_edited_scene_root()?editor_data.get_edited_scene_root()->get_filename():String();
if (!edited.empty())
@@ -187,6 +190,9 @@ void EditorNode::_unhandled_input(const InputEvent& p_event) {
next_tab = next_tab >= 0 ? next_tab : editor_data.get_edited_scene_count() - 1;
_scene_tab_changed(next_tab);
}
+ if (ED_IS_SHORTCUT("editor/filter_files", p_event)) {
+ filesystem_dock->focus_on_filter();
+ }
switch(p_event.key.scancode) {
@@ -240,7 +246,7 @@ void EditorNode::_notification(int p_what) {
}
#endif
- if (opening_prev && confirmation->is_hidden())
+ if (opening_prev && !confirmation->is_visible())
opening_prev=false;
if (unsaved_cache != (saved_version!=editor_data.get_undo_redo().get_version())) {
@@ -257,7 +263,7 @@ void EditorNode::_notification(int p_what) {
//get_root_node()->set_rect(viewport->get_global_rect());
//update the circle
- uint64_t frame = OS::get_singleton()->get_frames_drawn();
+ uint64_t frame = Engine::get_singleton()->get_frames_drawn();
uint32_t tick = OS::get_singleton()->get_ticks_msec();
if (frame!=circle_step_frame && (tick-circle_step_msec)>(1000/8)) {
@@ -267,35 +273,33 @@ void EditorNode::_notification(int p_what) {
circle_step=0;
circle_step_msec=tick;
- circle_step_frame=frame+1;
+ circle_step_frame=frame+1;
- // update the circle itself only when its enabled
- if (!update_menu->get_popup()->is_item_checked(3)){
- update_menu->set_icon(gui_base->get_icon("Progress"+itos(circle_step+1),"EditorIcons"));
- }
+ // update the circle itself only when its enabled
+ if (!update_menu->get_popup()->is_item_checked(3)){
+ update_menu->set_icon(gui_base->get_icon("Progress"+itos(circle_step+1),"EditorIcons"));
+ }
}
- scene_root->set_size_override(true,Size2(Globals::get_singleton()->get("display/width"),Globals::get_singleton()->get("display/height")));
-
editor_selection->update();
{
- uint32_t p32 = AudioServer::get_singleton()->read_output_peak()>>8;
+ uint32_t p32 = 0;//AudioServer::get_singleton()->read_output_peak()>>8;
float peak = p32==0? -80 : Math::linear2db(p32 / 65535.0);
if (peak<-80)
peak=-80;
- float vu = audio_vu->get_val();
+ float vu = audio_vu->get_value();
if (peak > vu) {
- audio_vu->set_val(peak);
+ audio_vu->set_value(peak);
} else {
float new_vu = vu - get_process_delta_time()*70.0;
if (new_vu<-80)
new_vu=-80;
if (new_vu !=-80 && vu !=-80)
- audio_vu->set_val(new_vu);
+ audio_vu->set_value(new_vu);
}
}
@@ -303,7 +307,7 @@ void EditorNode::_notification(int p_what) {
}
if (p_what==NOTIFICATION_ENTER_TREE) {
-
+ get_tree()->get_root()->set_disable_3d(true);
//MessageQueue::get_singleton()->push_call(this,"_get_scene_metadata");
get_tree()->set_editor_hint(true);
get_tree()->get_root()->set_as_audio_listener(false);
@@ -323,8 +327,8 @@ void EditorNode::_notification(int p_what) {
}
if (p_what==NOTIFICATION_READY) {
- VisualServer::get_singleton()->viewport_set_hide_scenario(get_scene_root()->get_viewport(),true);
- VisualServer::get_singleton()->viewport_set_hide_canvas(get_scene_root()->get_viewport(),true);
+ VisualServer::get_singleton()->viewport_set_hide_scenario(get_scene_root()->get_viewport_rid(),true);
+ VisualServer::get_singleton()->viewport_set_hide_canvas(get_scene_root()->get_viewport_rid(),true);
VisualServer::get_singleton()->viewport_set_disable_environment(get_viewport()->get_viewport_rid(),true);
_editor_select(EDITOR_3D);
@@ -392,7 +396,7 @@ void EditorNode::_notification(int p_what) {
}
*/
- if (bool(EDITOR_DEF("resources/auto_reload_modified_images",true))) {
+ if (bool(EDITOR_DEF("filesystem/resources/auto_reload_modified_images",true))) {
_menu_option_confirm(DEPENDENCY_LOAD_CHANGED_IMAGES,true);
}
@@ -408,7 +412,7 @@ void EditorNode::_notification(int p_what) {
};
if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
- scene_tabs->set_tab_close_display_policy( (bool(EDITOR_DEF("global/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY) );
+ scene_tabs->set_tab_close_display_policy( (bool(EDITOR_DEF("interface/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY) );
}
}
@@ -435,7 +439,7 @@ void EditorNode::_fs_changed() {
void EditorNode::_sources_changed(bool p_exist) {
- if (p_exist && bool(EditorSettings::get_singleton()->get("import/automatic_reimport_on_sources_changed"))) {
+ if (p_exist && bool(EditorSettings::get_singleton()->get("filesystem/import/automatic_reimport_on_sources_changed"))) {
p_exist=false;
List<String> changed_sources;
@@ -556,12 +560,14 @@ void EditorNode::save_resource_in_path(const Ref<Resource>& p_resource,const Str
editor_data.apply_changes_in_editors();
int flg=0;
- if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources"))
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources"))
flg|=ResourceSaver::FLAG_COMPRESS;
- //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative"))
- // flg|=ResourceSaver::FLAG_RELATIVE_PATHS;
+ /*
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/save_paths_as_relative"))
+ flg|=ResourceSaver::FLAG_RELATIVE_PATHS;
+ */
- String path = Globals::get_singleton()->localize_path(p_path);
+ String path = GlobalConfig::get_singleton()->localize_path(p_path);
Error err = ResourceSaver::save(path,p_resource,flg|ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS);
if (err!=OK) {
@@ -569,7 +575,7 @@ void EditorNode::save_resource_in_path(const Ref<Resource>& p_resource,const Str
accept->popup_centered_minsize();
return;
}
-// EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type());
+ //EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type());
((Resource*)p_resource.ptr())->set_path(path);
emit_signal("resource_saved",p_resource);
@@ -598,7 +604,7 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource,const String&
List<String> preferred;
for(int i=0;i<extensions.size();i++) {
- if (p_resource->is_type("Script") && (extensions[i]=="tres" || extensions[i]=="res" || extensions[i]=="xml")) {
+ if (p_resource->is_class("Script") && (extensions[i]=="tres" || extensions[i]=="res" || extensions[i]=="xml")) {
//this serves no purpose and confused people
continue;
}
@@ -615,7 +621,7 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource,const String&
file->set_current_file(p_resource->get_path().get_file());
} else {
if (extensions.size()) {
- file->set_current_file("new_"+p_resource->get_type().to_lower()+"."+preferred.front()->get().to_lower());
+ file->set_current_file("new_"+p_resource->get_class().to_lower()+"."+preferred.front()->get().to_lower());
} else {
file->set_current_file(String());
}
@@ -624,7 +630,7 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource,const String&
file->set_current_path(p_resource->get_path());
if (extensions.size()) {
- String ext=p_resource->get_path().extension().to_lower();
+ String ext=p_resource->get_path().get_extension().to_lower();
if (extensions.find(ext)==NULL) {
file->set_current_path(p_resource->get_path().replacen("."+ext,"."+extensions.front()->get()));
}
@@ -633,7 +639,7 @@ void EditorNode::save_resource_as(const Ref<Resource>& p_resource,const String&
String existing;
if (extensions.size()) {
- existing="new_"+p_resource->get_type().to_lower()+"."+preferred.front()->get().to_lower();
+ existing="new_"+p_resource->get_class().to_lower()+"."+preferred.front()->get().to_lower();
}
file->set_current_path(existing);
@@ -667,11 +673,11 @@ void EditorNode::_dialog_display_file_error(String p_file,Error p_error) {
case ERR_FILE_CANT_WRITE: {
- accept->set_text(TTR("Can't open file for writing:")+" "+p_file.extension());
+ accept->set_text(TTR("Can't open file for writing:")+" "+p_file.get_extension());
} break;
case ERR_FILE_UNRECOGNIZED: {
- accept->set_text(TTR("Requested file format unknown:")+" "+p_file.extension());
+ accept->set_text(TTR("Requested file format unknown:")+" "+p_file.get_extension());
} break;
default: {
@@ -771,7 +777,7 @@ bool EditorNode::_find_and_save_resource(RES res,Map<RES,bool>& processed,int32_
bool subchanged = _find_and_save_edited_subresources(res.ptr(),processed,flags);
-// print_line("checking if edited: "+res->get_type()+" :: "+res->get_name()+" :: "+res->get_path()+" :: "+itos(changed)+" :: SR "+itos(subchanged));
+ //print_line("checking if edited: "+res->get_type()+" :: "+res->get_name()+" :: "+res->get_path()+" :: "+itos(changed)+" :: SR "+itos(subchanged));
if (res->get_path().is_resource_file()) {
if (changed || subchanged) {
@@ -829,7 +835,7 @@ bool EditorNode::_find_and_save_edited_subresources(Object *obj,Map<RES,bool>& p
case Variant::DICTIONARY: {
- Dictionary d=obj->get(E->get().name);;
+ Dictionary d=obj->get(E->get().name);
List<Variant> keys;
d.get_key_list(&keys);
for(List<Variant>::Element *E=keys.front();E;E=E->next()) {
@@ -865,12 +871,12 @@ void EditorNode::_save_edited_subresources(Node* scene,Map<RES,bool>& processed,
void EditorNode::_find_node_types(Node* p_node, int&count_2d, int&count_3d) {
- if (p_node->is_type("Viewport") || (p_node!=editor_data.get_edited_scene_root() && p_node->get_owner()!=editor_data.get_edited_scene_root()))
+ if (p_node->is_class("Viewport") || (p_node!=editor_data.get_edited_scene_root() && p_node->get_owner()!=editor_data.get_edited_scene_root()))
return;
- if (p_node->is_type("CanvasItem"))
+ if (p_node->is_class("CanvasItem"))
count_2d++;
- else if (p_node->is_type("Spatial"))
+ else if (p_node->is_class("Spatial"))
count_3d++;
for(int i=0;i<p_node->get_child_count();i++)
@@ -891,10 +897,10 @@ void EditorNode::_save_scene_with_preview(String p_file) {
RID viewport;
bool is2d;
if (c3d<c2d) {
- viewport=scene_root->get_viewport();
+ viewport=scene_root->get_viewport_rid();
is2d=true;
} else {
- viewport=SpatialEditor::get_singleton()->get_editor_viewport(0)->get_viewport_node()->get_viewport();
+ viewport=SpatialEditor::get_singleton()->get_editor_viewport(0)->get_viewport_node()->get_viewport_rid();
is2d=false;
}
@@ -910,11 +916,12 @@ void EditorNode::_save_scene_with_preview(String p_file) {
_editor_select(is2d?EDITOR_2D:EDITOR_3D);
- VS::get_singleton()->viewport_queue_screen_capture(viewport);
+
save.step(TTR("Creating Thumbnail"),2);
save.step(TTR("Creating Thumbnail"),3);
- Image img = VS::get_singleton()->viewport_get_screen_capture(viewport);
- int preview_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");;
+#if 0
+ Image img = VS::get_singleton()->viewport_texture(scree_capture(viewport);
+ int preview_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
preview_size*=EDSCALE;
int width,height;
if (img.get_width() > preview_size && img.get_width() >= img.get_height()) {
@@ -931,7 +938,7 @@ void EditorNode::_save_scene_with_preview(String p_file) {
height=img.get_height();
}
- img.convert(Image::FORMAT_RGB);
+ img.convert(Image::FORMAT_RGB8);
img.resize(width,height);
String pfile = EditorSettings::get_singleton()->get_settings_path().plus_file("tmp/last_scene_preview.png");
@@ -943,7 +950,7 @@ void EditorNode::_save_scene_with_preview(String p_file) {
if (editor_data.get_edited_scene_import_metadata().is_null())
editor_data.set_edited_scene_import_metadata(Ref<ResourceImportMetadata>( memnew( ResourceImportMetadata ) ) );
editor_data.get_edited_scene_import_metadata()->set_option("thumbnail",imgdata);
-
+#endif
//tamanio tel thumbnail
if (screen!=-1) {
_editor_select(screen);
@@ -1003,10 +1010,12 @@ void EditorNode::_save_scene(String p_file, int idx) {
sdata->set_import_metadata(editor_data.get_edited_scene_import_metadata(idx));
int flg=0;
- if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources"))
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources"))
flg|=ResourceSaver::FLAG_COMPRESS;
- //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative"))
- // flg|=ResourceSaver::FLAG_RELATIVE_PATHS;
+ /*
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/save_paths_as_relative"))
+ flg|=ResourceSaver::FLAG_RELATIVE_PATHS;
+ */
flg|=ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS;
@@ -1015,7 +1024,7 @@ void EditorNode::_save_scene(String p_file, int idx) {
_save_edited_subresources(scene,processed,flg);
editor_data.save_editor_external_data();
if (err==OK) {
- scene->set_filename( Globals::get_singleton()->localize_path(p_file) );
+ scene->set_filename( GlobalConfig::get_singleton()->localize_path(p_file) );
//EditorFileSystem::get_singleton()->update_file(p_file,sdata->get_type());
if (idx < 0 || idx == editor_data.get_edited_scene())
set_current_version(editor_data.get_undo_redo().get_version());
@@ -1051,7 +1060,7 @@ void EditorNode::_import_action(const String& p_action) {
//accept->get_cancel()->hide();
accept->get_ok()->set_text("Ugh");
accept->set_text("Error importing scene.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
return;
}
@@ -1059,7 +1068,7 @@ void EditorNode::_import_action(const String& p_action) {
EditorImport::generate_version_hashes(src);
- Node *dst = SceneLoader::load(editor_data.get_imported_scene(Globals::get_singleton()->localize_path(_tmp_import_path)));
+ Node *dst = SceneLoader::load(editor_data.get_imported_scene(GlobalConfig::get_singleton()->localize_path(_tmp_import_path)));
if (!dst) {
@@ -1067,7 +1076,7 @@ void EditorNode::_import_action(const String& p_action) {
//accept->get_cancel()->hide();
accept->get_ok()->set_text("Ugh");
accept->set_text("Error load scene to update.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
return;
}
@@ -1108,7 +1117,7 @@ void EditorNode::_import(const String &p_file) {
//accept->get_cancel()->hide();
accept->get_ok()->set_text("Ugh");
accept->set_text("Error importing scene.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
return;
}
@@ -1167,9 +1176,8 @@ void EditorNode::_dialog_action(String p_file) {
} break;
case SETTINGS_PICK_MAIN_SCENE: {
- Globals::get_singleton()->set("application/main_scene",p_file);
- Globals::get_singleton()->set_persisting("application/main_scene",true);
- Globals::get_singleton()->save();
+ GlobalConfig::get_singleton()->set("application/main_scene",p_file);
+ GlobalConfig::get_singleton()->save();
//would be nice to show the project manager opened with the hilighted field..
} break;
case FILE_SAVE_OPTIMIZED: {
@@ -1246,7 +1254,7 @@ void EditorNode::_dialog_action(String p_file) {
ml = Ref<MeshLibrary>( memnew( MeshLibrary ));
}
- MeshLibraryEditor::update_library_file(editor_data.get_edited_scene_root(),ml,true);
+ //MeshLibraryEditor::update_library_file(editor_data.get_edited_scene_root(),ml,true);
Error err = ResourceSaver::save(p_file,ml);
if (err) {
@@ -1345,9 +1353,11 @@ void EditorNode::_dialog_action(String p_file) {
unzCloseCurrentFile(pkg);
print_line(fname);
- //for(int i=0;i<512;i++) {
- // print_line(itos(data[i]));
- //}
+ /*
+ for(int i=0;i<512;i++) {
+ print_line(itos(data[i]));
+ }
+ */
file=file.get_file();
@@ -1511,8 +1521,8 @@ void EditorNode::_prepare_history() {
already.insert(id);
Ref<Texture> icon = gui_base->get_icon("Object","EditorIcons");
- if (gui_base->has_icon(obj->get_type(),"EditorIcons"))
- icon=gui_base->get_icon(obj->get_type(),"EditorIcons");
+ if (gui_base->has_icon(obj->get_class(),"EditorIcons"))
+ icon=gui_base->get_icon(obj->get_class(),"EditorIcons");
else
icon=base_icon;
@@ -1524,12 +1534,12 @@ void EditorNode::_prepare_history() {
else if (r->get_name()!=String()) {
text=r->get_name();
} else {
- text=r->get_type();
+ text=r->get_class();
}
} else if (obj->cast_to<Node>()) {
text=obj->cast_to<Node>()->get_name();
} else {
- text=obj->get_type();
+ text=obj->get_class();
}
if (i==editor_history.get_history_pos()) {
@@ -1617,8 +1627,8 @@ void EditorNode::_edit_current() {
object_menu->set_disabled(true);
- bool is_resource = current_obj->is_type("Resource");
- bool is_node = current_obj->is_type("Node");
+ bool is_resource = current_obj->is_class("Resource");
+ bool is_node = current_obj->is_class("Node");
resource_save_button->set_disabled(!is_resource);
if (is_resource) {
@@ -1668,11 +1678,11 @@ void EditorNode::_edit_current() {
if (main_plugin) {
// special case if use of external editor is true
- if (main_plugin->get_name() == "Script" && bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor"))){
+ if (main_plugin->get_name() == "Script" && bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))){
main_plugin->edit(current_obj);
}
- else if (main_plugin!=editor_plugin_screen && (!ScriptEditor::get_singleton() || !ScriptEditor::get_singleton()->is_visible() || ScriptEditor::get_singleton()->can_take_away_focus())) {
+ else if (main_plugin!=editor_plugin_screen && (!ScriptEditor::get_singleton() || !ScriptEditor::get_singleton()->is_visible_in_tree() || ScriptEditor::get_singleton()->can_take_away_focus())) {
// update screen main_plugin
if (!changing_scene) {
@@ -1848,7 +1858,6 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
run_filename=scene->get_filename();
} else {
- args=run_settings_dialog->get_custom_arguments();
current_filename=scene->get_filename();
}
@@ -1893,7 +1902,7 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
}
- if (bool(EDITOR_DEF("run/auto_save_before_running",true))) {
+ if (bool(EDITOR_DEF("run/auto_save/save_before_running",true))) {
if (unsaved_cache) {
@@ -1923,10 +1932,15 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
log->clear();
}
+ if (bool(EDITOR_DEF("run/always_open_output_on_play", true))) {
+ make_bottom_panel_item_visible(log);
+ }
List<String> breakpoints;
editor_data.get_editor_breakpoints(&breakpoints);
+ args = GlobalConfig::get_singleton()->get("editor/main_run_args");
+
Error error = editor_run.run(run_filename,args,breakpoints,current_filename);
if (error!=OK) {
@@ -2065,14 +2079,6 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
quick_open->set_title(TTR("Quick Open Script.."));
} break;
- case FILE_QUICK_OPEN_FILE: {
-
-
- //quick_open->popup("Resource", false, true);
- //quick_open->set_title("Quick Search File..");
- scenes_dock->focus_on_filter();
-
- } break;
case FILE_RUN_SCRIPT: {
file_script->popup_centered_ratio();
@@ -2151,7 +2157,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
if (scene->get_filename()!="") {
file->set_current_path(scene->get_filename());
if (extensions.size()) {
- String ext=scene->get_filename().extension().to_lower();
+ String ext=scene->get_filename().get_extension().to_lower();
if (extensions.find(ext)==NULL) {
file->set_current_path(scene->get_filename().replacen("."+ext,"."+extensions.front()->get()));
}
@@ -2214,8 +2220,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
if (scene->get_filename()!="") {
cpath = scene->get_filename();
- String fn = cpath.substr(0,cpath.length() - cpath.extension().size());
- String ext=cpath.extension();
+ String fn = cpath.substr(0,cpath.length() - cpath.get_extension().size());
+ String ext=cpath.get_extension();
cpath=fn+".pot";
@@ -2245,7 +2251,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
//confirmation->get_cancel()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a tree root.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
break;
}
@@ -2267,7 +2273,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
//confirmation->get_cancel()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("Please save the scene first.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
break;
}
@@ -2282,7 +2288,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
Ref<EditorExporter> exporter = export_db->get_exporter(target);
if (exporter.is_null()) {
accept->set_text("No exporter for platform '"+target+"' yet.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
return;
}
@@ -2399,8 +2405,12 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
case EDIT_UNDO: {
- if (OS::get_singleton()->get_mouse_button_state())
+
+
+ if (Input::get_singleton()->get_mouse_button_mask()&0x7) {
+ print_line("no because state");
break; // can't undo while mouse buttons are pressed
+ }
String action = editor_data.get_undo_redo().get_current_action_name();
if (action!="")
@@ -2410,7 +2420,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
} break;
case EDIT_REDO: {
- if (OS::get_singleton()->get_mouse_button_state())
+ if (Input::get_singleton()->get_mouse_button_mask()&0x7)
break; // can't redo while mouse buttons are pressed
editor_data.get_undo_redo().redo();
@@ -2465,7 +2475,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
//accept->get_cancel()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a selected node.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
break;
}
@@ -2477,7 +2487,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
//confirmation->get_cancel()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a selected node.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
break;
}
@@ -2489,12 +2499,12 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
//accept->get_cancel()->hide();
accept->get_ok()->set_text("Ugh");
accept->set_text("Error loading scene from "+external_file);
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
return;
}
instanced_scene->generate_instance_state();
- instanced_scene->set_filename( Globals::get_singleton()->localize_path(external_file) );
+ instanced_scene->set_filename( GlobalConfig::get_singleton()->localize_path(external_file) );
editor_data.get_undo_redo().create_action("Instance Scene");
editor_data.get_undo_redo().add_do_method(parent,"add_child",instanced_scene);
@@ -2503,8 +2513,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
editor_data.get_undo_redo().add_undo_method(parent,"remove_child",instanced_scene);
editor_data.get_undo_redo().commit_action();
-// parent->add_child(instanced_scene);
-// instanced_scene->set_owner(edited_scene);
+ //parent->add_child(instanced_scene);
+ //instanced_scene->set_owner(edited_scene);
_last_instanced_scene=instanced_scene;
} break;
@@ -2577,27 +2587,27 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
if (current) {
_editor_select(EDITOR_SCRIPT);
- emit_signal("request_help",current->get_type());
+ emit_signal("request_help",current->get_class());
}
} break;
case OBJECT_COPY_PARAMS: {
- editor_data.apply_changes_in_editors();;
+ editor_data.apply_changes_in_editors();
if (current)
editor_data.copy_object_params(current);
} break;
case OBJECT_PASTE_PARAMS: {
- editor_data.apply_changes_in_editors();;
+ editor_data.apply_changes_in_editors();
if (current)
editor_data.paste_object_params(current);
editor_data.get_undo_redo().clear_history();
} break;
case OBJECT_UNIQUE_RESOURCES: {
- editor_data.apply_changes_in_editors();;
+ editor_data.apply_changes_in_editors();
if (current) {
List<PropertyInfo> props;
current->get_property_list(&props);
@@ -2635,12 +2645,6 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
_set_editing_top_editors(current);
} break;
- case OBJECT_CALL_METHOD: {
-
- editor_data.apply_changes_in_editors();;
- call_dialog->set_object(current);
- call_dialog->popup_centered_ratio();
- } break;
case RUN_PLAY: {
_menu_option_confirm(RUN_STOP,true);
_call_build();
@@ -2685,7 +2689,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
} break;
case RUN_PLAY_NATIVE: {
- bool autosave = EDITOR_DEF("run/auto_save_before_running",true);
+ bool autosave = EDITOR_DEF("run/auto_save/save_before_running",true);
if (autosave) {
_menu_option_confirm(FILE_SAVE_ALL_SCENES, false);
}
@@ -2803,10 +2807,10 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
update_menu->get_popup()->set_item_checked(1,true);
OS::get_singleton()->set_low_processor_usage_mode(true);
} break;
- case SETTINGS_UPDATE_SPINNER_HIDE: {
+ case SETTINGS_UPDATE_SPINNER_HIDE: {
update_menu->set_icon(gui_base->get_icon("Collapse","EditorIcons"));
- update_menu->get_popup()->toggle_item_checked(3);
- } break;
+ update_menu->get_popup()->toggle_item_checked(3);
+ } break;
case SETTINGS_PREFERENCES: {
settings_config_dialog->popup_edit_settings();
@@ -2911,7 +2915,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
//accept->get_cancel()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("Can't import if edited scene was not saved."); //i dont think this code will ever run
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
break;
}
@@ -3078,11 +3082,9 @@ void EditorNode::_update_addon_config() {
}
if (enabled_addons.size()==0) {
- Globals::get_singleton()->set("editor_plugins/enabled",Variant());
- Globals::get_singleton()->set_persisting("editor_plugins/enabled",false);
+ GlobalConfig::get_singleton()->set("editor_plugins/enabled",Variant());
} else {
- Globals::get_singleton()->set("editor_plugins/enabled",enabled_addons);
- Globals::get_singleton()->set_persisting("editor_plugins/enabled",true);
+ GlobalConfig::get_singleton()->set("editor_plugins/enabled",enabled_addons);
}
project_settings->queue_save();
@@ -3181,15 +3183,17 @@ void EditorNode::_remove_edited_scene() {
_update_title();
_update_scene_tabs();
-// if (editor_data.get_edited_scene_count()==1) {
-// //make new scene appear saved
-// set_current_version(editor_data.get_undo_redo().get_version());
-// unsaved_cache=false;
-// }
+ /*
+ if (editor_data.get_edited_scene_count()==1) {
+ //make new scene appear saved
+ set_current_version(editor_data.get_undo_redo().get_version());
+ unsaved_cache=false;
+ }
+ */
}
void EditorNode::_remove_scene(int index) {
-// printf("Attempting to remove scene %d (current is %d)\n", index, editor_data.get_edited_scene());
+ //printf("Attempting to remove scene %d (current is %d)\n", index, editor_data.get_edited_scene());
if (editor_data.get_edited_scene() == index) {
//Scene to remove is current scene
@@ -3275,7 +3279,7 @@ Error EditorNode::save_translatable_strings(const String& p_to_file) {
OS::Time time = OS::get_singleton()->get_time();
f->store_line("# Translation Strings Dump.");
f->store_line("# Created By.");
- f->store_line("# \t" VERSION_FULL_NAME " (c) 2008-2016 Juan Linietsky, Ariel Manzur.");
+ f->store_line("# \t" VERSION_FULL_NAME " (c) 2008-2017 Juan Linietsky, Ariel Manzur.");
f->store_line("# From Scene: ");
f->store_line("# \t"+get_edited_scene()->get_filename());
f->store_line("");
@@ -3283,8 +3287,8 @@ Error EditorNode::save_translatable_strings(const String& p_to_file) {
f->store_line("msgstr \"\"");
f->store_line("\"Report-Msgid-Bugs-To: <define>\\n\"");
f->store_line("\"POT-Creation-Date: "+itos(date.year)+"-"+itos(date.month)+"-"+itos(date.day)+" "+itos(time.hour)+":"+itos(time.min)+"0000\\n\"");
-// f->store_line("\"PO-Revision-Date: 2006-08-30 13:56-0700\\n\"");
-// f->store_line("\"Last-Translator: Rubén C. Díaz Alonso <outime@gmail.com>\\n\"");
+ //f->store_line("\"PO-Revision-Date: 2006-08-30 13:56-0700\\n\"");
+ //f->store_line("\"Last-Translator: Rubén C. Díaz Alonso <outime@gmail.com>\\n\"");
f->store_line("\"Language-Team: <define>\\n\"");
f->store_line("\"MIME-Version: 1.0\\n\"");
f->store_line("\"Content-Type: text/plain; charset=UTF-8\\n\"");
@@ -3347,7 +3351,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
}
- String src_scene=Globals::get_singleton()->localize_path(get_edited_scene()->get_filename());
+ String src_scene=GlobalConfig::get_singleton()->localize_path(get_edited_scene()->get_filename());
String path=p_scene;
@@ -3358,24 +3362,24 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
print_line("rel path!?");
path=src_scene.get_base_dir()+"/"+path;
}
- path = Globals::get_singleton()->localize_path(path);
+ path = GlobalConfig::get_singleton()->localize_path(path);
print_line("path: "+path);
String preset = "optimizer_presets/"+p_preset;
- if (!Globals::get_singleton()->has(preset)) {
+ if (!GlobalConfig::get_singleton()->has(preset)) {
//accept->"()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("Optimizer preset not found: "+p_preset);
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
ERR_EXPLAIN("Optimizer preset not found: "+p_preset);
ERR_FAIL_V(ERR_INVALID_PARAMETER);
}
- Dictionary d = Globals::get_singleton()->get(preset);
+ Dictionary d = GlobalConfig::get_singleton()->get(preset);
ERR_FAIL_COND_V(!d.has("__type__"),ERR_INVALID_DATA);
String type=d["__type__"];
@@ -3405,8 +3409,10 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
uint32_t flags=0;
-// if (saver->is_bundle_scenes_enabled())
-// flags|=ResourceSaver::FLAG_BUNDLE_INSTANCED_SCENES;
+ /*
+ if (saver->is_bundle_scenes_enabled())
+ flags|=ResourceSaver::FLAG_BUNDLE_INSTANCED_SCENES;
+ */
if (saver->is_bundle_resources_enabled())
flags|=ResourceSaver::FLAG_BUNDLE_RESOURCES;
if (saver->is_remove_editor_data_enabled())
@@ -3427,7 +3433,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
//accept->get_cancel()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("Couldn't save scene. Likely dependencies (instances) couldn't be satisfied.");
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
return ERR_INVALID_DATA;
}
@@ -3438,7 +3444,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
//accept->"()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("Error saving optimized scene: "+path);
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
ERR_FAIL_COND_V(err,err);
@@ -3464,8 +3470,8 @@ Dictionary EditorNode::_get_main_scene_state() {
Dictionary state;
state["main_tab"]=_get_current_main_editor();
- state["scene_tree_offset"]=scene_tree_dock->get_tree_editor()->get_scene_tree()->get_vscroll_bar()->get_val();
- state["property_edit_offset"]=get_property_editor()->get_scene_tree()->get_vscroll_bar()->get_val();
+ state["scene_tree_offset"]=scene_tree_dock->get_tree_editor()->get_scene_tree()->get_vscroll_bar()->get_value();
+ state["property_edit_offset"]=get_property_editor()->get_scene_tree()->get_vscroll_bar()->get_value();
state["saved_version"]=saved_version;
state["node_filter"]=scene_tree_dock->get_filter();
//print_line(" getting main tab: "+itos(state["main_tab"]));
@@ -3531,9 +3537,9 @@ void EditorNode::_set_main_scene_state(Dictionary p_state,Node* p_for_scene) {
if (p_state.has("scene_tree_offset"))
- scene_tree_dock->get_tree_editor()->get_scene_tree()->get_vscroll_bar()->set_val(p_state["scene_tree_offset"]);
+ scene_tree_dock->get_tree_editor()->get_scene_tree()->get_vscroll_bar()->set_value(p_state["scene_tree_offset"]);
if (p_state.has("property_edit_offset"))
- get_property_editor()->get_scene_tree()->get_vscroll_bar()->set_val(p_state["property_edit_offset"]);
+ get_property_editor()->get_scene_tree()->get_vscroll_bar()->set_value(p_state["property_edit_offset"]);
if (p_state.has("node_filter"))
scene_tree_dock->set_filter(p_state["node_filter"]);
@@ -3661,7 +3667,7 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo
if (p_clear_errors)
load_errors->clear();
- String lpath = Globals::get_singleton()->localize_path(p_scene);
+ String lpath = GlobalConfig::get_singleton()->localize_path(p_scene);
if (!lpath.begins_with("res://")) {
@@ -3750,7 +3756,7 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo
sdata->set_path(lpath,true); //take over path
}
- Node*new_scene=sdata->instance(true);
+ Node*new_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_MAIN);
if (!new_scene) {
@@ -3789,8 +3795,10 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo
state->set_path(lpath);
new_scene->set_scene_inherited_state(state);
new_scene->set_filename(String());
- //if (new_scene->get_scene_instance_state().is_valid())
- // new_scene->get_scene_instance_state()->set_path(String());
+ /*
+ if (new_scene->get_scene_instance_state().is_valid())
+ new_scene->get_scene_instance_state()->set_path(String());
+ */
}
new_scene->set_scene_instance_state(Ref<SceneState>());
@@ -3806,7 +3814,7 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo
*/
editor_data.set_edited_scene_import_metadata( sdata->get_import_metadata() );
-// editor_data.get_undo_redo().clear_history();
+ //editor_data.get_undo_redo().clear_history();
saved_version=editor_data.get_undo_redo().get_version();
_update_title();
_update_scene_tabs();
@@ -3844,9 +3852,9 @@ void EditorNode::request_instance_scenes(const Vector<String>& p_files) {
scene_tree_dock->instance_scenes(p_files);
}
-FileSystemDock *EditorNode::get_scenes_dock() {
+FileSystemDock *EditorNode::get_filesystem_dock() {
- return scenes_dock;
+ return filesystem_dock;
}
SceneTreeDock *EditorNode::get_scene_tree_dock() {
@@ -3898,17 +3906,17 @@ void EditorNode::update_keying() {
void EditorNode::_close_messages() {
-// left_split->set_dragger_visible(false);
+ //left_split->set_dragger_visible(false);
old_split_ofs = center_split->get_split_offset();
center_split->set_split_offset(0);
-// scene_root_parent->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_END,0);
+ //scene_root_parent->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_END,0);
}
void EditorNode::_show_messages() {
-// left_split->set_dragger_visible(true);
+ //left_split->set_dragger_visible(true);
center_split->set_split_offset(old_split_ofs);
-// scene_root_parent->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_END,log->get_margin(MARGIN_TOP));
+ //scene_root_parent->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_END,log->get_margin(MARGIN_TOP));
}
@@ -3939,7 +3947,7 @@ void EditorNode::animation_editor_make_visible(bool p_visible) {
} else {
//pd_anim->hide();
animation_editor->hide();
-// scene_root_parent->set_margin(MARGIN_TOP,0);
+ //scene_root_parent->set_margin(MARGIN_TOP,0);
if (!animation_vb->get_parent_control())
return;
animation_vb->get_parent_control()->minimum_size_changed();
@@ -3952,7 +3960,7 @@ void EditorNode::animation_editor_make_visible(bool p_visible) {
#endif
void EditorNode::_add_to_recent_scenes(const String& p_scene) {
- String base="_"+Globals::get_singleton()->get_resource_path().replace("\\","::").replace("/","::");
+ String base="_"+GlobalConfig::get_singleton()->get_resource_path().replace("\\","::").replace("/","::");
Vector<String> rc = EDITOR_DEF(base+"/_recent_scenes",Array());
String name = p_scene;
name=name.replace("res://","");
@@ -3970,7 +3978,7 @@ void EditorNode::_add_to_recent_scenes(const String& p_scene) {
void EditorNode::_open_recent_scene(int p_idx) {
- String base="_"+Globals::get_singleton()->get_resource_path().replace("\\","::").replace("/","::");
+ String base="_"+GlobalConfig::get_singleton()->get_resource_path().replace("\\","::").replace("/","::");
Vector<String> rc = EDITOR_DEF(base+"/_recent_scenes",Array());
ERR_FAIL_INDEX(p_idx,rc.size());
@@ -3994,7 +4002,7 @@ void EditorNode::_open_recent_scene(int p_idx) {
void EditorNode::_save_optimized() {
-// save_optimized_copy(optimized_save->get_optimized_scene(),optimized_save->get_preset());
+ //save_optimized_copy(optimized_save->get_optimized_scene(),optimized_save->get_preset());
#if 0
String path = optimized_save->get_optimized_scene();
@@ -4021,18 +4029,18 @@ void EditorNode::_save_optimized() {
//accept->"()->hide();
accept->get_ok()->set_text("I see..");
accept->set_text("Error saving optimized scene: "+path);
- accept->popup_centered(Size2(300,70));;
+ accept->popup_centered(Size2(300,70));
return;
}
- project_settings->add_remapped_path(Globals::get_singleton()->localize_path(get_edited_scene()->get_filename()),Globals::get_singleton()->localize_path(path),platform);
+ project_settings->add_remapped_path(GlobalConfig::get_singleton()->localize_path(get_edited_scene()->get_filename()),GlobalConfig::get_singleton()->localize_path(path),platform);
#endif
}
void EditorNode::_update_recent_scenes() {
- String base="_"+Globals::get_singleton()->get_resource_path().replace("\\","::").replace("/","::");
+ String base="_"+GlobalConfig::get_singleton()->get_resource_path().replace("\\","::").replace("/","::");
Vector<String> rc = EDITOR_DEF(base+"/_recent_scenes",Array());
recent_scenes->clear();
for(int i=0;i<rc.size();i++) {
@@ -4146,25 +4154,25 @@ bool EditorNode::is_scene_in_use(const String& p_path) {
void EditorNode::register_editor_types() {
- ObjectTypeDB::register_type<EditorPlugin>();
- ObjectTypeDB::register_type<EditorImportPlugin>();
- ObjectTypeDB::register_type<EditorExportPlugin>();
- ObjectTypeDB::register_type<EditorScenePostImport>();
- ObjectTypeDB::register_type<EditorScript>();
- ObjectTypeDB::register_type<EditorSelection>();
- ObjectTypeDB::register_type<EditorFileDialog>();
- //ObjectTypeDB::register_type<EditorImportExport>();
- ObjectTypeDB::register_type<EditorSettings>();
- ObjectTypeDB::register_type<EditorSpatialGizmo>();
- ObjectTypeDB::register_type<EditorResourcePreview>();
- ObjectTypeDB::register_type<EditorResourcePreviewGenerator>();
- ObjectTypeDB::register_type<EditorFileSystem>();
- ObjectTypeDB::register_type<EditorFileSystemDirectory>();
+ ClassDB::register_class<EditorPlugin>();
+ ClassDB::register_class<EditorImportPlugin>();
+ ClassDB::register_class<EditorExportPlugin>();
+ ClassDB::register_class<EditorScenePostImport>();
+ ClassDB::register_class<EditorScript>();
+ ClassDB::register_class<EditorSelection>();
+ ClassDB::register_class<EditorFileDialog>();
+ //ClassDB::register_type<EditorImportExport>();
+ ClassDB::register_class<EditorSettings>();
+ ClassDB::register_class<EditorSpatialGizmo>();
+ ClassDB::register_class<EditorResourcePreview>();
+ ClassDB::register_class<EditorResourcePreviewGenerator>();
+ ClassDB::register_class<EditorFileSystem>();
+ ClassDB::register_class<EditorFileSystemDirectory>();
- //ObjectTypeDB::register_type<EditorImporter>();
-// ObjectTypeDB::register_type<EditorPostImport>();
+ //ClassDB::register_type<EditorImporter>();
+ //ClassDB::register_type<EditorPostImport>();
}
void EditorNode::unregister_editor_types() {
@@ -4222,7 +4230,7 @@ void EditorNode::progress_end_task_bg(const String& p_task) {
Ref<Texture> EditorNode::_file_dialog_get_icon(const String& p_path) {
- EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->get_path(p_path.get_base_dir());
+ EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->get_filesystem_path(p_path.get_base_dir());
if (efsd) {
String file = p_path.get_file();
@@ -4506,6 +4514,8 @@ void EditorNode::_save_docks_to_config(Ref<ConfigFile> p_layout, const String& p
}
}
+ p_layout->set_value(p_section,"dock_filesystem_split",filesystem_dock->get_split_offset());
+
VSplitContainer*splits[DOCK_SLOT_MAX/2]={
left_l_vsplit,
left_r_vsplit,
@@ -4515,7 +4525,7 @@ void EditorNode::_save_docks_to_config(Ref<ConfigFile> p_layout, const String& p
for(int i=0;i<DOCK_SLOT_MAX/2;i++) {
- if (splits[i]->is_visible()) {
+ if (splits[i]->is_visible_in_tree()) {
p_layout->set_value(p_section,"dock_split_"+itos(i+1),splits[i]->get_split_offset());
}
}
@@ -4614,7 +4624,7 @@ void EditorNode::_update_dock_slots_visibility() {
for(int i=0;i<DOCK_SLOT_MAX;i++) {
- if (!dock_slot[i]->is_hidden() && dock_slot[i]->get_tab_count()) {
+ if (dock_slot[i]->is_visible() && dock_slot[i]->get_tab_count()) {
dock_slot[i]->set_current_tab(0);
}
}
@@ -4682,6 +4692,12 @@ void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String&
}
}
+ int fs_split_ofs = 0;
+ if (p_layout->has_section_key(p_section,"dock_filesystem_split")) {
+ fs_split_ofs = p_layout->get_value(p_section,"dock_filesystem_split");
+ }
+ filesystem_dock->set_split_offset(fs_split_ofs);
+
VSplitContainer*splits[DOCK_SLOT_MAX/2]={
left_l_vsplit,
left_r_vsplit,
@@ -4722,7 +4738,7 @@ void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String&
for(int i=0;i<DOCK_SLOT_MAX;i++) {
- if (!dock_slot[i]->is_hidden() && dock_slot[i]->get_tab_count()) {
+ if (dock_slot[i]->is_visible() && dock_slot[i]->get_tab_count()) {
dock_slot[i]->set_current_tab(0);
}
}
@@ -4960,7 +4976,7 @@ void EditorNode::remove_bottom_panel_item(Control *p_item) {
for(int i=0;i<bottom_panel_items.size();i++) {
if (bottom_panel_items[i].control==p_item) {
- if (p_item->is_visible()) {
+ if (p_item->is_visible_in_tree()) {
_bottom_panel_switch(false,0);
}
bottom_panel_vb->remove_child(bottom_panel_items[i].control);
@@ -4987,7 +5003,7 @@ void EditorNode::_bottom_panel_switch(bool p_enable,int p_idx) {
for(int i=0;i<bottom_panel_items.size();i++) {
bottom_panel_items[i].button->set_pressed(i==p_idx);
- bottom_panel_items[i].control->set_hidden(i!=p_idx);
+ bottom_panel_items[i].control->set_visible(i==p_idx);
}
center_split->set_dragger_visibility(SplitContainer::DRAGGER_VISIBLE);
center_split->set_collapsed(false);
@@ -4995,7 +5011,7 @@ void EditorNode::_bottom_panel_switch(bool p_enable,int p_idx) {
for(int i=0;i<bottom_panel_items.size();i++) {
bottom_panel_items[i].button->set_pressed(false);
- bottom_panel_items[i].control->set_hidden(true);
+ bottom_panel_items[i].control->set_visible(false);
}
center_split->set_dragger_visibility(SplitContainer::DRAGGER_HIDDEN);
center_split->set_collapsed(true);
@@ -5062,7 +5078,7 @@ Variant EditorNode::drag_resource(const Ref<Resource>& p_res,Control* p_from) {
Control *drag_control = memnew( Control );
- TextureFrame *drag_preview = memnew( TextureFrame );
+ TextureRect *drag_preview = memnew( TextureRect );
Label* label=memnew( Label );
waiting_for_sources_changed=true; //
@@ -5085,7 +5101,7 @@ Variant EditorNode::drag_resource(const Ref<Resource>& p_res,Control* p_from) {
} else if (p_res->get_name()!="") {
label->set_text(p_res->get_name());
} else {
- label->set_text(p_res->get_type());
+ label->set_text(p_res->get_class());
}
@@ -5170,7 +5186,7 @@ Variant EditorNode::drag_files_and_dirs(const Vector<String>& p_files, Control *
void EditorNode::_dropped_files(const Vector<String>& p_files,int p_screen) {
- String cur_path = scenes_dock->get_current_path();
+ String cur_path = filesystem_dock->get_current_path();
for(int i=0;i<EditorImportExport::get_singleton()->get_import_plugin_count();i++) {
EditorImportExport::get_singleton()->get_import_plugin(i)->import_from_drop(p_files,cur_path);
}
@@ -5284,94 +5300,103 @@ void EditorNode::_call_build() {
void EditorNode::_bind_methods() {
- ObjectTypeDB::bind_method("_menu_option",&EditorNode::_menu_option);
- ObjectTypeDB::bind_method("_menu_confirm_current",&EditorNode::_menu_confirm_current);
- ObjectTypeDB::bind_method("_dialog_action",&EditorNode::_dialog_action);
- ObjectTypeDB::bind_method("_resource_selected",&EditorNode::_resource_selected,DEFVAL(""));
- ObjectTypeDB::bind_method("_property_editor_forward",&EditorNode::_property_editor_forward);
- ObjectTypeDB::bind_method("_property_editor_back",&EditorNode::_property_editor_back);
- ObjectTypeDB::bind_method("_editor_select",&EditorNode::_editor_select);
- ObjectTypeDB::bind_method("_node_renamed",&EditorNode::_node_renamed);
- ObjectTypeDB::bind_method("edit_node",&EditorNode::edit_node);
- ObjectTypeDB::bind_method("_imported",&EditorNode::_imported);
- ObjectTypeDB::bind_method("_unhandled_input",&EditorNode::_unhandled_input);
-
- ObjectTypeDB::bind_method("_get_scene_metadata",&EditorNode::_get_scene_metadata);
- ObjectTypeDB::bind_method("set_edited_scene",&EditorNode::set_edited_scene);
- ObjectTypeDB::bind_method("open_request",&EditorNode::open_request);
- ObjectTypeDB::bind_method("_instance_request",&EditorNode::_instance_request);
- ObjectTypeDB::bind_method("update_keying",&EditorNode::update_keying);
- ObjectTypeDB::bind_method("_property_keyed",&EditorNode::_property_keyed);
- ObjectTypeDB::bind_method("_transform_keyed",&EditorNode::_transform_keyed);
- ObjectTypeDB::bind_method("_close_messages",&EditorNode::_close_messages);
- ObjectTypeDB::bind_method("_show_messages",&EditorNode::_show_messages);
- ObjectTypeDB::bind_method("_vp_resized",&EditorNode::_vp_resized);
- ObjectTypeDB::bind_method("_quick_opened",&EditorNode::_quick_opened);
- ObjectTypeDB::bind_method("_quick_run",&EditorNode::_quick_run);
-
- ObjectTypeDB::bind_method("_resource_created",&EditorNode::_resource_created);
-
- ObjectTypeDB::bind_method("_import_action",&EditorNode::_import_action);
- //ObjectTypeDB::bind_method("_import",&EditorNode::_import);
-// ObjectTypeDB::bind_method("_import_conflicts_solved",&EditorNode::_import_conflicts_solved);
- ObjectTypeDB::bind_method("_open_recent_scene",&EditorNode::_open_recent_scene);
-// ObjectTypeDB::bind_method("_open_recent_scene_confirm",&EditorNode::_open_recent_scene_confirm);
-
- ObjectTypeDB::bind_method("_save_optimized",&EditorNode::_save_optimized);
-
- ObjectTypeDB::bind_method("stop_child_process",&EditorNode::stop_child_process);
-
- ObjectTypeDB::bind_method("_sources_changed",&EditorNode::_sources_changed);
- ObjectTypeDB::bind_method("_fs_changed",&EditorNode::_fs_changed);
- ObjectTypeDB::bind_method("_dock_select_draw",&EditorNode::_dock_select_draw);
- ObjectTypeDB::bind_method("_dock_select_input",&EditorNode::_dock_select_input);
- ObjectTypeDB::bind_method("_dock_pre_popup",&EditorNode::_dock_pre_popup);
- ObjectTypeDB::bind_method("_dock_split_dragged",&EditorNode::_dock_split_dragged);
- ObjectTypeDB::bind_method("_save_docks",&EditorNode::_save_docks);
- ObjectTypeDB::bind_method("_dock_popup_exit",&EditorNode::_dock_popup_exit);
- ObjectTypeDB::bind_method("_dock_move_left",&EditorNode::_dock_move_left);
- ObjectTypeDB::bind_method("_dock_move_right",&EditorNode::_dock_move_right);
-
- ObjectTypeDB::bind_method("_layout_menu_option",&EditorNode::_layout_menu_option);
-
- ObjectTypeDB::bind_method("set_current_scene",&EditorNode::set_current_scene);
- ObjectTypeDB::bind_method("set_current_version",&EditorNode::set_current_version);
- ObjectTypeDB::bind_method("_scene_tab_changed",&EditorNode::_scene_tab_changed);
- ObjectTypeDB::bind_method("_scene_tab_closed",&EditorNode::_scene_tab_closed);
- ObjectTypeDB::bind_method("_scene_tab_script_edited",&EditorNode::_scene_tab_script_edited);
- ObjectTypeDB::bind_method("_set_main_scene_state",&EditorNode::_set_main_scene_state);
- ObjectTypeDB::bind_method("_update_scene_tabs",&EditorNode::_update_scene_tabs);
-
- ObjectTypeDB::bind_method("_prepare_history",&EditorNode::_prepare_history);
- ObjectTypeDB::bind_method("_select_history",&EditorNode::_select_history);
-
- ObjectTypeDB::bind_method("_toggle_search_bar",&EditorNode::_toggle_search_bar);
- ObjectTypeDB::bind_method("_clear_search_box",&EditorNode::_clear_search_box);
- ObjectTypeDB::bind_method("_clear_undo_history",&EditorNode::_clear_undo_history);
- ObjectTypeDB::bind_method("_dropped_files",&EditorNode::_dropped_files);
- ObjectTypeDB::bind_method("_toggle_distraction_free_mode",&EditorNode::_toggle_distraction_free_mode);
-
-
-
- ObjectTypeDB::bind_method(_MD("add_editor_import_plugin", "plugin"), &EditorNode::add_editor_import_plugin);
- ObjectTypeDB::bind_method(_MD("remove_editor_import_plugin", "plugin"), &EditorNode::remove_editor_import_plugin);
- ObjectTypeDB::bind_method(_MD("get_gui_base"), &EditorNode::get_gui_base);
- ObjectTypeDB::bind_method(_MD("_bottom_panel_switch"), &EditorNode::_bottom_panel_switch);
+ ClassDB::bind_method("_menu_option",&EditorNode::_menu_option);
+ ClassDB::bind_method("_menu_confirm_current",&EditorNode::_menu_confirm_current);
+ ClassDB::bind_method("_dialog_action",&EditorNode::_dialog_action);
+ ClassDB::bind_method("_resource_selected",&EditorNode::_resource_selected,DEFVAL(""));
+ ClassDB::bind_method("_property_editor_forward",&EditorNode::_property_editor_forward);
+ ClassDB::bind_method("_property_editor_back",&EditorNode::_property_editor_back);
+ ClassDB::bind_method("_editor_select",&EditorNode::_editor_select);
+ ClassDB::bind_method("_node_renamed",&EditorNode::_node_renamed);
+ ClassDB::bind_method("edit_node",&EditorNode::edit_node);
+ ClassDB::bind_method("_imported",&EditorNode::_imported);
+ ClassDB::bind_method("_unhandled_input",&EditorNode::_unhandled_input);
+
+ ClassDB::bind_method("_get_scene_metadata",&EditorNode::_get_scene_metadata);
+ ClassDB::bind_method("set_edited_scene",&EditorNode::set_edited_scene);
+ ClassDB::bind_method("open_request",&EditorNode::open_request);
+ ClassDB::bind_method("_instance_request",&EditorNode::_instance_request);
+ ClassDB::bind_method("update_keying",&EditorNode::update_keying);
+ ClassDB::bind_method("_property_keyed",&EditorNode::_property_keyed);
+ ClassDB::bind_method("_transform_keyed",&EditorNode::_transform_keyed);
+ ClassDB::bind_method("_close_messages",&EditorNode::_close_messages);
+ ClassDB::bind_method("_show_messages",&EditorNode::_show_messages);
+ ClassDB::bind_method("_vp_resized",&EditorNode::_vp_resized);
+ ClassDB::bind_method("_quick_opened",&EditorNode::_quick_opened);
+ ClassDB::bind_method("_quick_run",&EditorNode::_quick_run);
+
+ ClassDB::bind_method("_resource_created",&EditorNode::_resource_created);
+
+ ClassDB::bind_method("_import_action",&EditorNode::_import_action);
+ //ClassDB::bind_method("_import",&EditorNode::_import);
+ //ClassDB::bind_method("_import_conflicts_solved",&EditorNode::_import_conflicts_solved);
+ ClassDB::bind_method("_open_recent_scene",&EditorNode::_open_recent_scene);
+ //ClassDB::bind_method("_open_recent_scene_confirm",&EditorNode::_open_recent_scene_confirm);
+
+ ClassDB::bind_method("_save_optimized",&EditorNode::_save_optimized);
+
+ ClassDB::bind_method("stop_child_process",&EditorNode::stop_child_process);
+
+ ClassDB::bind_method("_sources_changed",&EditorNode::_sources_changed);
+ ClassDB::bind_method("_fs_changed",&EditorNode::_fs_changed);
+ ClassDB::bind_method("_dock_select_draw",&EditorNode::_dock_select_draw);
+ ClassDB::bind_method("_dock_select_input",&EditorNode::_dock_select_input);
+ ClassDB::bind_method("_dock_pre_popup",&EditorNode::_dock_pre_popup);
+ ClassDB::bind_method("_dock_split_dragged",&EditorNode::_dock_split_dragged);
+ ClassDB::bind_method("_save_docks",&EditorNode::_save_docks);
+ ClassDB::bind_method("_dock_popup_exit",&EditorNode::_dock_popup_exit);
+ ClassDB::bind_method("_dock_move_left",&EditorNode::_dock_move_left);
+ ClassDB::bind_method("_dock_move_right",&EditorNode::_dock_move_right);
+
+ ClassDB::bind_method("_layout_menu_option",&EditorNode::_layout_menu_option);
+
+ ClassDB::bind_method("set_current_scene",&EditorNode::set_current_scene);
+ ClassDB::bind_method("set_current_version",&EditorNode::set_current_version);
+ ClassDB::bind_method("_scene_tab_changed",&EditorNode::_scene_tab_changed);
+ ClassDB::bind_method("_scene_tab_closed",&EditorNode::_scene_tab_closed);
+ ClassDB::bind_method("_scene_tab_script_edited",&EditorNode::_scene_tab_script_edited);
+ ClassDB::bind_method("_set_main_scene_state",&EditorNode::_set_main_scene_state);
+ ClassDB::bind_method("_update_scene_tabs",&EditorNode::_update_scene_tabs);
+
+ ClassDB::bind_method("_prepare_history",&EditorNode::_prepare_history);
+ ClassDB::bind_method("_select_history",&EditorNode::_select_history);
+
+ ClassDB::bind_method("_toggle_search_bar",&EditorNode::_toggle_search_bar);
+ ClassDB::bind_method("_clear_search_box",&EditorNode::_clear_search_box);
+ ClassDB::bind_method("_clear_undo_history",&EditorNode::_clear_undo_history);
+ ClassDB::bind_method("_dropped_files",&EditorNode::_dropped_files);
+ ClassDB::bind_method("_toggle_distraction_free_mode",&EditorNode::_toggle_distraction_free_mode);
+
+
+
+ ClassDB::bind_method(_MD("add_editor_import_plugin", "plugin"), &EditorNode::add_editor_import_plugin);
+ ClassDB::bind_method(_MD("remove_editor_import_plugin", "plugin"), &EditorNode::remove_editor_import_plugin);
+ ClassDB::bind_method(_MD("get_gui_base"), &EditorNode::get_gui_base);
+ ClassDB::bind_method(_MD("_bottom_panel_switch"), &EditorNode::_bottom_panel_switch);
ADD_SIGNAL( MethodInfo("play_pressed") );
ADD_SIGNAL( MethodInfo("pause_pressed") );
ADD_SIGNAL( MethodInfo("stop_pressed") );
ADD_SIGNAL( MethodInfo("request_help") );
- ADD_SIGNAL( MethodInfo("script_add_function_request",PropertyInfo(Variant::OBJECT,"obj"),PropertyInfo(Variant::STRING,"function"),PropertyInfo(Variant::STRING_ARRAY,"args")) );
+ ADD_SIGNAL( MethodInfo("script_add_function_request",PropertyInfo(Variant::OBJECT,"obj"),PropertyInfo(Variant::STRING,"function"),PropertyInfo(Variant::POOL_STRING_ARRAY,"args")) );
ADD_SIGNAL( MethodInfo("resource_saved",PropertyInfo(Variant::OBJECT,"obj")) );
}
+static Node* _resource_get_edited_scene() {
+
+ return EditorNode::get_singleton()->get_edited_scene();
+}
+
EditorNode::EditorNode() {
+ Resource::_get_local_scene_func=_resource_get_edited_scene;
+
+ VisualServer::get_singleton()->textures_keep_original(true);
+
EditorHelp::generate_doc(); //before any editor classes are crated
SceneState::set_disable_placeholders(true);
editor_initialize_certificates(); //for asset sharing
@@ -5398,7 +5423,7 @@ EditorNode::EditorNode() {
FileAccess::set_backup_save(true);
- PathRemap::get_singleton()->clear_remaps();; //editor uses no remaps
+ PathRemap::get_singleton()->clear_remaps(); //editor uses no remaps
TranslationServer::get_singleton()->set_enabled(false);
// load settings
if (!EditorSettings::get_singleton())
@@ -5406,7 +5431,7 @@ EditorNode::EditorNode() {
bool use_single_dock_column = false;
{
- int dpi_mode = EditorSettings::get_singleton()->get("global/hidpi_mode");
+ int dpi_mode = EditorSettings::get_singleton()->get("interface/hidpi_mode");
if (dpi_mode==0) {
editor_set_scale( OS::get_singleton()->get_screen_dpi(0) > 150 && OS::get_singleton()->get_screen_size(OS::get_singleton()->get_current_screen()).x>2000 ? 2.0 : 1.0 );
@@ -5425,9 +5450,9 @@ EditorNode::EditorNode() {
ResourceLoader::set_abort_on_missing_resources(false);
- FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"));
- EditorFileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"));
- EditorFileDialog::set_default_display_mode((EditorFileDialog::DisplayMode)EditorSettings::get_singleton()->get("file_dialog/display_mode").operator int());
+ FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files"));
+ EditorFileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files"));
+ EditorFileDialog::set_default_display_mode((EditorFileDialog::DisplayMode)EditorSettings::get_singleton()->get("filesystem/file_dialog/display_mode").operator int());
ResourceLoader::set_error_notify_func(this,_load_error_notify);
ResourceLoader::set_dependency_error_notify_func(this,_dependency_error_report);
@@ -5458,11 +5483,11 @@ EditorNode::EditorNode() {
editor_import_export->load_config();
- GLOBAL_DEF("editor/main_run_args","$exec -path $path -scene $scene $main_scene");
+ GLOBAL_DEF("editor/main_run_args","$scene");
- ObjectTypeDB::set_type_enabled("CollisionShape",true);
- ObjectTypeDB::set_type_enabled("CollisionShape2D",true);
- ObjectTypeDB::set_type_enabled("CollisionPolygon2D",true);
+ ClassDB::set_class_enabled("CollisionShape",true);
+ ClassDB::set_class_enabled("CollisionShape2D",true);
+ ClassDB::set_class_enabled("CollisionPolygon2D",true);
Control *theme_base = memnew( Control );
add_child(theme_base);
@@ -5493,7 +5518,7 @@ EditorNode::EditorNode() {
#if 0
PanelContainer *top_dark_panel = memnew( PanelContainer );
Ref<StyleBoxTexture> top_dark_sb;
- top_dark_sb.instance();;
+ top_dark_sb.instance();
top_dark_sb->set_texture(theme->get_icon("PanelTop","EditorIcons"));
for(int i=0;i<4;i++) {
top_dark_sb->set_margin_size(Margin(i),3);
@@ -5513,7 +5538,7 @@ EditorNode::EditorNode() {
menu_hb = memnew( HBoxContainer );
main_vbox->add_child(menu_hb);
-// top_dark_vb->add_child(scene_tabs);
+ //top_dark_vb->add_child(scene_tabs);
//left
left_l_hsplit = memnew( HSplitContainer );
main_vbox->add_child(left_l_hsplit);
@@ -5615,14 +5640,14 @@ EditorNode::EditorNode() {
dock_select = memnew( Control );
dock_select->set_custom_minimum_size(Size2(128,64)*EDSCALE);
- dock_select->connect("input_event",this,"_dock_select_input");
+ dock_select->connect("gui_input",this,"_dock_select_input");
dock_select->connect("draw",this,"_dock_select_draw");
- dock_select->connect("mouse_exit",this,"_dock_popup_exit");
+ dock_select->connect("mouse_exited",this,"_dock_popup_exit");
dock_select->set_v_size_flags(Control::SIZE_EXPAND_FILL);
dock_vb->add_child(dock_select);
- dock_select_popoup->set_child_rect(dock_vb);
+
dock_select_popoup->set_as_minsize();
dock_select_rect_over=-1;
dock_popup_selected=-1;
@@ -5661,7 +5686,7 @@ EditorNode::EditorNode() {
scene_tabs=memnew( Tabs );
scene_tabs->add_tab("unsaved");
scene_tabs->set_tab_align(Tabs::ALIGN_CENTER);
- scene_tabs->set_tab_close_display_policy( (bool(EDITOR_DEF("global/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY) );
+ scene_tabs->set_tab_close_display_policy( (bool(EDITOR_DEF("interface/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY) );
scene_tabs->connect("tab_changed",this,"_scene_tab_changed");
scene_tabs->connect("right_button_pressed",this,"_scene_tab_script_edited");
scene_tabs->connect("tab_close", this, "_scene_tab_closed");
@@ -5672,6 +5697,7 @@ EditorNode::EditorNode() {
scene_root_parent->set_custom_minimum_size(Size2(0,80)*EDSCALE);
+
//Ref<StyleBox> sp = scene_root_parent->get_stylebox("panel","TabContainer");
//scene_root_parent->add_style_override("panel",sp);
@@ -5685,16 +5711,18 @@ EditorNode::EditorNode() {
scene_root = memnew( Viewport );
+ scene_root->set_disable_3d(true);
+
//scene_root_base->add_child(scene_root);
//scene_root->set_meta("_editor_disable_input",true);
- VisualServer::get_singleton()->viewport_set_hide_scenario(scene_root->get_viewport(),true);
+ VisualServer::get_singleton()->viewport_set_hide_scenario(scene_root->get_viewport_rid(),true);
scene_root->set_disable_input(true);
scene_root->set_as_audio_listener_2d(true);
- scene_root->set_size_override(true,Size2(Globals::get_singleton()->get("display/width"),Globals::get_singleton()->get("display/height")));
+ //scene_root->set_size_override(true,Size2(GlobalConfig::get_singleton()->get("display/width"),GlobalConfig::get_singleton()->get("display/height")));
-// scene_root->set_world_2d( Ref<World2D>( memnew( World2D )) );
+ //scene_root->set_world_2d( Ref<World2D>( memnew( World2D )) );
viewport = memnew( VBoxContainer );
@@ -5705,6 +5733,7 @@ EditorNode::EditorNode() {
scene_root_parent->add_child(viewport);
+
PanelContainer *top_region = memnew( PanelContainer );
top_region->add_style_override("panel",gui_base->get_stylebox("hover","Button"));
HBoxContainer *left_menu_hb = memnew( HBoxContainer );
@@ -5734,6 +5763,7 @@ EditorNode::EditorNode() {
ED_SHORTCUT("editor/next_tab", TTR("Next tab"), KEY_MASK_CMD+KEY_TAB);
ED_SHORTCUT("editor/prev_tab", TTR("Previous tab"), KEY_MASK_CMD+KEY_MASK_SHIFT+KEY_TAB);
+ ED_SHORTCUT("editor/filter_files", TTR("Filter Files.."), KEY_MASK_ALT+KEY_MASK_CMD+KEY_P);
file_menu->set_tooltip(TTR("Operations with scene files."));
@@ -5753,7 +5783,6 @@ EditorNode::EditorNode() {
p->add_separator();
p->add_shortcut(ED_SHORTCUT("editor/quick_open_scene",TTR("Quick Open Scene.."),KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_O),FILE_QUICK_OPEN_SCENE);
p->add_shortcut(ED_SHORTCUT("editor/quick_open_script",TTR("Quick Open Script.."),KEY_MASK_ALT+KEY_MASK_CMD+KEY_O),FILE_QUICK_OPEN_SCRIPT);
- p->add_shortcut(ED_SHORTCUT("editor/quick_filter_files",TTR("Quick Filter Files.."),KEY_MASK_ALT+KEY_MASK_CMD+KEY_P),FILE_QUICK_OPEN_FILE);
p->add_separator();
PopupMenu *pm_export = memnew(PopupMenu );
@@ -5764,11 +5793,11 @@ EditorNode::EditorNode() {
pm_export->add_separator();
pm_export->add_shortcut(ED_SHORTCUT("editor/convert_to_MeshLibrary", TTR("MeshLibrary..")), FILE_EXPORT_MESH_LIBRARY);
pm_export->add_shortcut(ED_SHORTCUT("editor/convert_to_TileSet", TTR("TileSet..")), FILE_EXPORT_TILESET);
- pm_export->connect("item_pressed",this,"_menu_option");
+ pm_export->connect("id_pressed",this,"_menu_option");
p->add_separator();
- p->add_item(TTR("Undo"),EDIT_UNDO,KEY_MASK_CMD+KEY_Z);
- p->add_item(TTR("Redo"),EDIT_REDO,KEY_MASK_CMD+KEY_MASK_SHIFT+KEY_Z);
+ p->add_shortcut(ED_SHORTCUT("editor/undo", TTR("Undo"),KEY_MASK_CMD+KEY_Z),EDIT_UNDO,true);
+ p->add_shortcut(ED_SHORTCUT("editor/redo", TTR("Redo"),KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_Z),EDIT_REDO,true);
p->add_separator();
p->add_item(TTR("Run Script"),FILE_RUN_SCRIPT,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_R);
p->add_separator();
@@ -5786,7 +5815,7 @@ EditorNode::EditorNode() {
recent_scenes = memnew( PopupMenu );
recent_scenes->set_name("RecentScenes");
p->add_child(recent_scenes);
- recent_scenes->connect("item_pressed",this,"_open_recent_scene");
+ recent_scenes->connect("id_pressed",this,"_open_recent_scene");
{
Control *sp = memnew( Control );
@@ -5811,7 +5840,7 @@ EditorNode::EditorNode() {
#if 0
node_menu = memnew( MenuButton );
node_menu->set_text("Node");
- node_menu->set_pos( Point2( 50,0) );;
+ node_menu->set_pos( Point2( 50,0) );
menu_panel->add_child( node_menu );
p=node_menu->get_popup();
@@ -5843,7 +5872,7 @@ EditorNode::EditorNode() {
left_menu_hb->add_child( import_menu );
p=import_menu->get_popup();
- p->connect("item_pressed",this,"_menu_option");
+ p->connect("id_pressed",this,"_menu_option");
tool_menu = memnew( MenuButton );
tool_menu->set_tooltip(TTR("Miscellaneous project or scene-wide tools."));
@@ -5853,7 +5882,7 @@ EditorNode::EditorNode() {
left_menu_hb->add_child( tool_menu );
p=tool_menu->get_popup();
- p->connect("item_pressed",this,"_menu_option");
+ p->connect("id_pressed",this,"_menu_option");
p->add_item(TTR("Orphan Resource Explorer"),TOOLS_ORPHAN_RESOURCES);
export_button = memnew( ToolButton );
@@ -5872,7 +5901,7 @@ EditorNode::EditorNode() {
play_cc = memnew( CenterContainer );
- play_cc->set_ignore_mouse(true);
+ play_cc->set_mouse_filter(Control::MOUSE_FILTER_IGNORE);
gui_base->add_child( play_cc );
play_cc->set_area_as_parent_rect();
play_cc->set_anchor_and_margin(MARGIN_BOTTOM,Control::ANCHOR_BEGIN,10);
@@ -5923,11 +5952,11 @@ EditorNode::EditorNode() {
native_play_button->set_text("NTV");
menu_hb->add_child(native_play_button);
native_play_button->hide();
- native_play_button->get_popup()->connect("item_pressed",this,"_run_in_device");
+ native_play_button->get_popup()->connect("id_pressed",this,"_run_in_device");
run_native->connect("native_run",this,"_menu_option",varray(RUN_PLAY_NATIVE));
-// VSeparator *s1 = memnew( VSeparator );
-// play_hb->add_child(s1);
+ //VSeparator *s1 = memnew( VSeparator );
+ //play_hb->add_child(s1);
play_scene_button = memnew( ToolButton );
play_hb->add_child(play_scene_button);
@@ -5957,6 +5986,7 @@ EditorNode::EditorNode() {
debug_button->set_tooltip(TTR("Debug options"));
p=debug_button->get_popup();
+ p->set_hide_on_item_selection(false);
p->add_check_item(TTR("Deploy with Remote Debug"),RUN_DEPLOY_REMOTE_DEBUG);
p->set_item_tooltip(p->get_item_count()-1,TTR("When exporting or deploying, the resulting executable will attempt to connect to the IP of this computer in order to be debugged."));
p->add_check_item(TTR("Small Deploy with Network FS"),RUN_FILE_SERVER);
@@ -5971,7 +6001,7 @@ EditorNode::EditorNode() {
p->set_item_tooltip(p->get_item_count()-1,TTR("When this option is turned on, any changes made to the scene in the editor will be replicated in the running game.\nWhen used remotely on a device, this is more efficient with network filesystem."));
p->add_check_item(TTR("Sync Script Changes"),RUN_RELOAD_SCRIPTS);
p->set_item_tooltip(p->get_item_count()-1,TTR("When this option is turned on, any script that is saved will be reloaded on the running game.\nWhen used remotely on a device, this is more efficient with network filesystem."));
- p->connect("item_pressed",this,"_menu_option");
+ p->connect("id_pressed",this,"_menu_option");
/*
run_settings_button = memnew( ToolButton );
@@ -6015,7 +6045,7 @@ EditorNode::EditorNode() {
audio_vu->set_max(24);
audio_vu->set_min(-80);
audio_vu->set_step(0.01);
- audio_vu->set_val(0);
+ audio_vu->set_value(0);
{
Control *sp = memnew( Control );
@@ -6045,7 +6075,7 @@ EditorNode::EditorNode() {
editor_layouts = memnew( PopupMenu );
editor_layouts->set_name("Layouts");
p->add_child(editor_layouts);
- editor_layouts->connect("item_pressed",this,"_layout_menu_option");
+ editor_layouts->connect("id_pressed",this,"_layout_menu_option");
p->add_submenu_item(TTR("Editor Layout"), "Layouts");
p->add_shortcut(ED_SHORTCUT("editor/fullscreen_mode",TTR("Toggle Fullscreen"),KEY_MASK_SHIFT|KEY_F11),SETTINGS_TOGGLE_FULLSCREN);
@@ -6157,7 +6187,7 @@ EditorNode::EditorNode() {
prop_editor_hb->add_child(resource_save_button);
resource_save_button->get_popup()->add_item(TTR("Save"),RESOURCE_SAVE);
resource_save_button->get_popup()->add_item(TTR("Save As.."),RESOURCE_SAVE_AS);
- resource_save_button->get_popup()->connect("item_pressed",this,"_menu_option");
+ resource_save_button->get_popup()->connect("id_pressed",this,"_menu_option");
resource_save_button->set_focus_mode(Control::FOCUS_NONE);
resource_save_button->set_disabled(true);
@@ -6185,7 +6215,7 @@ EditorNode::EditorNode() {
editor_history_menu->set_icon( gui_base->get_icon("History","EditorIcons"));
prop_editor_hb->add_child(editor_history_menu);
editor_history_menu->connect("about_to_show",this,"_prepare_history");
- editor_history_menu->get_popup()->connect("item_pressed",this,"_select_history");
+ editor_history_menu->get_popup()->connect("id_pressed",this,"_select_history");
prop_editor_hb = memnew( HBoxContainer ); //again...
@@ -6250,21 +6280,21 @@ EditorNode::EditorNode() {
dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(node_dock);
}
- scenes_dock = memnew( FileSystemDock(this) );
- scenes_dock->set_name(TTR("FileSystem"));
- scenes_dock->set_display_mode(int(EditorSettings::get_singleton()->get("filesystem_dock/display_mode")));
+ filesystem_dock = memnew( FileSystemDock(this) );
+ filesystem_dock->set_name(TTR("FileSystem"));
+ filesystem_dock->set_display_mode(int(EditorSettings::get_singleton()->get("docks/filesystem/display_mode")));
if (use_single_dock_column) {
- dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(scenes_dock);
+ dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(filesystem_dock);
left_r_vsplit->hide();
dock_slot[DOCK_SLOT_LEFT_UR]->hide();
dock_slot[DOCK_SLOT_LEFT_BR]->hide();
} else {
- dock_slot[DOCK_SLOT_LEFT_UR]->add_child(scenes_dock);
+ dock_slot[DOCK_SLOT_LEFT_UR]->add_child(filesystem_dock);
}
- //prop_pallete->add_child(scenes_dock);
- scenes_dock->connect("open",this,"open_request");
- scenes_dock->connect("instance",this,"_instance_request");
+ //prop_pallete->add_child(filesystem_dock);
+ filesystem_dock->connect("open",this,"open_request");
+ filesystem_dock->connect("instance",this,"_instance_request");
const String docks_section = "docks";
@@ -6313,8 +6343,8 @@ EditorNode::EditorNode() {
bottom_pc->add_child(bottom_hb);*/
-// center_vb->add_child( log->get_button() );
-// log->get_button()->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ //center_vb->add_child( log->get_button() );
+ //log->get_button()->set_h_size_flags(Control::SIZE_EXPAND_FILL);
//progress_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -6329,7 +6359,7 @@ EditorNode::EditorNode() {
animation_menu->set_focus_mode(Control::FOCUS_NONE);
menu_panel->add_child(animation_menu);
animation_menu->set_icon(gui_base->get_icon("Animation","EditorIcons"));
- animation_menu->connect("pressed",this,"_animation_visibility_toggle");;
+ animation_menu->connect("pressed",this,"_animation_visibility_toggle");
*/
@@ -6338,9 +6368,7 @@ EditorNode::EditorNode() {
- call_dialog = memnew( CallDialog );
- call_dialog->hide();
- gui_base->add_child( call_dialog );
+
@@ -6364,7 +6392,7 @@ EditorNode::EditorNode() {
-// optimized_save = memnew( OptimizedSaveDialog(&editor_data) );
+ //optimized_save = memnew( OptimizedSaveDialog(&editor_data) );
//gui_base->add_child(optimized_save);
//optimized_save->connect("confirmed",this,"_save_optimized");
@@ -6421,11 +6449,11 @@ EditorNode::EditorNode() {
about->get_ok()->set_text(TTR("Thanks!"));
about->set_hide_on_ok(true);
Label *about_text = memnew( Label );
- about_text->set_text(VERSION_FULL_NAME"\n(c) 2008-2016 Juan Linietsky, Ariel Manzur.\n");
+ about_text->set_text(VERSION_FULL_NAME"\n(c) 2008-2017 Juan Linietsky, Ariel Manzur.\n");
about_text->set_pos(Point2(gui_base->get_icon("Logo","EditorIcons")->get_size().width+30,20));
gui_base->add_child(about);
about->add_child(about_text);
- TextureFrame *logo = memnew( TextureFrame );
+ TextureRect *logo = memnew( TextureRect );
about->add_child(logo);
logo->set_pos(Point2(20,20));
logo->set_texture(gui_base->get_icon("Logo","EditorIcons") );
@@ -6496,11 +6524,11 @@ EditorNode::EditorNode() {
- file_menu->get_popup()->connect("item_pressed", this,"_menu_option");
- object_menu->get_popup()->connect("item_pressed", this,"_menu_option");
+ file_menu->get_popup()->connect("id_pressed", this,"_menu_option");
+ object_menu->get_popup()->connect("id_pressed", this,"_menu_option");
- update_menu->get_popup()->connect("item_pressed", this,"_menu_option");
- settings_menu->get_popup()->connect("item_pressed", this,"_menu_option");
+ update_menu->get_popup()->connect("id_pressed", this,"_menu_option");
+ settings_menu->get_popup()->connect("id_pressed", this,"_menu_option");
file->connect("file_selected", this,"_dialog_action");
@@ -6517,20 +6545,20 @@ EditorNode::EditorNode() {
Ref<EditorSceneImportPlugin> _scene_import = memnew(EditorSceneImportPlugin(this) );
Ref<EditorSceneImporterCollada> _collada_import = memnew( EditorSceneImporterCollada);
_scene_import->add_importer(_collada_import);
-// Ref<EditorSceneImporterFBXConv> _fbxconv_import = memnew( EditorSceneImporterFBXConv);
-// _scene_import->add_importer(_fbxconv_import);
+ //Ref<EditorSceneImporterFBXConv> _fbxconv_import = memnew( EditorSceneImporterFBXConv);
+ //_scene_import->add_importer(_fbxconv_import);
editor_import_export->add_import_plugin( _scene_import);
// TODO: This plugin has no code, it should be either implemented or dropped (GH-3667)
// editor_import_export->add_import_plugin( Ref<EditorSceneAnimationImportPlugin>( memnew(EditorSceneAnimationImportPlugin(this))));
editor_import_export->add_import_plugin( Ref<EditorMeshImportPlugin>( memnew(EditorMeshImportPlugin(this))));
editor_import_export->add_import_plugin( Ref<EditorFontImportPlugin>( memnew(EditorFontImportPlugin(this))));
- editor_import_export->add_import_plugin( Ref<EditorSampleImportPlugin>( memnew(EditorSampleImportPlugin(this))));
+// editor_import_export->add_import_plugin( Ref<EditorSampleImportPlugin>( memnew(EditorSampleImportPlugin(this))));
editor_import_export->add_import_plugin( Ref<EditorTranslationImportPlugin>( memnew(EditorTranslationImportPlugin(this))));
editor_import_export->add_import_plugin( Ref<EditorBitMaskImportPlugin>( memnew(EditorBitMaskImportPlugin(this))));
editor_import_export->add_export_plugin( Ref<EditorTextureExportPlugin>( memnew(EditorTextureExportPlugin)));
- editor_import_export->add_export_plugin( Ref<EditorSampleExportPlugin>( memnew(EditorSampleExportPlugin)));
+// editor_import_export->add_export_plugin( Ref<EditorSampleExportPlugin>( memnew(EditorSampleExportPlugin)));
editor_import_export->add_export_plugin( Ref<EditorSceneExportPlugin>( memnew(EditorSceneExportPlugin)));
@@ -6539,6 +6567,9 @@ EditorNode::EditorNode() {
add_editor_plugin( memnew( SpatialEditorPlugin(this) ) );
add_editor_plugin( memnew( ScriptEditorPlugin(this) ) );
+
+ EditorAudioBuses *audio_bus_editor = EditorAudioBuses::register_editor();
+
ScriptTextEditor::register_editor(); //register one for text scripts
if (StreamPeerSSL::is_available()) {
@@ -6549,43 +6580,46 @@ EditorNode::EditorNode() {
//more visually meaningful to have this later
raise_bottom_panel_item(AnimationPlayerEditor::singleton);
- add_editor_plugin( memnew( ShaderGraphEditorPlugin(this,true) ) );
+ add_editor_plugin( memnew( ShaderEditorPlugin(this) ) );
+/* add_editor_plugin( memnew( ShaderGraphEditorPlugin(this,true) ) );
add_editor_plugin( memnew( ShaderGraphEditorPlugin(this,false) ) );
- add_editor_plugin( memnew( ShaderEditorPlugin(this,true) ) );
- add_editor_plugin( memnew( ShaderEditorPlugin(this,false) ) );
+
+ add_editor_plugin( memnew( ShaderEditorPlugin(this,false) ) );*/
add_editor_plugin( memnew( CameraEditorPlugin(this) ) );
- add_editor_plugin( memnew( SampleEditorPlugin(this) ) );
- add_editor_plugin( memnew( SampleLibraryEditorPlugin(this) ) );
+// add_editor_plugin( memnew( SampleEditorPlugin(this) ) );
+// add_editor_plugin( memnew( SampleLibraryEditorPlugin(this) ) );
add_editor_plugin( memnew( ThemeEditorPlugin(this) ) );
add_editor_plugin( memnew( MultiMeshEditorPlugin(this) ) );
add_editor_plugin( memnew( MeshInstanceEditorPlugin(this) ) );
add_editor_plugin( memnew( AnimationTreeEditorPlugin(this) ) );
//add_editor_plugin( memnew( SamplePlayerEditorPlugin(this) ) ); - this is kind of useless at this point
- add_editor_plugin( memnew( MeshLibraryEditorPlugin(this) ) );
+ //add_editor_plugin( memnew( MeshLibraryEditorPlugin(this) ) );
//add_editor_plugin( memnew( StreamEditorPlugin(this) ) );
add_editor_plugin( memnew( StyleBoxEditorPlugin(this) ) );
- add_editor_plugin( memnew( ParticlesEditorPlugin(this) ) );
+ //add_editor_plugin( memnew( ParticlesEditorPlugin(this) ) );
add_editor_plugin( memnew( ResourcePreloaderEditorPlugin(this) ) );
add_editor_plugin( memnew( ItemListEditorPlugin(this) ) );
//add_editor_plugin( memnew( RichTextEditorPlugin(this) ) );
- add_editor_plugin( memnew( CollisionPolygonEditorPlugin(this) ) );
+ //add_editor_plugin( memnew( CollisionPolygonEditorPlugin(this) ) );
add_editor_plugin( memnew( CollisionPolygon2DEditorPlugin(this) ) );
add_editor_plugin( memnew( TileSetEditorPlugin(this) ) );
add_editor_plugin( memnew( TileMapEditorPlugin(this) ) );
add_editor_plugin( memnew( SpriteFramesEditorPlugin(this) ) );
add_editor_plugin( memnew( TextureRegionEditorPlugin(this) ) );
add_editor_plugin( memnew( Particles2DEditorPlugin(this) ) );
+ add_editor_plugin( memnew( GIProbeEditorPlugin(this) ) );
add_editor_plugin( memnew( Path2DEditorPlugin(this) ) );
- add_editor_plugin( memnew( PathEditorPlugin(this) ) );
- add_editor_plugin( memnew( BakedLightEditorPlugin(this) ) );
+ //add_editor_plugin( memnew( PathEditorPlugin(this) ) );
+ //add_editor_plugin( memnew( BakedLightEditorPlugin(this) ) );
add_editor_plugin( memnew( Polygon2DEditorPlugin(this) ) );
add_editor_plugin( memnew( LightOccluder2DEditorPlugin(this) ) );
add_editor_plugin( memnew( NavigationPolygonEditorPlugin(this) ) );
add_editor_plugin( memnew( ColorRampEditorPlugin(this) ) );
add_editor_plugin( memnew( CollisionShape2DEditorPlugin(this) ) );
add_editor_plugin( memnew( TextureEditorPlugin(this) ) );
- add_editor_plugin( memnew( MaterialEditorPlugin(this) ) );
- add_editor_plugin( memnew( MeshEditorPlugin(this) ) );
+ add_editor_plugin( memnew( AudioBusesEditorPlugin(audio_bus_editor) ) );
+ //add_editor_plugin( memnew( MaterialEditorPlugin(this) ) );
+ //add_editor_plugin( memnew( MeshEditorPlugin(this) ) );
for(int i=0;i<EditorPlugins::get_plugin_count();i++)
add_editor_plugin( EditorPlugins::create(i,this) );
@@ -6594,18 +6628,18 @@ EditorNode::EditorNode() {
plugin_init_callbacks[i]();
}
- resource_preview->add_preview_generator( Ref<EditorTexturePreviewPlugin>( memnew(EditorTexturePreviewPlugin )));
+ /*resource_preview->add_preview_generator( Ref<EditorTexturePreviewPlugin>( memnew(EditorTexturePreviewPlugin )));
resource_preview->add_preview_generator( Ref<EditorPackedScenePreviewPlugin>( memnew(EditorPackedScenePreviewPlugin )));
resource_preview->add_preview_generator( Ref<EditorMaterialPreviewPlugin>( memnew(EditorMaterialPreviewPlugin )));
resource_preview->add_preview_generator( Ref<EditorScriptPreviewPlugin>( memnew(EditorScriptPreviewPlugin )));
resource_preview->add_preview_generator( Ref<EditorSamplePreviewPlugin>( memnew(EditorSamplePreviewPlugin )));
resource_preview->add_preview_generator( Ref<EditorMeshPreviewPlugin>( memnew(EditorMeshPreviewPlugin )));
resource_preview->add_preview_generator( Ref<EditorBitmapPreviewPlugin>( memnew(EditorBitmapPreviewPlugin )));
-
+*/
circle_step_msec=OS::get_singleton()->get_ticks_msec();
- circle_step_frame=OS::get_singleton()->get_frames_drawn();
+ circle_step_frame=Engine::get_singleton()->get_frames_drawn();
circle_step=0;
_rebuild_import_menu();
@@ -6613,7 +6647,7 @@ EditorNode::EditorNode() {
editor_plugin_screen=NULL;
editor_plugins_over = memnew(EditorPluginList);
-// force_top_viewport(true);
+ //force_top_viewport(true);
_edit_current();
current=NULL;
@@ -6621,8 +6655,8 @@ EditorNode::EditorNode() {
Physics2DServer::get_singleton()->set_active(false); // no physics by default if editor
ScriptServer::set_scripting_enabled(false); // no scripting by default if editor
- Globals::get_singleton()->set("debug/indicators_enabled",true);
- Globals::get_singleton()->set("render/room_cull_enabled",false);
+
+ //GlobalConfig::get_singleton()->set("render/room_cull_enabled",false);
reference_resource_mem=true;
save_external_resources_mem=true;
@@ -6636,7 +6670,7 @@ EditorNode::EditorNode() {
//store project name in ssettings
String project_name;
//figure it out from path
- project_name=Globals::get_singleton()->get_resource_path().replace("\\","/");
+ project_name=GlobalConfig::get_singleton()->get_resource_path().replace("\\","/");
print_line("path: "+project_name);
if (project_name.length() && project_name[project_name.length()-1]=='/')
project_name=project_name.substr(0,project_name.length()-1);
@@ -6644,7 +6678,7 @@ EditorNode::EditorNode() {
project_name=project_name.replace("/","::");
if (project_name!="") {
- EditorSettings::get_singleton()->set("projects/"+project_name,Globals::get_singleton()->get_resource_path());
+ EditorSettings::get_singleton()->set("projects/"+project_name,GlobalConfig::get_singleton()->get_resource_path());
EditorSettings::get_singleton()->raise_order("projects/"+project_name);
EditorSettings::get_singleton()->save();
}
@@ -6675,15 +6709,16 @@ EditorNode::EditorNode() {
set_process_unhandled_input(true);
_playing_edited=false;
-// Panel *errors = memnew( Panel );
+ //Panel *errors = memnew( Panel );
load_errors = memnew( RichTextLabel );
-// load_errors->set_readonly(true);
+ //load_errors->set_readonly(true);
load_error_dialog = memnew( AcceptDialog );
load_error_dialog->add_child(load_errors);
load_error_dialog->set_title(TTR("Load Errors"));
- load_error_dialog->set_child_rect(load_errors);
+ //load_error_dialog->set_child_rect(load_errors);
gui_base->add_child(load_error_dialog);
+
//EditorImport::add_importer( Ref<EditorImporterCollada>( memnew(EditorImporterCollada )));
EditorFileSystem::get_singleton()->connect("sources_changed",this,"_sources_changed");
@@ -6696,7 +6731,7 @@ EditorNode::EditorNode() {
theme_base->get_theme()->get_icon_list(ei,&tl);
for(List<StringName>::Element *E=tl.front();E;E=E->next()) {
- if (!ObjectTypeDB::type_exists(E->get()))
+ if (!ClassDB::class_exists(E->get()))
continue;
icon_type_cache[E->get()]=theme_base->get_theme()->get_icon(E->get(),ei);
}
@@ -6712,8 +6747,8 @@ EditorNode::EditorNode() {
pick_main_scene->get_ok()->set_text("Select");
pick_main_scene->connect("confirmed",this,"_menu_option",varray(SETTINGS_PICK_MAIN_SCENE));
-// Ref<ImageTexture> it = gui_base->get_icon("logo","Icons");
-// OS::get_singleton()->set_icon( it->get_data() );
+ //Ref<ImageTexture> it = gui_base->get_icon("logo","Icons");
+ //OS::get_singleton()->set_icon( it->get_data() );
for(int i=0;i<_init_callbacks.size();i++)
_init_callbacks[i]();
@@ -6725,7 +6760,7 @@ EditorNode::EditorNode() {
{
_initializing_addons=true;
- Vector<String> addons = Globals::get_singleton()->get("editor_plugins/enabled");
+ Vector<String> addons = GlobalConfig::get_singleton()->get("editor_plugins/enabled");
for(int i=0;i<addons.size();i++) {
set_addon_plugin_enabled(addons[i],true);
@@ -6774,12 +6809,12 @@ void EditorPluginList::edit(Object* p_object) {
}
-bool EditorPluginList::forward_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) {
+bool EditorPluginList::forward_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) {
bool discard = false;
for (int i = 0; i < plugins_list.size(); i++) {
- if (plugins_list[i]->forward_canvas_input_event(p_canvas_xform,p_event)) {
+ if (plugins_list[i]->forward_canvas_gui_input(p_canvas_xform,p_event)) {
discard = true;
}
}
@@ -6787,11 +6822,11 @@ bool EditorPluginList::forward_input_event(const Matrix32& p_canvas_xform,const
return discard;
}
-bool EditorPluginList::forward_spatial_input_event(Camera* p_camera, const InputEvent& p_event) {
+bool EditorPluginList::forward_spatial_gui_input(Camera* p_camera, const InputEvent& p_event) {
bool discard = false;
for (int i = 0; i < plugins_list.size(); i++) {
- if (plugins_list[i]->forward_spatial_input_event(p_camera, p_event)) {
+ if (plugins_list[i]->forward_spatial_gui_input(p_camera, p_event)) {
discard = true;
}
}
@@ -6799,7 +6834,7 @@ bool EditorPluginList::forward_spatial_input_event(Camera* p_camera, const Input
return discard;
}
-void EditorPluginList::forward_draw_over_canvas(const Matrix32& p_canvas_xform,Control* p_canvas) {
+void EditorPluginList::forward_draw_over_canvas(const Transform2D& p_canvas_xform,Control* p_canvas) {
for (int i = 0; i < plugins_list.size(); i++) {
plugins_list[i]->forward_draw_over_canvas(p_canvas_xform,p_canvas);
diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h
index 6392b96f8f..fbba7ae7a9 100644
--- a/tools/editor/editor_node.h
+++ b/tools/editor/editor_node.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -79,7 +79,7 @@
#include "fileserver/editor_file_server.h"
#include "editor_resource_preview.h"
-
+#include "scene/gui/viewport_container.h"
#include "progress_dialog.h"
@@ -101,7 +101,7 @@ class EditorPluginList;
class EditorNode : public Node {
- OBJ_TYPE( EditorNode, Node );
+ GDCLASS( EditorNode, Node );
public:
enum DockSlot {
@@ -139,7 +139,6 @@ private:
FILE_OPEN_OLD_SCENE,
FILE_QUICK_OPEN_SCENE,
FILE_QUICK_OPEN_SCRIPT,
- FILE_QUICK_OPEN_FILE,
FILE_RUN_SCRIPT,
FILE_OPEN_PREV,
FILE_CLOSE,
@@ -159,7 +158,6 @@ private:
OBJECT_COPY_PARAMS,
OBJECT_PASTE_PARAMS,
OBJECT_UNIQUE_RESOURCES,
- OBJECT_CALL_METHOD,
OBJECT_REQUEST_HELP,
RUN_PLAY,
@@ -198,7 +196,9 @@ private:
IMPORT_PLUGIN_BASE=100,
- OBJECT_METHOD_BASE=500
+ OBJECT_METHOD_BASE=500,
+
+ TOOL_MENU_BASE=1000
};
@@ -208,7 +208,7 @@ private:
//Ref<ResourceImportMetadata> scene_import_metadata;
- Control* scene_root_parent;
+ PanelContainer* scene_root_parent;
Control *gui_base;
VBoxContainer *main_vbox;
@@ -279,7 +279,7 @@ private:
PropertyEditor *property_editor;
NodeDock *node_dock;
VBoxContainer *prop_editor_vb;
- FileSystemDock *scenes_dock;
+ FileSystemDock *filesystem_dock;
EditorRunNative *run_native;
HBoxContainer *search_bar;
@@ -287,7 +287,7 @@ private:
CreateDialog *create_dialog;
- CallDialog *call_dialog;
+ //CallDialog *call_dialog;
ConfirmationDialog *confirmation;
ConfirmationDialog *import_confirmation;
ConfirmationDialog *open_recent_confirmation;
@@ -594,6 +594,22 @@ private:
void _call_build();
static int build_callback_count;
static EditorBuildCallback build_callbacks[MAX_BUILD_CALLBACKS];
+
+ bool _initializing_tool_menu;
+
+ struct ToolMenuItem {
+ String name;
+ String submenu;
+ Variant ud;
+ ObjectID handler;
+ String callback;
+ };
+
+ Vector<ToolMenuItem> tool_menu_items;
+
+ void _tool_menu_insert_item(const ToolMenuItem& p_item);
+ void _rebuild_tool_menu() const;
+
protected:
void _notification(int p_what);
static void _bind_methods();
@@ -689,7 +705,7 @@ public:
void request_instance_scene(const String &p_path);
void request_instance_scenes(const Vector<String>& p_files);
- FileSystemDock *get_scenes_dock();
+ FileSystemDock *get_filesystem_dock();
SceneTreeDock *get_scene_tree_dock();
static UndoRedo* get_undo_redo() { return &singleton->editor_data.get_undo_redo(); }
@@ -756,6 +772,9 @@ public:
Variant drag_files(const Vector<String>& p_files,Control* p_from);
Variant drag_files_and_dirs(const Vector<String>& p_files,Control* p_from);
+ void add_tool_menu_item(const String& p_name, Object *p_handler, const String& p_callback, const Variant& p_ud = Variant());
+ void add_tool_submenu_item(const String& p_name, PopupMenu *p_submenu);
+ void remove_tool_menu_item(const String& p_name);
EditorNode();
~EditorNode();
@@ -793,9 +812,9 @@ public:
void make_visible(bool p_visible);
void edit(Object *p_object);
- bool forward_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event);
- bool forward_spatial_input_event(Camera* p_camera, const InputEvent& p_event);
- void forward_draw_over_canvas(const Matrix32& p_canvas_xform,Control* p_canvas);
+ bool forward_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event);
+ bool forward_spatial_gui_input(Camera* p_camera, const InputEvent& p_event);
+ void forward_draw_over_canvas(const Transform2D& p_canvas_xform,Control* p_canvas);
void clear();
bool empty();
diff --git a/tools/editor/editor_path.cpp b/tools/editor/editor_path.cpp
index 6b804b6a24..8cd31c4bcc 100644
--- a/tools/editor/editor_path.cpp
+++ b/tools/editor/editor_path.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,32 +28,106 @@
/*************************************************************************/
#include "editor_path.h"
+#include "editor_scale.h"
+#include "editor_node.h"
+
+void EditorPath::_add_children_to_popup(Object* p_obj,int p_depth) {
+
+ if (p_depth>8)
+ return;
+
+ List<PropertyInfo> pinfo;
+ p_obj->get_property_list(&pinfo);
+ for (List<PropertyInfo>::Element *E=pinfo.front();E;E=E->next()) {
+
+ if (!(E->get().usage&PROPERTY_USAGE_EDITOR))
+ continue;
+ if (E->get().hint!=PROPERTY_HINT_RESOURCE_TYPE)
+ continue;
+
+ Variant value = p_obj->get(E->get().name);
+ if (value.get_type()!=Variant::OBJECT)
+ continue;
+ Object *obj = value;
+ if (!obj)
+ continue;
+
+ Ref<Texture> icon;
+
+ if (has_icon(obj->get_class(),"EditorIcons"))
+ icon=get_icon(obj->get_class(),"EditorIcons");
+ else
+ icon=get_icon("Object","EditorIcons");
+
+ int index = popup->get_item_count();
+ popup->add_icon_item(icon,E->get().name.capitalize(),objects.size());
+ popup->set_item_h_offset(index,p_depth*10*EDSCALE);
+ objects.push_back(obj->get_instance_ID());
+
+ _add_children_to_popup(obj,p_depth+1);
+ }
+}
+
+void EditorPath::_gui_input(const InputEvent& p_event) {
+
+ if (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==BUTTON_LEFT && p_event.mouse_button.pressed) {
+
+
+ Object *obj = ObjectDB::get_instance(history->get_path_object( history->get_path_size()-1));
+ if (!obj)
+ return;
+
+
+
+ objects.clear();
+ popup->clear();
+ _add_children_to_popup(obj);
+ popup->set_pos( get_global_pos() + Vector2(0,get_size().height));
+ popup->set_size( Size2(get_size().width,1));
+ popup->popup();
+ }
+}
void EditorPath::_notification(int p_what) {
switch(p_what) {
+ case NOTIFICATION_MOUSE_ENTER: {
+ mouse_over=true;
+ update();
+ } break;
+ case NOTIFICATION_MOUSE_EXIT: {
+ mouse_over=false;
+ update();
+ } break;
case NOTIFICATION_DRAW: {
RID ci=get_canvas_item();
Ref<Font> label_font = get_font("font","Label");
Size2i size = get_size();
Ref<Texture> sn = get_icon("SmallNext","EditorIcons");
+ Ref<StyleBox> sb = get_stylebox("pressed","Button");
+
+
+ int ofs=sb->get_margin(MARGIN_LEFT);
+
+ if (mouse_over) {
+ draw_style_box(sb,Rect2(Point2(),get_size()));
+ }
- int ofs=5;
for(int i=0;i<history->get_path_size();i++) {
Object *obj = ObjectDB::get_instance(history->get_path_object(i));
if (!obj)
continue;
- String type = obj->get_type();
+ String type = obj->get_class();
Ref<Texture> icon;
- if (has_icon(obj->get_type(),"EditorIcons"))
- icon=get_icon(obj->get_type(),"EditorIcons");
+ if (has_icon(obj->get_class(),"EditorIcons"))
+ icon=get_icon(obj->get_class(),"EditorIcons");
else
icon=get_icon("Object","EditorIcons");
@@ -78,17 +152,17 @@ void EditorPath::_notification(int p_what) {
name=r->get_name();
if (name=="")
- name=r->get_type();
+ name=r->get_class();
} else if (obj->cast_to<Node>()) {
name=obj->cast_to<Node>()->get_name();
} else if (obj->cast_to<Resource>() && obj->cast_to<Resource>()->get_name()!="") {
name=obj->cast_to<Resource>()->get_name();
} else {
- name=obj->get_type();
+ name=obj->get_class();
}
- set_tooltip(obj->get_type());
+ set_tooltip(obj->get_class());
label_font->draw(ci,Point2i(ofs,(size.height-label_font->get_height())/2+label_font->get_ascent()),name,Color(1,1,1),left);
@@ -108,11 +182,34 @@ void EditorPath::_notification(int p_what) {
void EditorPath::update_path() {
+
update();
}
+void EditorPath::_popup_select(int p_idx) {
+
+ ERR_FAIL_INDEX(p_idx,objects.size());
+
+ Object* obj = ObjectDB::get_instance(objects[p_idx]);
+ if (!obj)
+ return;
+
+ EditorNode::get_singleton()->push_item(obj);
+}
+
+void EditorPath::_bind_methods() {
+
+ ClassDB::bind_method("_gui_input",&EditorPath::_gui_input);
+ ClassDB::bind_method("_popup_select",&EditorPath::_popup_select);
+}
+
EditorPath::EditorPath(EditorHistory *p_history) {
history=p_history;
+ mouse_over=false;
+ popup = memnew( PopupMenu );
+ popup->connect("id_pressed",this,"_popup_select");
+ add_child(popup);
+
}
diff --git a/tools/editor/editor_path.h b/tools/editor/editor_path.h
index 11e1005ba3..fd5b469d07 100644
--- a/tools/editor/editor_path.h
+++ b/tools/editor/editor_path.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -30,19 +30,27 @@
#define EDITOR_PATH_H
#include "scene/gui/control.h"
+#include "scene/gui/popup_menu.h"
#include "editor_data.h"
class EditorPath : public Control {
- OBJ_TYPE(EditorPath,Control);
+ GDCLASS(EditorPath,Control);
EditorHistory *history;
+ Vector<ObjectID> objects;
+ PopupMenu *popup;
+ bool mouse_over;
EditorPath();
+ void _popup_select(int p_idx);
+ void _gui_input(const InputEvent& p_event);
+ void _add_children_to_popup(Object* p_obj,int p_depth=0);
protected:
+ static void _bind_methods();
void _notification(int p_what);
public:
diff --git a/tools/editor/editor_plugin.cpp b/tools/editor/editor_plugin.cpp
index 4b82d5e59c..2f59b0bd07 100644
--- a/tools/editor/editor_plugin.cpp
+++ b/tools/editor/editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_plugin.h"
+
+#include "scene/gui/popup_menu.h"
#include "scene/3d/camera.h"
#include "plugins/canvas_item_editor_plugin.h"
#include "plugins/spatial_editor_plugin.h"
@@ -76,6 +78,11 @@ Control * EditorPlugin::get_editor_viewport() {
return EditorNode::get_singleton()->get_viewport();
}
+void EditorPlugin::edit_resource(const Ref<Resource>& p_resource){
+
+ EditorNode::get_singleton()->edit_resource(p_resource);
+}
+
void EditorPlugin::add_control_to_container(CustomControlContainer p_location,Control *p_control) {
switch(p_location) {
@@ -127,6 +134,24 @@ void EditorPlugin::add_control_to_container(CustomControlContainer p_location,Co
}
}
+void EditorPlugin::add_tool_menu_item(const String& p_name, Object *p_handler, const String& p_callback, const Variant& p_ud) {
+
+ //EditorNode::get_singleton()->add_tool_menu_item(p_name, p_handler, p_callback, p_ud);
+}
+
+void EditorPlugin::add_tool_submenu_item(const String& p_name, Object *p_submenu) {
+
+ ERR_FAIL_NULL(p_submenu);
+ PopupMenu *submenu = p_submenu->cast_to<PopupMenu>();
+ ERR_FAIL_NULL(submenu);
+ //EditorNode::get_singleton()->add_tool_submenu_item(p_name, submenu);
+}
+
+void EditorPlugin::remove_tool_menu_item(const String& p_name) {
+
+ //EditorNode::get_singleton()->remove_tool_menu_item(p_name);
+}
+
Ref<SpatialEditorGizmo> EditorPlugin::create_spatial_gizmo(Spatial* p_spatial) {
//??
if (get_script_instance() && get_script_instance()->has_method("create_spatial_gizmo")) {
@@ -136,15 +161,15 @@ Ref<SpatialEditorGizmo> EditorPlugin::create_spatial_gizmo(Spatial* p_spatial) {
return Ref<SpatialEditorGizmo>();
}
-bool EditorPlugin::forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) {
+bool EditorPlugin::forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) {
- if (get_script_instance() && get_script_instance()->has_method("forward_canvas_input_event")) {
- return get_script_instance()->call("forward_canvas_input_event",p_canvas_xform,p_event);
+ if (get_script_instance() && get_script_instance()->has_method("forward_canvas_gui_input")) {
+ return get_script_instance()->call("forward_canvas_gui_input",p_canvas_xform,p_event);
}
return false;
}
-void EditorPlugin::forward_draw_over_canvas(const Matrix32& p_canvas_xform,Control *p_canvas) {
+void EditorPlugin::forward_draw_over_canvas(const Transform2D& p_canvas_xform,Control *p_canvas) {
if (get_script_instance() && get_script_instance()->has_method("forward_draw_over_canvas")) {
get_script_instance()->call("forward_draw_over_canvas",p_canvas_xform,p_canvas);
@@ -155,10 +180,10 @@ void EditorPlugin::update_canvas() {
CanvasItemEditor::get_singleton()->get_viewport_control()->update();
}
-bool EditorPlugin::forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event) {
+bool EditorPlugin::forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event) {
- if (get_script_instance() && get_script_instance()->has_method("forward_spatial_input_event")) {
- return get_script_instance()->call("forward_spatial_input_event",p_camera,p_event);
+ if (get_script_instance() && get_script_instance()->has_method("forward_spatial_gui_input")) {
+ return get_script_instance()->call("forward_spatial_gui_input",p_camera,p_event);
}
return false;
@@ -248,7 +273,7 @@ void EditorPlugin::apply_changes() {
void EditorPlugin::get_breakpoints(List<String> *p_breakpoints) {
if (get_script_instance() && get_script_instance()->has_method("get_breakpoints")) {
- StringArray arr = get_script_instance()->call("get_breakpoints");
+ PoolStringArray arr = get_script_instance()->call("get_breakpoints");
for(int i=0;i<arr.size();i++)
p_breakpoints->push_back(arr[i]);
}
@@ -341,56 +366,60 @@ EditorFileSystem *EditorPlugin::get_resource_file_system() {
void EditorPlugin::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("add_control_to_container","container","control:Control"),&EditorPlugin::add_control_to_container);
- ObjectTypeDB::bind_method(_MD("add_control_to_bottom_panel:ToolButton","control:Control","title"),&EditorPlugin::add_control_to_bottom_panel);
- ObjectTypeDB::bind_method(_MD("add_control_to_dock","slot","control:Control"),&EditorPlugin::add_control_to_dock);
- ObjectTypeDB::bind_method(_MD("remove_control_from_docks","control:Control"),&EditorPlugin::remove_control_from_docks);
- ObjectTypeDB::bind_method(_MD("remove_control_from_bottom_panel","control:Control"),&EditorPlugin::remove_control_from_bottom_panel);
- ObjectTypeDB::bind_method(_MD("add_custom_type","type","base","script:Script","icon:Texture"),&EditorPlugin::add_custom_type);
- ObjectTypeDB::bind_method(_MD("remove_custom_type","type"),&EditorPlugin::remove_custom_type);
- ObjectTypeDB::bind_method(_MD("get_editor_viewport:Control"), &EditorPlugin::get_editor_viewport);
-
- ObjectTypeDB::bind_method(_MD("add_import_plugin","plugin:EditorImportPlugin"),&EditorPlugin::add_import_plugin);
- ObjectTypeDB::bind_method(_MD("remove_import_plugin","plugin:EditorImportPlugin"),&EditorPlugin::remove_import_plugin);
-
- ObjectTypeDB::bind_method(_MD("add_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::add_export_plugin);
- ObjectTypeDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::remove_export_plugin);
-
- ObjectTypeDB::bind_method(_MD("get_resource_previewer:EditorResourcePreview"),&EditorPlugin::get_resource_previewer);
- ObjectTypeDB::bind_method(_MD("get_resource_filesystem:EditorFileSystem"),&EditorPlugin::get_resource_file_system);
-
- ObjectTypeDB::bind_method(_MD("inspect_object","object","for_property"),&EditorPlugin::inspect_object,DEFVAL(String()));
- ObjectTypeDB::bind_method(_MD("update_canvas"),&EditorPlugin::update_canvas);
-
- ObjectTypeDB::bind_method(_MD("make_bottom_panel_item_visible","item:Control"), &EditorPlugin::make_bottom_panel_item_visible);
- ObjectTypeDB::bind_method(_MD("hide_bottom_panel"), &EditorPlugin::hide_bottom_panel);
-
- ObjectTypeDB::bind_method(_MD("get_base_control:Control"),&EditorPlugin::get_base_control);
- ObjectTypeDB::bind_method(_MD("get_undo_redo:UndoRedo"),&EditorPlugin::_get_undo_redo);
- ObjectTypeDB::bind_method(_MD("get_selection:EditorSelection"),&EditorPlugin::get_selection);
- ObjectTypeDB::bind_method(_MD("get_editor_settings:EditorSettings"),&EditorPlugin::get_editor_settings);
- ObjectTypeDB::bind_method(_MD("queue_save_layout"),&EditorPlugin::queue_save_layout);
-
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"forward_canvas_input_event",PropertyInfo(Variant::MATRIX32,"canvas_xform"),PropertyInfo(Variant::INPUT_EVENT,"event")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("forward_draw_over_canvas",PropertyInfo(Variant::MATRIX32,"canvas_xform"),PropertyInfo(Variant::OBJECT,"canvas:Control")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"forward_spatial_input_event",PropertyInfo(Variant::OBJECT,"camera",PROPERTY_HINT_RESOURCE_TYPE,"Camera"),PropertyInfo(Variant::INPUT_EVENT,"event")));
+ ClassDB::bind_method(_MD("add_control_to_container","container","control:Control"),&EditorPlugin::add_control_to_container);
+ ClassDB::bind_method(_MD("add_control_to_bottom_panel:ToolButton","control:Control","title"),&EditorPlugin::add_control_to_bottom_panel);
+ ClassDB::bind_method(_MD("add_control_to_dock","slot","control:Control"),&EditorPlugin::add_control_to_dock);
+ ClassDB::bind_method(_MD("remove_control_from_docks","control:Control"),&EditorPlugin::remove_control_from_docks);
+ ClassDB::bind_method(_MD("remove_control_from_bottom_panel","control:Control"),&EditorPlugin::remove_control_from_bottom_panel);
+ //ClassDB::bind_method(_MD("add_tool_menu_item", "name", "handler", "callback", "ud"),&EditorPlugin::add_tool_menu_item,DEFVAL(Variant()));
+ ClassDB::bind_method(_MD("add_tool_submenu_item", "name", "submenu:PopupMenu"),&EditorPlugin::add_tool_submenu_item);
+ //ClassDB::bind_method(_MD("remove_tool_menu_item", "name"),&EditorPlugin::remove_tool_menu_item);
+ ClassDB::bind_method(_MD("add_custom_type","type","base","script:Script","icon:Texture"),&EditorPlugin::add_custom_type);
+ ClassDB::bind_method(_MD("remove_custom_type","type"),&EditorPlugin::remove_custom_type);
+ ClassDB::bind_method(_MD("get_editor_viewport:Control"), &EditorPlugin::get_editor_viewport);
+
+ ClassDB::bind_method(_MD("add_import_plugin","plugin:EditorImportPlugin"),&EditorPlugin::add_import_plugin);
+ ClassDB::bind_method(_MD("remove_import_plugin","plugin:EditorImportPlugin"),&EditorPlugin::remove_import_plugin);
+
+ ClassDB::bind_method(_MD("add_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::add_export_plugin);
+ ClassDB::bind_method(_MD("remove_export_plugin","plugin:EditorExportPlugin"),&EditorPlugin::remove_export_plugin);
+
+ ClassDB::bind_method(_MD("get_resource_previewer:EditorResourcePreview"),&EditorPlugin::get_resource_previewer);
+ ClassDB::bind_method(_MD("get_resource_filesystem:EditorFileSystem"),&EditorPlugin::get_resource_file_system);
+
+ ClassDB::bind_method(_MD("inspect_object","object","for_property"),&EditorPlugin::inspect_object,DEFVAL(String()));
+ ClassDB::bind_method(_MD("update_canvas"),&EditorPlugin::update_canvas);
+
+ ClassDB::bind_method(_MD("make_bottom_panel_item_visible","item:Control"), &EditorPlugin::make_bottom_panel_item_visible);
+ ClassDB::bind_method(_MD("hide_bottom_panel"), &EditorPlugin::hide_bottom_panel);
+
+ ClassDB::bind_method(_MD("get_base_control:Control"),&EditorPlugin::get_base_control);
+ ClassDB::bind_method(_MD("get_undo_redo:UndoRedo"),&EditorPlugin::_get_undo_redo);
+ ClassDB::bind_method(_MD("get_selection:EditorSelection"),&EditorPlugin::get_selection);
+ ClassDB::bind_method(_MD("get_editor_settings:EditorSettings"),&EditorPlugin::get_editor_settings);
+ ClassDB::bind_method(_MD("queue_save_layout"),&EditorPlugin::queue_save_layout);
+ ClassDB::bind_method(_MD("edit_resource"),&EditorPlugin::edit_resource);
+
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"forward_canvas_gui_input",PropertyInfo(Variant::TRANSFORM2D,"canvas_xform"),PropertyInfo(Variant::INPUT_EVENT,"event")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("forward_draw_over_canvas",PropertyInfo(Variant::TRANSFORM2D,"canvas_xform"),PropertyInfo(Variant::OBJECT,"canvas:Control")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"forward_spatial_gui_input",PropertyInfo(Variant::OBJECT,"camera",PROPERTY_HINT_RESOURCE_TYPE,"Camera"),PropertyInfo(Variant::INPUT_EVENT,"event")));
MethodInfo gizmo = MethodInfo(Variant::OBJECT,"create_spatial_gizmo",PropertyInfo(Variant::OBJECT,"for_spatial:Spatial"));
gizmo.return_val.hint=PROPERTY_HINT_RESOURCE_TYPE;
gizmo.return_val.hint_string="EditorSpatialGizmo";
- ObjectTypeDB::add_virtual_method(get_type_static(),gizmo);
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::STRING,"get_name"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"has_main_screen"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("make_visible",PropertyInfo(Variant::BOOL,"visible")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("edit",PropertyInfo(Variant::OBJECT,"object")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"handles",PropertyInfo(Variant::OBJECT,"object")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::DICTIONARY,"get_state"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("set_state",PropertyInfo(Variant::DICTIONARY,"state")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("clear"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("save_external_data"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("apply_changes"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::STRING_ARRAY,"get_breakpoints"));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("set_window_layout",PropertyInfo(Variant::OBJECT,"layout",PROPERTY_HINT_RESOURCE_TYPE,"ConfigFile")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("get_window_layout",PropertyInfo(Variant::OBJECT,"layout",PROPERTY_HINT_RESOURCE_TYPE,"ConfigFile")));
+ ClassDB::add_virtual_method(get_class_static(),gizmo);
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::STRING,"get_name"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"has_main_screen"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("make_visible",PropertyInfo(Variant::BOOL,"visible")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("edit",PropertyInfo(Variant::OBJECT,"object")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"handles",PropertyInfo(Variant::OBJECT,"object")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::DICTIONARY,"get_state"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("set_state",PropertyInfo(Variant::DICTIONARY,"state")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("clear"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("save_external_data"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("apply_changes"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::POOL_STRING_ARRAY,"get_breakpoints"));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("set_window_layout",PropertyInfo(Variant::OBJECT,"layout",PROPERTY_HINT_RESOURCE_TYPE,"ConfigFile")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo("get_window_layout",PropertyInfo(Variant::OBJECT,"layout",PROPERTY_HINT_RESOURCE_TYPE,"ConfigFile")));
BIND_CONSTANT( CONTAINER_TOOLBAR );
BIND_CONSTANT( CONTAINER_SPATIAL_EDITOR_MENU );
diff --git a/tools/editor/editor_plugin.h b/tools/editor/editor_plugin.h
index 2700c49a6c..928b096859 100644
--- a/tools/editor/editor_plugin.h
+++ b/tools/editor/editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -53,7 +53,7 @@ class EditorFileSystem;
class EditorPlugin : public Node {
- OBJ_TYPE( EditorPlugin, Node );
+ GDCLASS( EditorPlugin, Node );
friend class EditorData;
UndoRedo *undo_redo;
@@ -101,11 +101,16 @@ public:
void remove_control_from_docks(Control *p_control);
void remove_control_from_bottom_panel(Control *p_control);
Control* get_editor_viewport();
+ void edit_resource(const Ref<Resource>& p_resource);
+
+ void add_tool_menu_item(const String& p_name, Object *p_handler, const String& p_callback, const Variant& p_ud = Variant());
+ void add_tool_submenu_item(const String& p_name, Object *p_submenu);
+ void remove_tool_menu_item(const String& p_name);
virtual Ref<SpatialEditorGizmo> create_spatial_gizmo(Spatial* p_spatial);
- virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform, const InputEvent& p_event);
- virtual void forward_draw_over_canvas(const Matrix32& p_canvas_xform,Control *p_canvas);
- virtual bool forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event);
+ virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform, const InputEvent& p_event);
+ virtual void forward_draw_over_canvas(const Transform2D& p_canvas_xform,Control *p_canvas);
+ virtual bool forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event);
virtual String get_name() const;
virtual bool has_main_screen() const;
virtual void make_visible(bool p_visible);
diff --git a/tools/editor/editor_plugin_settings.cpp b/tools/editor/editor_plugin_settings.cpp
index 5342007e6d..2b6828e82f 100644
--- a/tools/editor/editor_plugin_settings.cpp
+++ b/tools/editor/editor_plugin_settings.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_plugin_settings.h"
+
#include "scene/gui/margin_container.h"
#include "io/config_file.h"
#include "os/file_access.h"
@@ -81,7 +82,7 @@ void EditorPluginSettings::update_plugins() {
plugins.sort();
- Vector<String> active_plugins = Globals::get_singleton()->get("plugins/active");
+ Vector<String> active_plugins = GlobalConfig::get_singleton()->get("plugins/active");
for(int i=0;i<plugins.size();i++) {
@@ -171,8 +172,8 @@ void EditorPluginSettings::_plugin_activity_changed() {
void EditorPluginSettings::_bind_methods() {
- ObjectTypeDB::bind_method("update_plugins",&EditorPluginSettings::update_plugins);
- ObjectTypeDB::bind_method("_plugin_activity_changed",&EditorPluginSettings::_plugin_activity_changed);
+ ClassDB::bind_method("update_plugins",&EditorPluginSettings::update_plugins);
+ ClassDB::bind_method("_plugin_activity_changed",&EditorPluginSettings::_plugin_activity_changed);
}
EditorPluginSettings::EditorPluginSettings() {
diff --git a/tools/editor/editor_plugin_settings.h b/tools/editor/editor_plugin_settings.h
index 4a982e40e2..e24880a21d 100644
--- a/tools/editor/editor_plugin_settings.h
+++ b/tools/editor/editor_plugin_settings.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,7 +37,7 @@
class EditorPluginSettings : public VBoxContainer {
- OBJ_TYPE(EditorPluginSettings,VBoxContainer);
+ GDCLASS(EditorPluginSettings,VBoxContainer);
Button* update_list;
Tree *plugin_list;
diff --git a/tools/editor/editor_profiler.cpp b/tools/editor/editor_profiler.cpp
index 13327f0be9..94ec059ea7 100644
--- a/tools/editor/editor_profiler.cpp
+++ b/tools/editor/editor_profiler.cpp
@@ -1,4 +1,33 @@
+/*************************************************************************/
+/* editor_profiler.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#include "editor_profiler.h"
+
#include "editor_settings.h"
#include "os/os.h"
@@ -28,7 +57,7 @@ void EditorProfiler::add_frame_metric(const Metric& p_metric,bool p_final) {
if (!seeking) {
- cursor_metric_edit->set_val(frame_metrics[last_metric].frame_number);
+ cursor_metric_edit->set_value(frame_metrics[last_metric].frame_number);
if (hover_metric!=-1) {
hover_metric++;
if (hover_metric>=frame_metrics.size()) {
@@ -70,7 +99,7 @@ void EditorProfiler::clear() {
updating_frame=true;
cursor_metric_edit->set_min(0);
cursor_metric_edit->set_max(0);
- cursor_metric_edit->set_val(0);
+ cursor_metric_edit->set_value(0);
updating_frame=false;
hover_metric=-1;
seeking=false;
@@ -154,7 +183,7 @@ void EditorProfiler::_update_plot() {
}
- DVector<uint8_t>::Write wr = graph_image.write();
+ PoolVector<uint8_t>::Write wr = graph_image.write();
@@ -336,9 +365,9 @@ void EditorProfiler::_update_plot() {
}
- wr = DVector<uint8_t>::Write();
+ wr = PoolVector<uint8_t>::Write();
- Image img(w,h,0,Image::FORMAT_RGBA,graph_image);
+ Image img(w,h,0,Image::FORMAT_RGBA8,graph_image);
if (reset_texture) {
@@ -349,7 +378,7 @@ void EditorProfiler::_update_plot() {
}
- graph_texture->set_data(img);;
+ graph_texture->set_data(img);
graph->set_texture(graph_texture);
@@ -453,7 +482,7 @@ void EditorProfiler::_graph_tex_draw() {
if (seeking) {
int max_frames = frame_metrics.size();
- int frame = cursor_metric_edit->get_val() - (frame_metrics[last_metric].frame_number-max_frames+1);
+ int frame = cursor_metric_edit->get_value() - (frame_metrics[last_metric].frame_number-max_frames+1);
if (frame<0)
frame=0;
@@ -559,7 +588,7 @@ void EditorProfiler::_graph_tex_input(const InputEvent& p_ev){
}
if (valid)
- cursor_metric_edit->set_val(frame_metrics[metric].frame_number);
+ cursor_metric_edit->set_value(frame_metrics[metric].frame_number);
updating_frame=false;
@@ -590,7 +619,7 @@ int EditorProfiler::_get_cursor_index() const {
if (!frame_metrics[last_metric].valid)
return 0;
- int diff = (frame_metrics[last_metric].frame_number-cursor_metric_edit->get_val());
+ int diff = (frame_metrics[last_metric].frame_number-cursor_metric_edit->get_value());
int idx = last_metric - diff;
while (idx<0) {
@@ -617,16 +646,16 @@ void EditorProfiler::_combo_changed(int) {
void EditorProfiler::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_update_frame"),&EditorProfiler::_update_frame);
- ObjectTypeDB::bind_method(_MD("_update_plot"),&EditorProfiler::_update_plot);
- ObjectTypeDB::bind_method(_MD("_activate_pressed"),&EditorProfiler::_activate_pressed);
- ObjectTypeDB::bind_method(_MD("_graph_tex_draw"),&EditorProfiler::_graph_tex_draw);
- ObjectTypeDB::bind_method(_MD("_graph_tex_input"),&EditorProfiler::_graph_tex_input);
- ObjectTypeDB::bind_method(_MD("_graph_tex_mouse_exit"),&EditorProfiler::_graph_tex_mouse_exit);
- ObjectTypeDB::bind_method(_MD("_cursor_metric_changed"),&EditorProfiler::_cursor_metric_changed);
- ObjectTypeDB::bind_method(_MD("_combo_changed"),&EditorProfiler::_combo_changed);
+ ClassDB::bind_method(_MD("_update_frame"),&EditorProfiler::_update_frame);
+ ClassDB::bind_method(_MD("_update_plot"),&EditorProfiler::_update_plot);
+ ClassDB::bind_method(_MD("_activate_pressed"),&EditorProfiler::_activate_pressed);
+ ClassDB::bind_method(_MD("_graph_tex_draw"),&EditorProfiler::_graph_tex_draw);
+ ClassDB::bind_method(_MD("_graph_tex_input"),&EditorProfiler::_graph_tex_input);
+ ClassDB::bind_method(_MD("_graph_tex_mouse_exit"),&EditorProfiler::_graph_tex_mouse_exit);
+ ClassDB::bind_method(_MD("_cursor_metric_changed"),&EditorProfiler::_cursor_metric_changed);
+ ClassDB::bind_method(_MD("_combo_changed"),&EditorProfiler::_combo_changed);
- ObjectTypeDB::bind_method(_MD("_item_edited"),&EditorProfiler::_item_edited);
+ ClassDB::bind_method(_MD("_item_edited"),&EditorProfiler::_item_edited);
ADD_SIGNAL( MethodInfo("enable_profiling",PropertyInfo(Variant::BOOL,"enable")));
ADD_SIGNAL( MethodInfo("break_request"));
@@ -708,13 +737,13 @@ EditorProfiler::EditorProfiler()
variables->connect("item_edited",this,"_item_edited");
- graph = memnew( TextureFrame );
+ graph = memnew( TextureRect );
graph->set_expand(true);
- graph->set_stop_mouse(true);
- graph->set_ignore_mouse(false);
+ graph->set_mouse_filter(MOUSE_FILTER_STOP);
+ //graph->set_ignore_mouse(false);
graph->connect("draw",this,"_graph_tex_draw");
- graph->connect("input_event",this,"_graph_tex_input");
- graph->connect("mouse_exit",this,"_graph_tex_mouse_exit");
+ graph->connect("gui_input",this,"_graph_tex_input");
+ graph->connect("mouse_exited",this,"_graph_tex_mouse_exit");
h_split->add_child(graph);
graph->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -724,7 +753,7 @@ EditorProfiler::EditorProfiler()
int metric_size=CLAMP(int(EDITOR_DEF("debugger/profiler_frame_history_size",600)),60,1024);
frame_metrics.resize(metric_size);
last_metric=-1;
-// cursor_metric=-1;
+ //cursor_metric=-1;
hover_metric=-1;
@@ -750,6 +779,6 @@ EditorProfiler::EditorProfiler()
seeking=false;
graph_height=1;
-// activate->set_disabled(true);
+ //activate->set_disabled(true);
}
diff --git a/tools/editor/editor_profiler.h b/tools/editor/editor_profiler.h
index f5cea118ce..bf89e3939c 100644
--- a/tools/editor/editor_profiler.h
+++ b/tools/editor/editor_profiler.h
@@ -1,9 +1,37 @@
+/*************************************************************************/
+/* editor_profiler.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#ifndef EDITORPROFILER_H
#define EDITORPROFILER_H
#include "scene/gui/box_container.h"
-#include "scene/gui/texture_frame.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/button.h"
#include "scene/gui/label.h"
#include "scene/gui/tree.h"
@@ -14,7 +42,7 @@
class EditorProfiler : public VBoxContainer {
- OBJ_TYPE(EditorProfiler,VBoxContainer)
+ GDCLASS(EditorProfiler,VBoxContainer)
public:
@@ -71,9 +99,9 @@ public:
private:
Button *activate;
- TextureFrame *graph;
+ TextureRect *graph;
Ref<ImageTexture> graph_texture;
- DVector<uint8_t> graph_image;
+ PoolVector<uint8_t> graph_image;
Tree *variables;
HSplitContainer *h_split;
diff --git a/tools/editor/editor_reimport_dialog.cpp b/tools/editor/editor_reimport_dialog.cpp
index b6311a7604..e5ae33e919 100644
--- a/tools/editor/editor_reimport_dialog.cpp
+++ b/tools/editor/editor_reimport_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,8 +27,10 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_reimport_dialog.h"
+
#include "editor_file_system.h"
#include "editor_node.h"
+
void EditorReImportDialog::popup_reimport() {
if (EditorFileSystem::get_singleton()->is_scanning()) {
@@ -135,7 +137,7 @@ EditorReImportDialog::EditorReImportDialog() {
tree = memnew( Tree );
add_child(tree);
tree->set_hide_root(true);
- set_child_rect(tree);
+ //set_child_rect(tree);
set_title(TTR("Re-Import Changed Resources"));
error = memnew( AcceptDialog);
add_child(error);
diff --git a/tools/editor/editor_reimport_dialog.h b/tools/editor/editor_reimport_dialog.h
index 0c2d0eb52c..68e1ca0597 100644
--- a/tools/editor/editor_reimport_dialog.h
+++ b/tools/editor/editor_reimport_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -34,7 +34,7 @@
class EditorReImportDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorReImportDialog,ConfirmationDialog);
+ GDCLASS(EditorReImportDialog,ConfirmationDialog);
Tree *tree;
Vector<TreeItem*> items;
diff --git a/tools/editor/editor_resource_preview.cpp b/tools/editor/editor_resource_preview.cpp
index 6afc3e2a34..b4c459a493 100644
--- a/tools/editor/editor_resource_preview.cpp
+++ b/tools/editor/editor_resource_preview.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_resource_preview.h"
+
#include "editor_settings.h"
#include "os/file_access.h"
#include "io/resource_loader.h"
@@ -69,9 +70,9 @@ Ref<Texture> EditorResourcePreviewGenerator::generate_from_path(const String& p_
void EditorResourcePreviewGenerator::_bind_methods() {
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"handles",PropertyInfo(Variant::STRING,"type")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::OBJECT,"generate:Texture",PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"Resource")));
- ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::OBJECT,"generate_from_path:Texture",PropertyInfo(Variant::STRING,"path",PROPERTY_HINT_FILE)));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"handles",PropertyInfo(Variant::STRING,"type")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::OBJECT,"generate:Texture",PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"Resource")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::OBJECT,"generate_from_path:Texture",PropertyInfo(Variant::STRING,"path",PROPERTY_HINT_FILE)));
}
@@ -127,7 +128,7 @@ Ref<Texture> EditorResourcePreview::_generate_preview(const QueueItem& p_item,co
String type;
if (p_item.resource.is_valid())
- type=p_item.resource->get_type();
+ type=p_item.resource->get_class();
else
type=ResourceLoader::get_resource_type(p_item.path);
//print_line("resource type is: "+type);
@@ -154,7 +155,7 @@ Ref<Texture> EditorResourcePreview::_generate_preview(const QueueItem& p_item,co
// cache the preview in case it's a resource on disk
if (generated.is_valid()) {
//print_line("was generated");
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
//wow it generated a preview... save cache
ResourceSaver::save(cache_base+".png",generated);
@@ -207,7 +208,7 @@ void EditorResourcePreview::_thread() {
//print_line("pop from queue "+item.path);
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
@@ -221,7 +222,7 @@ void EditorResourcePreview::_thread() {
String temp_path=EditorSettings::get_singleton()->get_settings_path().plus_file("tmp");
- String cache_base = Globals::get_singleton()->globalize_path(item.path).md5_text();
+ String cache_base = GlobalConfig::get_singleton()->globalize_path(item.path).md5_text();
cache_base = temp_path.plus_file("resthumb-"+cache_base);
//does not have it, try to load a cached thumbnail
@@ -267,6 +268,8 @@ void EditorResourcePreview::_thread() {
memdelete(f);
}
+ cache_valid=false;
+
if (cache_valid) {
texture = ResourceLoader::load(cache_base+".png","ImageTexture",true);
@@ -374,13 +377,13 @@ EditorResourcePreview* EditorResourcePreview::get_singleton() {
void EditorResourcePreview::_bind_methods() {
- ObjectTypeDB::bind_method("_preview_ready",&EditorResourcePreview::_preview_ready);
+ ClassDB::bind_method("_preview_ready",&EditorResourcePreview::_preview_ready);
- ObjectTypeDB::bind_method(_MD("queue_resource_preview","path","receiver","receiver_func","userdata:Variant"),&EditorResourcePreview::queue_resource_preview);
- ObjectTypeDB::bind_method(_MD("queue_edited_resource_preview","resource:Resource","receiver","receiver_func","userdata:Variant"),&EditorResourcePreview::queue_edited_resource_preview);
- ObjectTypeDB::bind_method(_MD("add_preview_generator","generator:EditorResourcePreviewGenerator"),&EditorResourcePreview::add_preview_generator);
- ObjectTypeDB::bind_method(_MD("remove_preview_generator","generator:EditorResourcePreviewGenerator"),&EditorResourcePreview::remove_preview_generator);
- ObjectTypeDB::bind_method(_MD("check_for_invalidation","path"),&EditorResourcePreview::check_for_invalidation);
+ ClassDB::bind_method(_MD("queue_resource_preview","path","receiver","receiver_func","userdata:Variant"),&EditorResourcePreview::queue_resource_preview);
+ ClassDB::bind_method(_MD("queue_edited_resource_preview","resource:Resource","receiver","receiver_func","userdata:Variant"),&EditorResourcePreview::queue_edited_resource_preview);
+ ClassDB::bind_method(_MD("add_preview_generator","generator:EditorResourcePreviewGenerator"),&EditorResourcePreview::add_preview_generator);
+ ClassDB::bind_method(_MD("remove_preview_generator","generator:EditorResourcePreviewGenerator"),&EditorResourcePreview::remove_preview_generator);
+ ClassDB::bind_method(_MD("check_for_invalidation","path"),&EditorResourcePreview::check_for_invalidation);
ADD_SIGNAL(MethodInfo("preview_invalidated",PropertyInfo(Variant::STRING,"path")));
diff --git a/tools/editor/editor_resource_preview.h b/tools/editor/editor_resource_preview.h
index 2756360130..e4a593330d 100644
--- a/tools/editor/editor_resource_preview.h
+++ b/tools/editor/editor_resource_preview.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -55,7 +55,7 @@
class EditorResourcePreviewGenerator : public Reference {
- OBJ_TYPE(EditorResourcePreviewGenerator,Reference );
+ GDCLASS(EditorResourcePreviewGenerator,Reference );
protected:
@@ -72,7 +72,7 @@ public:
class EditorResourcePreview : public Node {
- OBJ_TYPE(EditorResourcePreview,Node);
+ GDCLASS(EditorResourcePreview,Node);
static EditorResourcePreview* singleton;
diff --git a/tools/editor/editor_run.cpp b/tools/editor/editor_run.cpp
index 5fbb4ae2a0..813a8ee5b7 100644
--- a/tools/editor/editor_run.cpp
+++ b/tools/editor/editor_run.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_run.h"
+
#include "globals.h"
#include "editor_settings.h"
@@ -39,7 +40,7 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List
List<String> args;
- String resource_path = Globals::get_singleton()->get_resource_path();
+ String resource_path = GlobalConfig::get_singleton()->get_resource_path();
if (resource_path!="") {
args.push_back("-path");
@@ -49,21 +50,12 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List
if (true) {
args.push_back("-rdebug");
- args.push_back("localhost:"+String::num(GLOBAL_DEF("debug/debug_port", 6007)));
+ args.push_back("localhost:"+String::num(GLOBAL_GET("network/debug/remote_port")));
}
args.push_back("-epid");
args.push_back(String::num(OS::get_singleton()->get_process_ID()));
- if (p_custom_args!="") {
-
- Vector<String> cargs=p_custom_args.split(" ",false);
- for(int i=0;i<cargs.size();i++) {
-
- args.push_back(cargs[i].replace("%20"," ").replace("$scene",p_edited_scene.replace(" ","%20")));
- }
- }
-
if (debug_collisions) {
args.push_back("-debugcol");
}
@@ -72,7 +64,7 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List
args.push_back("-debugnav");
}
- int screen = EditorSettings::get_singleton()->get("game_window_placement/screen");
+ int screen = EditorSettings::get_singleton()->get("run/window_placement/screen");
if (screen==0) {
screen=OS::get_singleton()->get_current_screen();
@@ -87,19 +79,19 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List
Size2 desired_size;
- desired_size.x=Globals::get_singleton()->get("display/width");
- desired_size.y=Globals::get_singleton()->get("display/height");
+ desired_size.x=GlobalConfig::get_singleton()->get("display/width");
+ desired_size.y=GlobalConfig::get_singleton()->get("display/height");
Size2 test_size;
- test_size.x=Globals::get_singleton()->get("display/test_width");
- test_size.y=Globals::get_singleton()->get("display/test_height");
+ test_size.x=GlobalConfig::get_singleton()->get("display/test_width");
+ test_size.y=GlobalConfig::get_singleton()->get("display/test_height");
if (test_size.x>0 && test_size.y>0) {
desired_size=test_size;
}
- int window_placement=EditorSettings::get_singleton()->get("game_window_placement/rect");
+ int window_placement=EditorSettings::get_singleton()->get("run/window_placement/rect");
switch(window_placement) {
case 0: { // default
@@ -113,7 +105,7 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List
args.push_back(itos(pos.x)+"x"+itos(pos.y));
} break;
case 2: { // custom pos
- Vector2 pos = EditorSettings::get_singleton()->get("game_window_placement/rect_custom_position");
+ Vector2 pos = EditorSettings::get_singleton()->get("run/window_placement/rect_custom_position");
pos+=screen_rect.pos;
args.push_back("-p");
args.push_back(itos(pos.x)+"x"+itos(pos.y));
@@ -150,7 +142,12 @@ Error EditorRun::run(const String& p_scene,const String p_custom_args,const List
args.push_back(bpoints);
}
- args.push_back(p_scene);
+ if (p_custom_args!="") {
+ Vector<String> cargs=p_custom_args.split(" ",false);
+ for(int i=0;i<cargs.size();i++) {
+ args.push_back(cargs[i].replace("$scene",p_scene).replace(" ","%20"));
+ }
+ }
String exec = OS::get_singleton()->get_executable_path();
diff --git a/tools/editor/editor_run.h b/tools/editor/editor_run.h
index 5aa2adf801..78fa892488 100644
--- a/tools/editor/editor_run.h
+++ b/tools/editor/editor_run.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/editor_run_native.cpp b/tools/editor/editor_run_native.cpp
index edbcc71284..12b7b761ed 100644
--- a/tools/editor/editor_run_native.cpp
+++ b/tools/editor/editor_run_native.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,8 +27,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_run_native.h"
-#include "editor_import_export.h"
+#include "editor_import_export.h"
void EditorRunNative::_notification(int p_what) {
@@ -54,7 +54,8 @@ void EditorRunNative::_notification(int p_what) {
Ref<ImageTexture> small_icon = memnew( ImageTexture);
small_icon->create_from_image(im);
MenuButton *mb = memnew( MenuButton );
- mb->get_popup()->connect("item_pressed",this,"_run_native",varray(E->get()));
+ mb->get_popup()->connect("id_pressed",this,"_run_native",varray(E->get()));
+ mb->connect("pressed",this,"_run_native",varray(-1, E->get()));
mb->set_icon(small_icon);
add_child(mb);
menus[E->get()]=mb;
@@ -79,13 +80,16 @@ void EditorRunNative::_notification(int p_what) {
if (dc==0) {
mb->hide();
} else {
-
mb->get_popup()->clear();
mb->show();
- for(int i=0;i<dc;i++) {
-
- mb->get_popup()->add_icon_item(get_icon("Play","EditorIcons"),eep->get_device_name(i));
- mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() -1,eep->get_device_info(i));
+ if (dc == 1) {
+ mb->set_tooltip(eep->get_device_name(0) + "\n\n" + eep->get_device_info(0).strip_edges());
+ } else {
+ mb->set_tooltip("Select device from the list");
+ for(int i=0;i<dc;i++) {
+ mb->get_popup()->add_icon_item(get_icon("Play","EditorIcons"),eep->get_device_name(i));
+ mb->get_popup()->set_item_tooltip(mb->get_popup()->get_item_count() -1,eep->get_device_info(i).strip_edges());
+ }
}
}
}
@@ -96,11 +100,18 @@ void EditorRunNative::_notification(int p_what) {
}
-
void EditorRunNative::_run_native(int p_idx,const String& p_platform) {
Ref<EditorExportPlatform> eep = EditorImportExport::get_singleton()->get_export_platform(p_platform);
ERR_FAIL_COND(eep.is_null());
+ if (p_idx == -1) {
+ if (eep->get_device_count() == 1) {
+ menus[p_platform]->get_popup()->hide();
+ p_idx = 0;
+ } else {
+ return;
+ }
+ }
emit_signal("native_run");
int flags=0;
@@ -118,7 +129,7 @@ void EditorRunNative::_run_native(int p_idx,const String& p_platform) {
void EditorRunNative::_bind_methods() {
- ObjectTypeDB::bind_method("_run_native",&EditorRunNative::_run_native);
+ ClassDB::bind_method("_run_native",&EditorRunNative::_run_native);
ADD_SIGNAL(MethodInfo("native_run"));
}
diff --git a/tools/editor/editor_run_native.h b/tools/editor/editor_run_native.h
index 04dad6b6aa..c62021148b 100644
--- a/tools/editor/editor_run_native.h
+++ b/tools/editor/editor_run_native.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -34,7 +34,7 @@
class EditorRunNative : public HBoxContainer {
- OBJ_TYPE(EditorRunNative,BoxContainer);
+ GDCLASS(EditorRunNative,BoxContainer);
Map<StringName,MenuButton*> menus;
bool first;
diff --git a/tools/editor/editor_run_script.cpp b/tools/editor/editor_run_script.cpp
index 765f36d3bc..6a980019e4 100644
--- a/tools/editor/editor_run_script.cpp
+++ b/tools/editor/editor_run_script.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,11 +27,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_run_script.h"
-#include "editor_node.h"
-
-
-
+#include "editor_node.h"
void EditorScript::add_root_node(Node *p_node) {
@@ -46,7 +43,7 @@ void EditorScript::add_root_node(Node *p_node) {
return;
}
-// editor->set_edited_scene(p_node);
+ //editor->set_edited_scene(p_node);
}
Node *EditorScript::get_scene() {
@@ -86,8 +83,8 @@ void EditorScript::set_editor(EditorNode *p_editor) {
void EditorScript::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("add_root_node","node"),&EditorScript::add_root_node);
- ObjectTypeDB::bind_method(_MD("get_scene"),&EditorScript::get_scene);
+ ClassDB::bind_method(_MD("add_root_node","node"),&EditorScript::add_root_node);
+ ClassDB::bind_method(_MD("get_scene"),&EditorScript::get_scene);
BIND_VMETHOD( MethodInfo("_run") );
diff --git a/tools/editor/editor_run_script.h b/tools/editor/editor_run_script.h
index 144fad5ab1..3ab8525cc6 100644
--- a/tools/editor/editor_run_script.h
+++ b/tools/editor/editor_run_script.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,7 +35,7 @@
class EditorNode;
class EditorScript : public Reference {
- OBJ_TYPE( EditorScript, Reference );
+ GDCLASS( EditorScript, Reference );
EditorNode *editor;
protected:
diff --git a/tools/editor/editor_scale.cpp b/tools/editor/editor_scale.cpp
index 8575e1c30a..5687f97b22 100644
--- a/tools/editor/editor_scale.cpp
+++ b/tools/editor/editor_scale.cpp
@@ -1,4 +1,33 @@
+/*************************************************************************/
+/* editor_scale.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#include "editor_scale.h"
+
#include "os/os.h"
static float scale = 1.0;
diff --git a/tools/editor/editor_scale.h b/tools/editor/editor_scale.h
index 90e575f771..035a5056c1 100644
--- a/tools/editor/editor_scale.h
+++ b/tools/editor/editor_scale.h
@@ -1,3 +1,31 @@
+/*************************************************************************/
+/* editor_scale.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#ifndef EDITOR_SCALE_H
#define EDITOR_SCALE_H
diff --git a/tools/editor/editor_settings.cpp b/tools/editor/editor_settings.cpp
index 78bfd7cf25..27aeaeb5b6 100644
--- a/tools/editor/editor_settings.cpp
+++ b/tools/editor/editor_settings.cpp
@@ -3,9 +3,9 @@
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
-/* http://www.godotengine.org */
+/* http:/www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,13 +27,12 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_settings.h"
+
#include "os/os.h"
#include "os/dir_access.h"
#include "os/file_access.h"
-
#include "version.h"
#include "scene/main/scene_main_loop.h"
-#include "os/os.h"
#include "scene/main/node.h"
#include "io/resource_loader.h"
#include "io/resource_saver.h"
@@ -47,6 +46,9 @@
#include "io/compression.h"
#include "os/keyboard.h"
+
+
+
Ref<EditorSettings> EditorSettings::singleton=NULL;
EditorSettings *EditorSettings::get_singleton() {
@@ -123,8 +125,10 @@ bool EditorSettings::_get(const StringName& p_name,Variant &r_ret) const {
}
const VariantContainer *v=props.getptr(p_name);
- if (!v)
+ if (!v) {
+ print_line("EditorSettings::_get - Warning, not found: "+String(p_name));
return false;
+ }
r_ret = v->variant;
return true;
}
@@ -238,6 +242,7 @@ void EditorSettings::create() {
String exe_path = OS::get_singleton()->get_executable_path().get_base_dir();
DirAccess* d = DirAccess::create_for_path(exe_path);
+
if (d->file_exists(exe_path + "/._sc_")) {
// editor is self contained
@@ -257,7 +262,7 @@ void EditorSettings::create() {
}
};
- ObjectTypeDB::register_type<EditorSettings>(); //otherwise it can't be unserialized
+ ClassDB::register_class<EditorSettings>(); //otherwise it can't be unserialized
String config_file_path;
if (config_path!=""){
@@ -307,7 +312,7 @@ void EditorSettings::create() {
dir->change_dir("config");
- String pcp=Globals::get_singleton()->get_resource_path();
+ String pcp=GlobalConfig::get_singleton()->get_resource_path();
if (pcp.ends_with("/"))
pcp=config_path.substr(0,pcp.size()-1);
pcp=pcp.get_file()+"-"+pcp.md5_text();
@@ -322,21 +327,14 @@ void EditorSettings::create() {
// path at least is validated, so validate config file
-
- config_file_path = config_path+"/"+config_dir+"/editor_settings.tres";
+ String config_file_name = "editor_settings-" + String(_MKSTR(VERSION_MAJOR)) + ".tres";
+ config_file_path = config_path + "/" + config_dir + "/" + config_file_name;
String open_path = config_file_path;
- if (!dir->file_exists("editor_settings.tres")) {
-
- open_path = config_path+"/"+config_dir+"/editor_settings.xml";
+ if (!dir->file_exists(config_file_name)) {
- if (!dir->file_exists("editor_settings.xml")) {
-
- memdelete(dir);
- WARN_PRINT("Config file does not exist, creating.");
- goto fail;
- }
+ goto fail;
}
memdelete(dir);
@@ -402,9 +400,9 @@ String EditorSettings::get_settings_path() const {
void EditorSettings::setup_language() {
- String lang = get("global/editor_language");
+ String lang = get("interface/editor_language");
if (lang=="en")
- return; //none to do
+ return;//none to do
for(int i=0;i<translations.size();i++) {
if (translations[i]->get_locale()==lang) {
@@ -506,158 +504,159 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
best="en";
}
- set("global/editor_language",best);
- hints["global/editor_language"]=PropertyInfo(Variant::STRING,"global/editor_language",PROPERTY_HINT_ENUM,lang_hint,PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("interface/editor_language",best);
+ hints["interface/editor_language"]=PropertyInfo(Variant::STRING,"interface/editor_language",PROPERTY_HINT_ENUM,lang_hint,PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
}
- set("global/hidpi_mode",0);
- hints["global/hidpi_mode"]=PropertyInfo(Variant::INT,"global/hidpi_mode",PROPERTY_HINT_ENUM,"Auto,VeryLoDPI,LoDPI,MidDPI,HiDPI",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
- set("global/show_script_in_scene_tabs",false);
- set("global/font_size",14);
- hints["global/font_size"]=PropertyInfo(Variant::INT,"global/font_size",PROPERTY_HINT_RANGE,"10,40,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
- set("global/source_font_size",14);
- hints["global/source_font_size"]=PropertyInfo(Variant::INT,"global/source_font_size",PROPERTY_HINT_RANGE,"8,96,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
- set("global/custom_font","");
- hints["global/custom_font"]=PropertyInfo(Variant::STRING,"global/custom_font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
- set("global/custom_theme","");
- hints["global/custom_theme"]=PropertyInfo(Variant::STRING,"global/custom_theme",PROPERTY_HINT_GLOBAL_FILE,"*.res,*.tres,*.theme",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
-
-
- set("global/autoscan_project_path","");
- hints["global/autoscan_project_path"]=PropertyInfo(Variant::STRING,"global/autoscan_project_path",PROPERTY_HINT_GLOBAL_DIR);
- set("global/default_project_path","");
- hints["global/default_project_path"]=PropertyInfo(Variant::STRING,"global/default_project_path",PROPERTY_HINT_GLOBAL_DIR);
- set("global/default_project_export_path","");
+ set("interface/hidpi_mode",0);
+ hints["interface/hidpi_mode"]=PropertyInfo(Variant::INT,"interface/hidpi_mode",PROPERTY_HINT_ENUM,"Auto,VeryLoDPI,LoDPI,MidDPI,HiDPI",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("interface/show_script_in_scene_tabs",false);
+ set("interface/font_size",14);
+ hints["interface/font_size"]=PropertyInfo(Variant::INT,"interface/font_size",PROPERTY_HINT_RANGE,"10,40,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("interface/source_font_size",14);
+ hints["interface/source_font_size"]=PropertyInfo(Variant::INT,"interface/source_font_size",PROPERTY_HINT_RANGE,"8,96,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("interface/custom_font","");
+ hints["interface/custom_font"]=PropertyInfo(Variant::STRING,"interface/custom_font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("interface/custom_theme","");
+ hints["interface/custom_theme"]=PropertyInfo(Variant::STRING,"interface/custom_theme",PROPERTY_HINT_GLOBAL_FILE,"*.res,*.tres,*.theme",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+
+
+ set("filesystem/directories/autoscan_project_path","");
+ hints["filesystem/directories/autoscan_project_path"]=PropertyInfo(Variant::STRING,"filesystem/directories/autoscan_project_path",PROPERTY_HINT_GLOBAL_DIR);
+ set("filesystem/directories/default_project_path","");
+ hints["filesystem/directories/default_project_path"]=PropertyInfo(Variant::STRING,"filesystem/directories/default_project_path",PROPERTY_HINT_GLOBAL_DIR);
+ set("filesystem/directories/default_project_export_path","");
hints["global/default_project_export_path"]=PropertyInfo(Variant::STRING,"global/default_project_export_path",PROPERTY_HINT_GLOBAL_DIR);
- set("global/show_script_in_scene_tabs",false);
-
+ set("interface/show_script_in_scene_tabs",false);
- set("text_editor/color_theme","Default");
- hints["text_editor/color_theme"]=PropertyInfo(Variant::STRING,"text_editor/color_theme",PROPERTY_HINT_ENUM,"Default");
- _load_default_text_editor_theme();
-
- set("text_editor/syntax_highlighting", true);
-
- set("text_editor/highlight_all_occurrences", true);
- set("text_editor/scroll_past_end_of_file", false);
-
- set("text_editor/tab_size", 4);
- hints["text_editor/tab_size"]=PropertyInfo(Variant::INT,"text_editor/tab_size",PROPERTY_HINT_RANGE,"1, 64, 1"); // size of 0 crashes.
- set("text_editor/draw_tabs", true);
-
- set("text_editor/line_numbers_zero_padded", false);
-
- set("text_editor/show_line_numbers", true);
- set("text_editor/show_breakpoint_gutter", true);
-
- set("text_editor/show_line_length_guideline", false);
- set("text_editor/line_length_guideline_column", 80);
- hints["text_editor/line_length_guideline_column"]=PropertyInfo(Variant::INT,"text_editor/line_length_guideline_column",PROPERTY_HINT_RANGE,"20, 160, 10");
-
- set("text_editor/trim_trailing_whitespace_on_save", false);
- set("text_editor/idle_parse_delay",2);
- set("text_editor/create_signal_callbacks",true);
- set("text_editor/autosave_interval_secs",0);
+ set("text_editor/theme/color_theme","Default");
+ hints["text_editor/theme/color_theme"]=PropertyInfo(Variant::STRING,"text_editor/theme/color_theme",PROPERTY_HINT_ENUM,"Default");
- set("text_editor/block_caret", false);
- set("text_editor/caret_blink", false);
- set("text_editor/caret_blink_speed", 0.65);
- hints["text_editor/caret_blink_speed"]=PropertyInfo(Variant::REAL,"text_editor/caret_blink_speed",PROPERTY_HINT_RANGE,"0.1, 10, 0.1");
+ set("text_editor/theme/line_spacing",4);
- set("text_editor/font","");
- hints["text_editor/font"]=PropertyInfo(Variant::STRING,"text_editor/font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt");
- set("text_editor/auto_brace_complete", false);
- set("text_editor/restore_scripts_on_load",true);
+ _load_default_text_editor_theme();
- //set("scenetree_editor/display_old_action_buttons",false);
- set("scenetree_editor/start_create_dialog_fully_expanded",false);
- set("scenetree_editor/draw_relationship_lines",false);
- set("scenetree_editor/relationship_line_color",Color::html("464646"));
-
- set("grid_map/pick_distance", 5000.0);
-
- set("3d_editor/grid_color",Color(0,1,0,0.2));
- hints["3d_editor/grid_color"]=PropertyInfo(Variant::COLOR,"3d_editor/grid_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
-
- set("3d_editor/default_fov",45.0);
- set("3d_editor/default_z_near",0.1);
- set("3d_editor/default_z_far",500.0);
-
- set("3d_editor/navigation_scheme",0);
- hints["3d_editor/navigation_scheme"]=PropertyInfo(Variant::INT,"3d_editor/navigation_scheme",PROPERTY_HINT_ENUM,"Godot,Maya,Modo");
- set("3d_editor/zoom_style",0);
- hints["3d_editor/zoom_style"]=PropertyInfo(Variant::INT,"3d_editor/zoom_style",PROPERTY_HINT_ENUM,"Vertical, Horizontal");
- set("3d_editor/orbit_modifier",0);
- hints["3d_editor/orbit_modifier"]=PropertyInfo(Variant::INT,"3d_editor/orbit_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl");
- set("3d_editor/pan_modifier",1);
- hints["3d_editor/pan_modifier"]=PropertyInfo(Variant::INT,"3d_editor/pan_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl");
- set("3d_editor/zoom_modifier",4);
- hints["3d_editor/zoom_modifier"]=PropertyInfo(Variant::INT,"3d_editor/zoom_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl");
- set("3d_editor/emulate_numpad",false);
- set("3d_editor/emulate_3_button_mouse", false);
-
- set("2d_editor/bone_width",5);
- set("2d_editor/bone_color1",Color(1.0,1.0,1.0,0.9));
- set("2d_editor/bone_color2",Color(0.75,0.75,0.75,0.9));
- set("2d_editor/bone_selected_color",Color(0.9,0.45,0.45,0.9));
- set("2d_editor/bone_ik_color",Color(0.9,0.9,0.45,0.9));
-
- set("2d_editor/keep_margins_when_changing_anchors", false);
-
- set("game_window_placement/rect",0);
- hints["game_window_placement/rect"]=PropertyInfo(Variant::INT,"game_window_placement/rect",PROPERTY_HINT_ENUM,"Default,Centered,Custom Position,Force Maximized,Force Full Screen");
+ set("text_editor/highlighting/syntax_highlighting", true);
+
+ set("text_editor/highlighting/highlight_all_occurrences", true);
+ set("text_editor/cursor/scroll_past_end_of_file", false);
+
+ set("text_editor/indent/tab_size", 4);
+ hints["text_editor/indent/tab_size"]=PropertyInfo(Variant::INT,"text_editor/indent/tab_size",PROPERTY_HINT_RANGE,"1, 64, 1"); // size of 0 crashes.
+ set("text_editor/indent/draw_tabs", true);
+
+ set("text_editor/line_numbers/show_line_numbers", true);
+ set("text_editor/line_numbers/line_numbers_zero_padded", false);
+ set("text_editor/line_numbers/show_breakpoint_gutter", true);
+ set("text_editor/line_numbers/show_line_length_guideline", false);
+ set("text_editor/line_numbers/line_length_guideline_column", 80);
+ hints["text_editor/line_numbers/line_length_guideline_column"]=PropertyInfo(Variant::INT,"text_editor/line_numbers/line_length_guideline_column",PROPERTY_HINT_RANGE,"20, 160, 10");
+
+ set("text_editor/files/trim_trailing_whitespace_on_save", false);
+ set("text_editor/completion/idle_parse_delay",2);
+ set("text_editor/tools/create_signal_callbacks",true);
+ set("text_editor/files/autosave_interval_secs",0);
+
+ set("text_editor/cursor/block_caret", false);
+ set("text_editor/cursor/caret_blink", false);
+ set("text_editor/cursor/caret_blink_speed", 0.65);
+ hints["text_editor/cursor/caret_blink_speed"]=PropertyInfo(Variant::REAL,"text_editor/cursor/caret_blink_speed",PROPERTY_HINT_RANGE,"0.1, 10, 0.1");
+
+ set("text_editor/theme/font","");
+ hints["text_editor/theme/font"]=PropertyInfo(Variant::STRING,"text_editor/theme/font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt");
+ set("text_editor/completion/auto_brace_complete", false);
+ set("text_editor/files/restore_scripts_on_load",true);
+
+
+ //set("docks/scene_tree/display_old_action_buttons",false);
+ set("docks/scene_tree/start_create_dialog_fully_expanded",false);
+ set("docks/scene_tree/draw_relationship_lines",false);
+ set("docks/scene_tree/relationship_line_color",Color::html("464646"));
+
+ set("editors/grid_map/pick_distance", 5000.0);
+
+ set("editors/3d/grid_color",Color(0,1,0,0.2));
+ hints["editors/3d/grid_color"]=PropertyInfo(Variant::COLOR,"editors/3d/grid_color", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+
+ set("editors/3d/default_fov",45.0);
+ set("editors/3d/default_z_near",0.1);
+ set("editors/3d/default_z_far",500.0);
+
+ set("editors/3d/navigation_scheme",0);
+ hints["editors/3d/navigation_scheme"]=PropertyInfo(Variant::INT,"editors/3d/navigation_scheme",PROPERTY_HINT_ENUM,"Godot,Maya,Modo");
+ set("editors/3d/zoom_style",0);
+ hints["editors/3d/zoom_style"]=PropertyInfo(Variant::INT,"editors/3d/zoom_style",PROPERTY_HINT_ENUM,"Vertical, Horizontal");
+ set("editors/3d/orbit_modifier",0);
+ hints["editors/3d/orbit_modifier"]=PropertyInfo(Variant::INT,"editors/3d/orbit_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl");
+ set("editors/3d/pan_modifier",1);
+ hints["editors/3d/pan_modifier"]=PropertyInfo(Variant::INT,"editors/3d/pan_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl");
+ set("editors/3d/zoom_modifier",4);
+ hints["editors/3d/zoom_modifier"]=PropertyInfo(Variant::INT,"editors/3d/zoom_modifier",PROPERTY_HINT_ENUM,"None,Shift,Alt,Meta,Ctrl");
+ set("editors/3d/emulate_numpad",false);
+ set("editors/3d/emulate_3_button_mouse", false);
+
+ set("editors/2d/bone_width",5);
+ set("editors/2d/bone_color1",Color(1.0,1.0,1.0,0.9));
+ set("editors/2d/bone_color2",Color(0.75,0.75,0.75,0.9));
+ set("editors/2d/bone_selected_color",Color(0.9,0.45,0.45,0.9));
+ set("editors/2d/bone_ik_color",Color(0.9,0.9,0.45,0.9));
+
+ set("editors/2d/keep_margins_when_changing_anchors", false);
+
+ set("run/window_placement/rect",0);
+ hints["run/window_placement/rect"]=PropertyInfo(Variant::INT,"run/window_placement/rect",PROPERTY_HINT_ENUM,"Default,Centered,Custom Position,Force Maximized,Force Full Screen");
String screen_hints=TTR("Default (Same as Editor)");
for(int i=0;i<OS::get_singleton()->get_screen_count();i++) {
screen_hints+=",Monitor "+itos(i+1);
}
- set("game_window_placement/rect_custom_position",Vector2());
- set("game_window_placement/screen",0);
- hints["game_window_placement/screen"]=PropertyInfo(Variant::INT,"game_window_placement/screen",PROPERTY_HINT_ENUM,screen_hints);
+ set("run/window_placement/rect_custom_position",Vector2());
+ set("run/window_placement/screen",0);
+ hints["run/window_placement/screen"]=PropertyInfo(Variant::INT,"run/window_placement/screen",PROPERTY_HINT_ENUM,screen_hints);
- set("on_save/compress_binary_resources",true);
- set("on_save/save_modified_external_resources",true);
- //set("on_save/save_paths_as_relative",false);
- //set("on_save/save_paths_without_extension",false);
+ set("filesystem/on_save/compress_binary_resources",true);
+ set("filesystem/on_save/save_modified_external_resources",true);
+ //set("filesystem/on_save/save_paths_as_relative",false);
+ //set("filesystem/on_save/save_paths_without_extension",false);
- set("text_editor/create_signal_callbacks",true);
+ set("text_editor/tools/create_signal_callbacks",true);
- set("file_dialog/show_hidden_files", false);
- set("file_dialog/display_mode", 0);
- hints["file_dialog/display_mode"]=PropertyInfo(Variant::INT,"file_dialog/display_mode",PROPERTY_HINT_ENUM,"Thumbnails,List");
- set("file_dialog/thumbnail_size", 64);
- hints["file_dialog/thumbnail_size"]=PropertyInfo(Variant::INT,"file_dialog/thumbnail_size",PROPERTY_HINT_RANGE,"32,128,16");
+ set("filesystem/file_dialog/show_hidden_files", false);
+ set("filesystem/file_dialog/display_mode", 0);
+ hints["filesystem/file_dialog/display_mode"]=PropertyInfo(Variant::INT,"filesystem/file_dialog/display_mode",PROPERTY_HINT_ENUM,"Thumbnails,List");
+ set("filesystem/file_dialog/thumbnail_size", 64);
+ hints["filesystem/file_dialog/thumbnail_size"]=PropertyInfo(Variant::INT,"filesystem/file_dialog/thumbnail_size",PROPERTY_HINT_RANGE,"32,128,16");
- set("filesystem_dock/display_mode", 0);
- hints["filesystem_dock/display_mode"]=PropertyInfo(Variant::INT,"filesystem_dock/display_mode",PROPERTY_HINT_ENUM,"Thumbnails,List");
- set("filesystem_dock/thumbnail_size", 64);
- hints["filesystem_dock/thumbnail_size"]=PropertyInfo(Variant::INT,"filesystem_dock/thumbnail_size",PROPERTY_HINT_RANGE,"32,128,16");
+ set("docks/filesystem/display_mode", 0);
+ hints["docks/filesystem/display_mode"]=PropertyInfo(Variant::INT,"docks/filesystem/display_mode",PROPERTY_HINT_ENUM,"Thumbnails,List");
+ set("docks/filesystem/thumbnail_size", 64);
+ hints["docks/filesystem/thumbnail_size"]=PropertyInfo(Variant::INT,"docks/filesystem/thumbnail_size",PROPERTY_HINT_RANGE,"32,128,16");
- set("animation/autorename_animation_tracks",true);
- set("animation/confirm_insert_track",true);
+ set("editors/animation/autorename_animation_tracks",true);
+ set("editors/animation/confirm_insert_track",true);
- set("property_editor/texture_preview_width",48);
- set("property_editor/auto_refresh_interval",0.3);
- set("help/doc_path","");
+ set("docks/property_editor/texture_preview_width",48);
+ set("docks/property_editor/auto_refresh_interval",0.3);
+ set("text_editor/help/doc_path","");
- set("import/ask_save_before_reimport",false);
+ set("filesystem/import/ask_save_before_reimport",false);
- set("import/pvrtc_texture_tool","");
+ set("filesystem/import/pvrtc_texture_tool","");
#ifdef WINDOWS_ENABLED
- hints["import/pvrtc_texture_tool"]=PropertyInfo(Variant::STRING,"import/pvrtc_texture_tool",PROPERTY_HINT_GLOBAL_FILE,"*.exe");
+ hints["filesystem/import/pvrtc_texture_tool"]=PropertyInfo(Variant::STRING,"import/pvrtc_texture_tool",PROPERTY_HINT_GLOBAL_FILE,"*.exe");
#else
hints["import/pvrtc_texture_tool"]=PropertyInfo(Variant::STRING,"import/pvrtc_texture_tool",PROPERTY_HINT_GLOBAL_FILE,"");
#endif
- // TODO: Rename to "import/pvrtc_fast_conversion" to match other names?
- set("PVRTC/fast_conversion",false);
+ // TODO: Rename to "filesystem/import/pvrtc_fast_conversion" to match other names?
+ set("filesystem/import/pvrtc_fast_conversion",false);
- set("run/auto_save_before_running",true);
- set("resources/save_compressed_resources",true);
- set("resources/auto_reload_modified_images",true);
+ set("run/auto_save/save_before_running",true);
+ set("filesystem/resources/save_compressed_resources",true);
+ set("filesystem/resources/auto_reload_modified_images",true);
- set("import/automatic_reimport_on_sources_changed",true);
+ set("filesystem/import/automatic_reimport_on_sources_changed",true);
if (p_extra_config.is_valid()) {
@@ -691,34 +690,34 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
}
void EditorSettings::_load_default_text_editor_theme() {
- set("text_editor/background_color",Color::html("3b000000"));
- set("text_editor/completion_background_color", Color::html("2C2A32"));
- set("text_editor/completion_selected_color", Color::html("434244"));
- set("text_editor/completion_existing_color", Color::html("21dfdfdf"));
- set("text_editor/completion_scroll_color", Color::html("ffffff"));
- set("text_editor/completion_font_color", Color::html("aaaaaa"));
- set("text_editor/caret_color",Color::html("aaaaaa"));
- set("text_editor/caret_background_color", Color::html("000000"));
- set("text_editor/line_number_color",Color::html("66aaaaaa"));
- set("text_editor/text_color",Color::html("aaaaaa"));
- set("text_editor/text_selected_color",Color::html("000000"));
- set("text_editor/keyword_color",Color::html("ffffb3"));
- set("text_editor/base_type_color",Color::html("a4ffd4"));
- set("text_editor/engine_type_color",Color::html("83d3ff"));
- set("text_editor/function_color",Color::html("66a2ce"));
- set("text_editor/member_variable_color",Color::html("e64e59"));
- set("text_editor/comment_color",Color::html("676767"));
- set("text_editor/string_color",Color::html("ef6ebe"));
- set("text_editor/number_color",Color::html("EB9532"));
- set("text_editor/symbol_color",Color::html("badfff"));
- set("text_editor/selection_color",Color::html("7b5dbe"));
- set("text_editor/brace_mismatch_color",Color(1,0.2,0.2));
- set("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15));
- set("text_editor/mark_color", Color(1.0,0.4,0.4,0.4));
- set("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2));
- set("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15));
- set("text_editor/search_result_color",Color(0.05,0.25,0.05,1));
- set("text_editor/search_result_border_color",Color(0.1,0.45,0.1,1));
+ set("text_editor/highlighting/background_color",Color::html("3b000000"));
+ set("text_editor/highlighting/completion_background_color", Color::html("2C2A32"));
+ set("text_editor/highlighting/completion_selected_color", Color::html("434244"));
+ set("text_editor/highlighting/completion_existing_color", Color::html("21dfdfdf"));
+ set("text_editor/highlighting/completion_scroll_color", Color::html("ffffff"));
+ set("text_editor/highlighting/completion_font_color", Color::html("aaaaaa"));
+ set("text_editor/highlighting/caret_color",Color::html("aaaaaa"));
+ set("text_editor/highlighting/caret_background_color", Color::html("000000"));
+ set("text_editor/highlighting/line_number_color",Color::html("66aaaaaa"));
+ set("text_editor/highlighting/text_color",Color::html("aaaaaa"));
+ set("text_editor/highlighting/text_selected_color",Color::html("000000"));
+ set("text_editor/highlighting/keyword_color",Color::html("ffffb3"));
+ set("text_editor/highlighting/base_type_color",Color::html("a4ffd4"));
+ set("text_editor/highlighting/engine_type_color",Color::html("83d3ff"));
+ set("text_editor/highlighting/function_color",Color::html("66a2ce"));
+ set("text_editor/highlighting/member_variable_color",Color::html("e64e59"));
+ set("text_editor/highlighting/comment_color",Color::html("676767"));
+ set("text_editor/highlighting/string_color",Color::html("ef6ebe"));
+ set("text_editor/highlighting/number_color",Color::html("EB9532"));
+ set("text_editor/highlighting/symbol_color",Color::html("badfff"));
+ set("text_editor/highlighting/selection_color",Color::html("7b5dbe"));
+ set("text_editor/highlighting/brace_mismatch_color",Color(1,0.2,0.2));
+ set("text_editor/highlighting/current_line_color",Color(0.3,0.5,0.8,0.15));
+ set("text_editor/highlighting/mark_color", Color(1.0,0.4,0.4,0.4));
+ set("text_editor/highlighting/breakpoint_color", Color(0.8,0.8,0.4,0.2));
+ set("text_editor/highlighting/word_highlighted_color",Color(0.8,0.9,0.9,0.15));
+ set("text_editor/highlighting/search_result_color",Color(0.05,0.25,0.05,1));
+ set("text_editor/highlighting/search_result_border_color",Color(0.1,0.45,0.1,1));
}
void EditorSettings::notify_changes() {
@@ -846,24 +845,24 @@ void EditorSettings::list_text_editor_themes() {
d->list_dir_begin();
String file = d->get_next();
while(file != String()) {
- if (file.extension() == "tet" && file.basename().to_lower() != "default") {
- themes += "," + file.basename();
+ if (file.get_extension() == "tet" && file.get_basename().to_lower() != "default") {
+ themes += "," + file.get_basename();
}
file = d->get_next();
}
d->list_dir_end();
memdelete(d);
}
- add_property_hint(PropertyInfo(Variant::STRING,"text_editor/color_theme",PROPERTY_HINT_ENUM,themes));
+ add_property_hint(PropertyInfo(Variant::STRING,"text_editor/theme/color_theme",PROPERTY_HINT_ENUM,themes));
}
void EditorSettings::load_text_editor_theme() {
- if (get("text_editor/color_theme") == "Default") {
+ if (get("text_editor/theme/color_theme") == "Default") {
_load_default_text_editor_theme(); // sorry for "Settings changed" console spam
return;
}
- String theme_path = get_settings_path() + "/text_editor_themes/" + get("text_editor/color_theme") + ".tet";
+ String theme_path = get_settings_path() + "/text_editor_themes/" + get("text_editor/theme/color_theme") + ".tet";
Ref<ConfigFile> cf = memnew( ConfigFile );
Error err = cf->load(theme_path);
@@ -880,11 +879,11 @@ void EditorSettings::load_text_editor_theme() {
String val = cf->get_value("color_theme", key);
// don't load if it's not already there!
- if (has("text_editor/" + key)) {
+ if (has("text_editor/highlighting/" + key)) {
// make sure it is actually a color
if (val.is_valid_html_color() && key.find("color") >= 0) {
- props["text_editor/"+key].variant = Color::html(val); // change manually to prevent "Settings changed" console spam
+ props["text_editor/highlighting/"+key].variant = Color::html(val); // change manually to prevent "Settings changed" console spam
}
}
}
@@ -913,7 +912,7 @@ bool EditorSettings::import_text_editor_theme(String p_file) {
bool EditorSettings::save_text_editor_theme() {
- String p_file = get("text_editor/color_theme");
+ String p_file = get("text_editor/theme/color_theme");
if (p_file.get_file().to_lower() == "default") {
return false;
@@ -937,7 +936,7 @@ bool EditorSettings::save_text_editor_theme_as(String p_file) {
String theme_name = p_file.substr(0, p_file.length() - 4).get_file();
if (p_file.get_base_dir() == get_settings_path() + "/text_editor_themes") {
- set("text_editor/color_theme", theme_name);
+ set("text_editor/theme/color_theme", theme_name);
load_text_editor_theme();
}
return true;
@@ -948,34 +947,34 @@ bool EditorSettings::save_text_editor_theme_as(String p_file) {
bool EditorSettings::_save_text_editor_theme(String p_file) {
String theme_section = "color_theme";
Ref<ConfigFile> cf = memnew( ConfigFile ); // hex is better?
- cf->set_value(theme_section, "background_color", ((Color)get("text_editor/background_color")).to_html());
- cf->set_value(theme_section, "completion_background_color", ((Color)get("text_editor/completion_background_color")).to_html());
- cf->set_value(theme_section, "completion_selected_color", ((Color)get("text_editor/completion_selected_color")).to_html());
- cf->set_value(theme_section, "completion_existing_color", ((Color)get("text_editor/completion_existing_color")).to_html());
- cf->set_value(theme_section, "completion_scroll_color", ((Color)get("text_editor/completion_scroll_color")).to_html());
- cf->set_value(theme_section, "completion_font_color", ((Color)get("text_editor/completion_font_color")).to_html());
- cf->set_value(theme_section, "caret_color", ((Color)get("text_editor/caret_color")).to_html());
- cf->set_value(theme_section, "caret_background_color", ((Color)get("text_editor/caret_background_color")).to_html());
- cf->set_value(theme_section, "line_number_color", ((Color)get("text_editor/line_number_color")).to_html());
- cf->set_value(theme_section, "text_color", ((Color)get("text_editor/text_color")).to_html());
- cf->set_value(theme_section, "text_selected_color", ((Color)get("text_editor/text_selected_color")).to_html());
- cf->set_value(theme_section, "keyword_color", ((Color)get("text_editor/keyword_color")).to_html());
- cf->set_value(theme_section, "base_type_color", ((Color)get("text_editor/base_type_color")).to_html());
- cf->set_value(theme_section, "engine_type_color", ((Color)get("text_editor/engine_type_color")).to_html());
- cf->set_value(theme_section, "function_color", ((Color)get("text_editor/function_color")).to_html());
- cf->set_value(theme_section, "member_variable_color", ((Color)get("text_editor/member_variable_color")).to_html());
- cf->set_value(theme_section, "comment_color", ((Color)get("text_editor/comment_color")).to_html());
- cf->set_value(theme_section, "string_color", ((Color)get("text_editor/string_color")).to_html());
- cf->set_value(theme_section, "number_color", ((Color)get("text_editor/number_color")).to_html());
- cf->set_value(theme_section, "symbol_color", ((Color)get("text_editor/symbol_color")).to_html());
- cf->set_value(theme_section, "selection_color", ((Color)get("text_editor/selection_color")).to_html());
- cf->set_value(theme_section, "brace_mismatch_color", ((Color)get("text_editor/brace_mismatch_color")).to_html());
- cf->set_value(theme_section, "current_line_color", ((Color)get("text_editor/current_line_color")).to_html());
- cf->set_value(theme_section, "mark_color", ((Color)get("text_editor/mark_color")).to_html());
- cf->set_value(theme_section, "breakpoint_color", ((Color)get("text_editor/breakpoint_color")).to_html());
- cf->set_value(theme_section, "word_highlighted_color", ((Color)get("text_editor/word_highlighted_color")).to_html());
- cf->set_value(theme_section, "search_result_color", ((Color)get("text_editor/search_result_color")).to_html());
- cf->set_value(theme_section, "search_result_border_color", ((Color)get("text_editor/search_result_border_color")).to_html());
+ cf->set_value(theme_section, "background_color", ((Color)get("text_editor/highlighting/background_color")).to_html());
+ cf->set_value(theme_section, "completion_background_color", ((Color)get("text_editor/highlighting/completion_background_color")).to_html());
+ cf->set_value(theme_section, "completion_selected_color", ((Color)get("text_editor/highlighting/completion_selected_color")).to_html());
+ cf->set_value(theme_section, "completion_existing_color", ((Color)get("text_editor/highlighting/completion_existing_color")).to_html());
+ cf->set_value(theme_section, "completion_scroll_color", ((Color)get("text_editor/highlighting/completion_scroll_color")).to_html());
+ cf->set_value(theme_section, "completion_font_color", ((Color)get("text_editor/highlighting/completion_font_color")).to_html());
+ cf->set_value(theme_section, "caret_color", ((Color)get("text_editor/highlighting/caret_color")).to_html());
+ cf->set_value(theme_section, "caret_background_color", ((Color)get("text_editor/highlighting/caret_background_color")).to_html());
+ cf->set_value(theme_section, "line_number_color", ((Color)get("text_editor/highlighting/line_number_color")).to_html());
+ cf->set_value(theme_section, "text_color", ((Color)get("text_editor/highlighting/text_color")).to_html());
+ cf->set_value(theme_section, "text_selected_color", ((Color)get("text_editor/highlighting/text_selected_color")).to_html());
+ cf->set_value(theme_section, "keyword_color", ((Color)get("text_editor/highlighting/keyword_color")).to_html());
+ cf->set_value(theme_section, "base_type_color", ((Color)get("text_editor/highlighting/base_type_color")).to_html());
+ cf->set_value(theme_section, "engine_type_color", ((Color)get("text_editor/highlighting/engine_type_color")).to_html());
+ cf->set_value(theme_section, "function_color", ((Color)get("text_editor/highlighting/function_color")).to_html());
+ cf->set_value(theme_section, "member_variable_color", ((Color)get("text_editor/highlighting/member_variable_color")).to_html());
+ cf->set_value(theme_section, "comment_color", ((Color)get("text_editor/highlighting/comment_color")).to_html());
+ cf->set_value(theme_section, "string_color", ((Color)get("text_editor/highlighting/string_color")).to_html());
+ cf->set_value(theme_section, "number_color", ((Color)get("text_editor/highlighting/number_color")).to_html());
+ cf->set_value(theme_section, "symbol_color", ((Color)get("text_editor/highlighting/symbol_color")).to_html());
+ cf->set_value(theme_section, "selection_color", ((Color)get("text_editor/highlighting/selection_color")).to_html());
+ cf->set_value(theme_section, "brace_mismatch_color", ((Color)get("text_editor/highlighting/brace_mismatch_color")).to_html());
+ cf->set_value(theme_section, "current_line_color", ((Color)get("text_editor/highlighting/current_line_color")).to_html());
+ cf->set_value(theme_section, "mark_color", ((Color)get("text_editor/highlighting/mark_color")).to_html());
+ cf->set_value(theme_section, "breakpoint_color", ((Color)get("text_editor/highlighting/breakpoint_color")).to_html());
+ cf->set_value(theme_section, "word_highlighted_color", ((Color)get("text_editor/highlighting/word_highlighted_color")).to_html());
+ cf->set_value(theme_section, "search_result_color", ((Color)get("text_editor/highlighting/search_result_color")).to_html());
+ cf->set_value(theme_section, "search_result_border_color", ((Color)get("text_editor/highlighting/search_result_border_color")).to_html());
Error err = cf->save(p_file);
@@ -1051,17 +1050,17 @@ void EditorSettings::set_last_selected_language(String p_language)
void EditorSettings::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("erase","property"),&EditorSettings::erase);
- ObjectTypeDB::bind_method(_MD("get_settings_path"),&EditorSettings::get_settings_path);
- ObjectTypeDB::bind_method(_MD("get_project_settings_path"),&EditorSettings::get_project_settings_path);
+ ClassDB::bind_method(_MD("erase","property"),&EditorSettings::erase);
+ ClassDB::bind_method(_MD("get_settings_path"),&EditorSettings::get_settings_path);
+ ClassDB::bind_method(_MD("get_project_settings_path"),&EditorSettings::get_project_settings_path);
- ObjectTypeDB::bind_method(_MD("add_property_info", "info"),&EditorSettings::_add_property_info_bind);
+ ClassDB::bind_method(_MD("add_property_info", "info"),&EditorSettings::_add_property_info_bind);
- ObjectTypeDB::bind_method(_MD("set_favorite_dirs","dirs"),&EditorSettings::set_favorite_dirs);
- ObjectTypeDB::bind_method(_MD("get_favorite_dirs"),&EditorSettings::get_favorite_dirs);
+ ClassDB::bind_method(_MD("set_favorite_dirs","dirs"),&EditorSettings::set_favorite_dirs);
+ ClassDB::bind_method(_MD("get_favorite_dirs"),&EditorSettings::get_favorite_dirs);
- ObjectTypeDB::bind_method(_MD("set_recent_dirs","dirs"),&EditorSettings::set_recent_dirs);
- ObjectTypeDB::bind_method(_MD("get_recent_dirs"),&EditorSettings::get_recent_dirs);
+ ClassDB::bind_method(_MD("set_recent_dirs","dirs"),&EditorSettings::set_recent_dirs);
+ ClassDB::bind_method(_MD("get_recent_dirs"),&EditorSettings::get_recent_dirs);
ADD_SIGNAL(MethodInfo("settings_changed"));
@@ -1098,7 +1097,6 @@ EditorSettings::EditorSettings() {
}
_load_defaults();
- save_changed_setting=false;
}
@@ -1106,7 +1104,7 @@ EditorSettings::EditorSettings() {
EditorSettings::~EditorSettings() {
-// singleton=NULL;
+ //singleton=NULL;
}
Ref<ShortCut> ED_GET_SHORTCUT(const String& p_path) {
diff --git a/tools/editor/editor_settings.h b/tools/editor/editor_settings.h
index a976602304..c11feef667 100644
--- a/tools/editor/editor_settings.h
+++ b/tools/editor/editor_settings.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -41,7 +41,7 @@ class EditorPlugin;
class EditorSettings : public Resource {
- OBJ_TYPE( EditorSettings, Resource );
+ GDCLASS( EditorSettings, Resource );
private:
_THREAD_SAFE_CLASS_
diff --git a/tools/editor/editor_sub_scene.cpp b/tools/editor/editor_sub_scene.cpp
index d32dbcd2e6..094cf049b3 100644
--- a/tools/editor/editor_sub_scene.cpp
+++ b/tools/editor/editor_sub_scene.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,10 +27,11 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_sub_scene.h"
+
#include "scene/gui/margin_container.h"
#include "scene/resources/packed_scene.h"
-void EditorSubScene::_path_selected(const String& p_path) {
+void EditorSubScene::_path_selected(const String& p_path) {
path->set_text(p_path);
_path_changed(p_path);
@@ -75,7 +76,7 @@ void EditorSubScene::_notification(int p_what) {
if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
- if (!is_visible()) {
+ if (!is_visible_in_tree()) {
}
@@ -90,8 +91,8 @@ void EditorSubScene::_fill_tree(Node* p_node,TreeItem *p_parent) {
it->set_text(0,p_node->get_name());
it->set_editable(0,false);
it->set_selectable(0,true);
- if (has_icon(p_node->get_type(),"EditorIcons")) {
- it->set_icon(0,get_icon(p_node->get_type(),"EditorIcons"));
+ if (has_icon(p_node->get_class(),"EditorIcons")) {
+ it->set_icon(0,get_icon(p_node->get_class(),"EditorIcons"));
}
@@ -186,9 +187,9 @@ void EditorSubScene::clear() {
void EditorSubScene::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_path_selected"),&EditorSubScene::_path_selected);
- ObjectTypeDB::bind_method(_MD("_path_changed"),&EditorSubScene::_path_changed);
- ObjectTypeDB::bind_method(_MD("_path_browse"),&EditorSubScene::_path_browse);
+ ClassDB::bind_method(_MD("_path_selected"),&EditorSubScene::_path_selected);
+ ClassDB::bind_method(_MD("_path_changed"),&EditorSubScene::_path_changed);
+ ClassDB::bind_method(_MD("_path_browse"),&EditorSubScene::_path_browse);
ADD_SIGNAL( MethodInfo("subscene_selected"));
}
@@ -203,7 +204,7 @@ EditorSubScene::EditorSubScene() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+ //set_child_rect(vb);
HBoxContainer *hb = memnew( HBoxContainer );
path = memnew( LineEdit );
diff --git a/tools/editor/editor_sub_scene.h b/tools/editor/editor_sub_scene.h
index 3dd86eefda..cc9faffc77 100644
--- a/tools/editor/editor_sub_scene.h
+++ b/tools/editor/editor_sub_scene.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,7 +35,7 @@
class EditorSubScene : public ConfirmationDialog {
- OBJ_TYPE(EditorSubScene,ConfirmationDialog);
+ GDCLASS(EditorSubScene,ConfirmationDialog);
LineEdit *path;
diff --git a/tools/editor/editor_themes.cpp b/tools/editor/editor_themes.cpp
index 08f14ec167..7657996b81 100644
--- a/tools/editor/editor_themes.cpp
+++ b/tools/editor/editor_themes.cpp
@@ -1,11 +1,11 @@
/*************************************************************************/
-/* editor_themes.cpp */
+/* editor_themes.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,8 +26,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-
#include "editor_themes.h"
+
#include "editor_icons.h"
#include "editor_fonts.h"
#include "editor_settings.h"
@@ -62,12 +62,12 @@ Ref<Theme> create_custom_theme()
{
Ref<Theme> theme;
- String custom_theme = EditorSettings::get_singleton()->get("global/custom_theme");
+ String custom_theme = EditorSettings::get_singleton()->get("interface/custom_theme");
if (custom_theme!="") {
theme = ResourceLoader::load(custom_theme);
}
- String global_font = EditorSettings::get_singleton()->get("global/custom_font");
+ String global_font = EditorSettings::get_singleton()->get("interface/custom_font");
if (global_font!="") {
Ref<Font> fnt = ResourceLoader::load(global_font);
if (fnt.is_valid()) {
diff --git a/tools/editor/editor_themes.h b/tools/editor/editor_themes.h
index db49801600..bf15420917 100644
--- a/tools/editor/editor_themes.h
+++ b/tools/editor/editor_themes.h
@@ -1,11 +1,11 @@
/*************************************************************************/
-/* editor_themes.h */
+/* editor_themes.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/file_type_cache.cpp b/tools/editor/file_type_cache.cpp
index 8a47f49b03..aff99fbc05 100644
--- a/tools/editor/file_type_cache.cpp
+++ b/tools/editor/file_type_cache.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,10 +27,10 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "file_type_cache.h"
+
#include "globals.h"
#include "os/file_access.h"
-
FileTypeCache* FileTypeCache::singleton=NULL;
bool FileTypeCache::has_file(const String& p_path) const {
@@ -55,7 +55,7 @@ void FileTypeCache::set_file_type(const String& p_path,const String& p_type){
void FileTypeCache::load() {
GLOBAL_LOCK_FUNCTION
- String project=Globals::get_singleton()->get_resource_path();
+ String project=GlobalConfig::get_singleton()->get_resource_path();
FileAccess *f =FileAccess::open(project+"/file_type_cache.cch",FileAccess::READ);
if (!f) {
@@ -81,7 +81,7 @@ void FileTypeCache::load() {
void FileTypeCache::save() {
GLOBAL_LOCK_FUNCTION
- String project=Globals::get_singleton()->get_resource_path();
+ String project=GlobalConfig::get_singleton()->get_resource_path();
FileAccess *f =FileAccess::open(project+"/file_type_cache.cch",FileAccess::WRITE);
if (!f) {
diff --git a/tools/editor/file_type_cache.h b/tools/editor/file_type_cache.h
index 18451cbe19..25755f168c 100644
--- a/tools/editor/file_type_cache.h
+++ b/tools/editor/file_type_cache.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,7 +33,7 @@
class FileTypeCache : Object {
- OBJ_TYPE(FileTypeCache,Object);
+ GDCLASS(FileTypeCache,Object);
HashMap<String,String> file_type_map;
diff --git a/tools/editor/fileserver/SCsub b/tools/editor/fileserver/SCsub
index 6299fd416c..4bf55189cc 100644
--- a/tools/editor/fileserver/SCsub
+++ b/tools/editor/fileserver/SCsub
@@ -2,4 +2,4 @@
Import('env')
Export('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
diff --git a/tools/editor/fileserver/editor_file_server.cpp b/tools/editor/fileserver/editor_file_server.cpp
index c464e10fc2..2e5dbf6248 100644
--- a/tools/editor/fileserver/editor_file_server.cpp
+++ b/tools/editor/fileserver/editor_file_server.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_file_server.h"
+
#include "io/marshalls.h"
#include "io/marshalls.h"
#include "../editor_settings.h"
@@ -38,7 +39,7 @@
void EditorFileServer::_close_client(ClientData *cd) {
- cd->connection->disconnect();
+ cd->connection->disconnect_from_host();
cd->efs->wait_mutex->lock();
cd->efs->to_wait.insert(cd->thread);
cd->efs->wait_mutex->unlock();
@@ -321,8 +322,8 @@ void EditorFileServer::start() {
stop();
- port=EDITOR_DEF("file_server/port",6010);
- password=EDITOR_DEF("file_server/password","");
+ port=EDITOR_DEF("filesystem/file_server/port",6010);
+ password=EDITOR_DEF("filesystem/file_server/password","");
cmd=CMD_ACTIVATE;
}
@@ -346,8 +347,8 @@ EditorFileServer::EditorFileServer() {
cmd=CMD_NONE;
thread=Thread::create(_thread_start,this);
- EDITOR_DEF("file_server/port",6010);
- EDITOR_DEF("file_server/password","");
+ EDITOR_DEF("filesystem/file_server/port",6010);
+ EDITOR_DEF("filesystem/file_server/password","");
}
EditorFileServer::~EditorFileServer() {
diff --git a/tools/editor/fileserver/editor_file_server.h b/tools/editor/fileserver/editor_file_server.h
index fcb3d8546c..31f8ae84b8 100644
--- a/tools/editor/fileserver/editor_file_server.h
+++ b/tools/editor/fileserver/editor_file_server.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,7 +37,7 @@
class EditorFileServer : public Object {
- OBJ_TYPE(EditorFileServer,Object);
+ GDCLASS(EditorFileServer,Object);
enum Command {
CMD_NONE,
diff --git a/tools/editor/filesystem_dock.cpp b/tools/editor/filesystem_dock.cpp
index 5b1e80fc3b..021d5c4eb9 100644
--- a/tools/editor/filesystem_dock.cpp
+++ b/tools/editor/filesystem_dock.cpp
@@ -1,11 +1,11 @@
/*************************************************************************/
-/* scenes_dock.cpp */
+/* filesystem_dock.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,25 +27,26 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "filesystem_dock.h"
+
#include "os/dir_access.h"
#include "os/file_access.h"
#include "globals.h"
-
#include "io/resource_loader.h"
#include "os/os.h"
#include "editor_node.h"
-
#include "editor_settings.h"
#include "scene/main/viewport.h"
-
bool FileSystemDock::_create_tree(TreeItem *p_parent,EditorFileSystemDirectory *p_dir) {
-
TreeItem *item = tree->create_item(p_parent);
String dname=p_dir->get_name();
if (dname=="")
dname="res://";
+ else {
+ // collapse every tree item but the root folder
+ item->set_collapsed(true);
+ }
item->set_text(0,dname);
item->set_icon(0,get_icon("Folder","EditorIcons"));
@@ -160,7 +161,8 @@ void FileSystemDock::_notification(int p_what) {
button_hist_next->set_icon( get_icon("Forward","EditorIcons"));
button_hist_prev->set_icon( get_icon("Back","EditorIcons"));
- file_options->connect("item_pressed",this,"_file_option");
+ file_options->connect("id_pressed",this,"_file_option");
+ folder_options->connect("id_pressed",this,"_folder_option");
button_back->connect("pressed",this,"_go_to_tree",varray(),CONNECT_DEFERRED);
@@ -168,13 +170,13 @@ void FileSystemDock::_notification(int p_what) {
_update_tree(); //maybe it finished already
if (EditorFileSystem::get_singleton()->is_scanning()) {
- _set_scannig_mode();
+ _set_scanning_mode();
}
} break;
case NOTIFICATION_PROCESS: {
if (EditorFileSystem::get_singleton()->is_scanning()) {
- scanning_progress->set_val(EditorFileSystem::get_singleton()->get_scanning_progress()*100);
+ scanning_progress->set_value(EditorFileSystem::get_singleton()->get_scanning_progress()*100);
}
} break;
case NOTIFICATION_EXIT_TREE: {
@@ -183,7 +185,7 @@ void FileSystemDock::_notification(int p_what) {
case NOTIFICATION_DRAG_BEGIN: {
Dictionary dd = get_viewport()->gui_get_drag_data();
- if (tree->is_visible() && dd.has("type") ) {
+ if (tree->is_visible_in_tree() && dd.has("type") ) {
if ( (String(dd["type"])=="files") || (String(dd["type"])=="files_and_dirs") || (String(dd["type"])=="resource")) {
tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM);
}
@@ -201,7 +203,7 @@ void FileSystemDock::_notification(int p_what) {
} break;
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
- int new_mode = int(EditorSettings::get_singleton()->get("filesystem_dock/display_mode"));
+ int new_mode = int(EditorSettings::get_singleton()->get("docks/filesystem/display_mode"));
if (new_mode != display_mode) {
set_display_mode(new_mode);
@@ -289,7 +291,7 @@ void FileSystemDock::_thumbnail_done(const String& p_path,const Ref<Texture>& p_
bool valid=false;
- if (!search_box->is_hidden()) {
+ if (search_box->is_visible()) {
valid=true;
} else {
valid=(path==p_path.get_base_dir());
@@ -323,7 +325,7 @@ void FileSystemDock::_change_file_display() {
button_display_mode->set_icon( get_icon("FileList","EditorIcons"));
}
- EditorSettings::get_singleton()->set("filesystem_dock/display_mode", display_mode);
+ EditorSettings::get_singleton()->set("docks/filesystem/display_mode", display_mode);
_update_files(true);
}
@@ -393,11 +395,11 @@ void FileSystemDock::_update_files(bool p_keep_selection) {
current_path->set_text(path);
- EditorFileSystemDirectory *efd = EditorFileSystem::get_singleton()->get_path(path);
+ EditorFileSystemDirectory *efd = EditorFileSystem::get_singleton()->get_filesystem_path(path);
if (!efd)
return;
- int thumbnail_size = EditorSettings::get_singleton()->get("filesystem_dock/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("docks/filesystem/thumbnail_size");
thumbnail_size*=EDSCALE;
Ref<Texture> folder_thumbnail;
Ref<Texture> file_thumbnail;
@@ -621,7 +623,7 @@ void FileSystemDock::_go_to_dir(const String& p_dir){
void FileSystemDock::_preview_invalidated(const String& p_path) {
- if (p_path.get_base_dir()==path && search_box->get_text()==String() && file_list_vb->is_visible()) {
+ if (p_path.get_base_dir()==path && search_box->get_text()==String() && file_list_vb->is_visible_in_tree()) {
for(int i=0;i<files->get_item_count();i++) {
@@ -646,13 +648,13 @@ void FileSystemDock::_fs_changed() {
scanning_vb->hide();
split_box->show();
- if (!tree->is_hidden()) {
+ if (tree->is_visible()) {
button_favorite->show();
_update_tree();
}
- if (!file_list_vb->is_hidden()) {
+ if (file_list_vb->is_visible()) {
_update_files(true);
}
@@ -660,7 +662,7 @@ void FileSystemDock::_fs_changed() {
set_process(false);
}
-void FileSystemDock::_set_scannig_mode() {
+void FileSystemDock::_set_scanning_mode() {
split_box->hide();
button_hist_prev->set_disabled(true);
@@ -668,9 +670,9 @@ void FileSystemDock::_set_scannig_mode() {
scanning_vb->show();
set_process(true);
if (EditorFileSystem::get_singleton()->is_scanning()) {
- scanning_progress->set_val(EditorFileSystem::get_singleton()->get_scanning_progress()*100);
+ scanning_progress->set_value(EditorFileSystem::get_singleton()->get_scanning_progress()*100);
} else {
- scanning_progress->set_val(0);
+ scanning_progress->set_value(0);
}
}
@@ -682,14 +684,14 @@ void FileSystemDock::_fw_history() {
path=history[history_pos];
- if (!tree->is_hidden()) {
+ if (tree->is_visible()) {
_update_tree();
tree->grab_focus();
tree->ensure_cursor_is_visible();
}
- if (!file_list_vb->is_hidden()) {
+ if (file_list_vb->is_visible()) {
_update_files(false);
current_path->set_text(path);
}
@@ -707,13 +709,13 @@ void FileSystemDock::_bw_history() {
path=history[history_pos];
- if (!tree->is_hidden()) {
+ if (tree->is_visible()) {
_update_tree();
tree->grab_focus();
tree->ensure_cursor_is_visible();
}
- if (!file_list_vb->is_hidden()) {
+ if (file_list_vb->is_visible()) {
_update_files(false);
current_path->set_text(path);
}
@@ -829,7 +831,7 @@ void FileSystemDock::_move_operation(const String& p_to_path) {
return;
}
- EditorFileSystemDirectory *efsd=EditorFileSystem::get_singleton()->get_path(move_dirs[i]);
+ EditorFileSystemDirectory *efsd=EditorFileSystem::get_singleton()->get_filesystem_path(move_dirs[i]);
if (!efsd)
continue;
_find_inside_move_files(efsd,inside_files);
@@ -927,7 +929,7 @@ void FileSystemDock::_file_option(int p_option) {
String path = files->get_item_metadata(idx);
if (p_option == FILE_SHOW_IN_EXPLORER) {
- String dir = Globals::get_singleton()->globalize_path(path);
+ String dir = GlobalConfig::get_singleton()->globalize_path(path);
dir = dir.substr(0, dir.find_last("/"));
OS::get_singleton()->shell_open(String("file://")+dir);
return;
@@ -987,7 +989,7 @@ void FileSystemDock::_file_option(int p_option) {
} break;
case FILE_MOVE: {
- move_dirs.clear();;
+ move_dirs.clear();
move_files.clear();
for(int i=0;i<files->get_item_count();i++) {
@@ -1012,7 +1014,7 @@ void FileSystemDock::_file_option(int p_option) {
if (move_dirs.empty() && move_files.size()==1) {
rename_dialog->clear_filters();
- rename_dialog->add_filter("*."+move_files[0].extension());
+ rename_dialog->add_filter("*."+move_files[0].get_extension());
rename_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE);
rename_dialog->set_current_path(move_files[0]);
rename_dialog->popup_centered_ratio();
@@ -1096,6 +1098,30 @@ void FileSystemDock::_file_option(int p_option) {
}
}
+void FileSystemDock::_folder_option(int p_option) {
+
+ TreeItem *item = tree->get_selected();
+ TreeItem *child = item->get_children();
+
+ switch(p_option) {
+
+ case FOLDER_EXPAND_ALL:
+ item->set_collapsed(false);
+ while(child) {
+ child->set_collapsed(false);
+ child = child->get_next();
+ }
+ break;
+
+ case FOLDER_COLLAPSE_ALL:
+ while(child) {
+ child->set_collapsed(true);
+ child = child->get_next();
+ }
+ break;
+ }
+}
+
void FileSystemDock::_open_pressed(){
@@ -1122,14 +1148,25 @@ void FileSystemDock::_open_pressed(){
current_path->set_text(path);
_push_to_history();
-// emit_signal("open",path);
+ //emit_signal("open",path);
+
+}
+
+void FileSystemDock::_dir_rmb_pressed(const Vector2& p_pos) {
+ folder_options->clear();
+ folder_options->set_size(Size2(1,1));
+
+ folder_options->add_item(TTR("Expand all"),FOLDER_EXPAND_ALL);
+ folder_options->add_item(TTR("Collapse all"),FOLDER_COLLAPSE_ALL);
+ folder_options->set_pos(files->get_global_pos() + p_pos);
+ folder_options->popup();
}
void FileSystemDock::_search_changed(const String& p_text) {
- if (!search_box->is_visible())
+ if (!search_box->is_visible_in_tree())
return; //wtf
_update_files(false);
@@ -1137,7 +1174,7 @@ void FileSystemDock::_search_changed(const String& p_text) {
void FileSystemDock::_rescan() {
- _set_scannig_mode();
+ _set_scanning_mode();
EditorFileSystem::get_singleton()->scan();
}
@@ -1149,6 +1186,14 @@ void FileSystemDock::fix_dependencies(const String& p_for_file) {
void FileSystemDock::focus_on_filter() {
+ if (!search_box->is_visible_in_tree()) {
+ // Tree mode, switch to files list with search box
+ tree->hide();
+ file_list_vb->show();
+ button_favorite->hide();
+ }
+
+ search_box->grab_focus();
}
void FileSystemDock::set_display_mode(int p_mode) {
@@ -1204,8 +1249,10 @@ Variant FileSystemDock::get_drag_data_fw(const Point2& p_point,Control* p_from)
if (seldirs.empty() && selfiles.empty())
return Variant();
- //if (seldirs.size() && selfiles.size())
- // return Variant(); //can't really mix files and dirs (i think?) - yes you can, commenting
+ /*
+ if (seldirs.size() && selfiles.size())
+ return Variant(); //can't really mix files and dirs (i think?) - yes you can, commenting
+ */
/*if (selfiles.size()==1) {
Ref<Resource> resource = ResourceLoader::load(files->get_item_metadata(selfiles.front()->get()));
@@ -1579,38 +1626,53 @@ void FileSystemDock::_files_list_rmb_select(int p_item,const Vector2& p_pos) {
}
-void FileSystemDock::_bind_methods() {
-
- ObjectTypeDB::bind_method(_MD("_update_tree"),&FileSystemDock::_update_tree);
- ObjectTypeDB::bind_method(_MD("_rescan"),&FileSystemDock::_rescan);
- ObjectTypeDB::bind_method(_MD("_favorites_pressed"),&FileSystemDock::_favorites_pressed);
-// ObjectTypeDB::bind_method(_MD("_instance_pressed"),&ScenesDock::_instance_pressed);
- ObjectTypeDB::bind_method(_MD("_open_pressed"),&FileSystemDock::_open_pressed);
+void FileSystemDock::select_file(const String& p_file) {
- ObjectTypeDB::bind_method(_MD("_thumbnail_done"),&FileSystemDock::_thumbnail_done);
- ObjectTypeDB::bind_method(_MD("_select_file"), &FileSystemDock::_select_file);
- ObjectTypeDB::bind_method(_MD("_go_to_tree"), &FileSystemDock::_go_to_tree);
- ObjectTypeDB::bind_method(_MD("_go_to_dir"), &FileSystemDock::_go_to_dir);
- ObjectTypeDB::bind_method(_MD("_change_file_display"), &FileSystemDock::_change_file_display);
- ObjectTypeDB::bind_method(_MD("_fw_history"), &FileSystemDock::_fw_history);
- ObjectTypeDB::bind_method(_MD("_bw_history"), &FileSystemDock::_bw_history);
- ObjectTypeDB::bind_method(_MD("_fs_changed"), &FileSystemDock::_fs_changed);
- ObjectTypeDB::bind_method(_MD("_dir_selected"), &FileSystemDock::_dir_selected);
- ObjectTypeDB::bind_method(_MD("_file_option"), &FileSystemDock::_file_option);
- ObjectTypeDB::bind_method(_MD("_move_operation"), &FileSystemDock::_move_operation);
- ObjectTypeDB::bind_method(_MD("_rename_operation"), &FileSystemDock::_rename_operation);
-
- ObjectTypeDB::bind_method(_MD("_search_changed"), &FileSystemDock::_search_changed);
-
- ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &FileSystemDock::get_drag_data_fw);
- ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &FileSystemDock::can_drop_data_fw);
- ObjectTypeDB::bind_method(_MD("drop_data_fw"), &FileSystemDock::drop_data_fw);
- ObjectTypeDB::bind_method(_MD("_files_list_rmb_select"),&FileSystemDock::_files_list_rmb_select);
+ _go_to_dir(p_file.get_base_dir());
+ for(int i=0;i<files->get_item_count();i++) {
+ if (files->get_item_metadata(i)==p_file) {
+ files->select(i);
+ files->ensure_current_is_visible();
+ break;
+ }
+ }
- ObjectTypeDB::bind_method(_MD("_preview_invalidated"),&FileSystemDock::_preview_invalidated);
+}
+void FileSystemDock::_bind_methods() {
- ADD_SIGNAL(MethodInfo("instance", PropertyInfo(Variant::STRING_ARRAY, "files")));
+ ClassDB::bind_method(_MD("_update_tree"),&FileSystemDock::_update_tree);
+ ClassDB::bind_method(_MD("_rescan"),&FileSystemDock::_rescan);
+ ClassDB::bind_method(_MD("_favorites_pressed"),&FileSystemDock::_favorites_pressed);
+ //ClassDB::bind_method(_MD("_instance_pressed"),&ScenesDock::_instance_pressed);
+ ClassDB::bind_method(_MD("_open_pressed"),&FileSystemDock::_open_pressed);
+ ClassDB::bind_method(_MD("_dir_rmb_pressed"),&FileSystemDock::_dir_rmb_pressed);
+
+ ClassDB::bind_method(_MD("_thumbnail_done"),&FileSystemDock::_thumbnail_done);
+ ClassDB::bind_method(_MD("_select_file"), &FileSystemDock::_select_file);
+ ClassDB::bind_method(_MD("_go_to_tree"), &FileSystemDock::_go_to_tree);
+ ClassDB::bind_method(_MD("_go_to_dir"), &FileSystemDock::_go_to_dir);
+ ClassDB::bind_method(_MD("_change_file_display"), &FileSystemDock::_change_file_display);
+ ClassDB::bind_method(_MD("_fw_history"), &FileSystemDock::_fw_history);
+ ClassDB::bind_method(_MD("_bw_history"), &FileSystemDock::_bw_history);
+ ClassDB::bind_method(_MD("_fs_changed"), &FileSystemDock::_fs_changed);
+ ClassDB::bind_method(_MD("_dir_selected"), &FileSystemDock::_dir_selected);
+ ClassDB::bind_method(_MD("_file_option"), &FileSystemDock::_file_option);
+ ClassDB::bind_method(_MD("_folder_option"), &FileSystemDock::_folder_option);
+ ClassDB::bind_method(_MD("_move_operation"), &FileSystemDock::_move_operation);
+ ClassDB::bind_method(_MD("_rename_operation"), &FileSystemDock::_rename_operation);
+
+ ClassDB::bind_method(_MD("_search_changed"), &FileSystemDock::_search_changed);
+
+ ClassDB::bind_method(_MD("get_drag_data_fw"), &FileSystemDock::get_drag_data_fw);
+ ClassDB::bind_method(_MD("can_drop_data_fw"), &FileSystemDock::can_drop_data_fw);
+ ClassDB::bind_method(_MD("drop_data_fw"), &FileSystemDock::drop_data_fw);
+ ClassDB::bind_method(_MD("_files_list_rmb_select"),&FileSystemDock::_files_list_rmb_select);
+
+ ClassDB::bind_method(_MD("_preview_invalidated"),&FileSystemDock::_preview_invalidated);
+
+
+ ADD_SIGNAL(MethodInfo("instance", PropertyInfo(Variant::POOL_STRING_ARRAY, "files")));
ADD_SIGNAL(MethodInfo("open"));
}
@@ -1660,7 +1722,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
button_favorite->set_focus_mode(FOCUS_NONE);
-// Control *spacer = memnew( Control);
+ //Control *spacer = memnew( Control);
@@ -1686,6 +1748,9 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
file_options = memnew( PopupMenu );
add_child(file_options);
+ folder_options = memnew ( PopupMenu );
+ add_child(folder_options);
+
split_box = memnew( VSplitContainer );
add_child(split_box);
split_box->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -1695,12 +1760,14 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
tree->set_hide_root(true);
split_box->add_child(tree);
tree->set_drag_forwarding(this);
+ tree->set_allow_rmb_select(true);
//tree->set_v_size_flags(SIZE_EXPAND_FILL);
tree->connect("item_edited",this,"_favorite_toggled");
tree->connect("item_activated",this,"_open_pressed");
tree->connect("cell_selected",this,"_dir_selected");
+ tree->connect("item_rmb_selected",this,"_dir_rmb_pressed");
files = memnew( ItemList );
files->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -1725,8 +1792,8 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
path_hb->add_child(search_box);
search_box->connect("text_changed",this,"_search_changed");
- search_icon = memnew( TextureFrame );
- search_icon->set_stretch_mode(TextureFrame::STRETCH_KEEP_CENTERED);
+ search_icon = memnew( TextureRect );
+ search_icon->set_stretch_mode(TextureRect::STRETCH_KEEP_CENTERED);
path_hb->add_child(search_icon);
button_display_mode = memnew( ToolButton );
diff --git a/tools/editor/filesystem_dock.h b/tools/editor/filesystem_dock.h
index f5b96760fc..73265657e5 100644
--- a/tools/editor/filesystem_dock.h
+++ b/tools/editor/filesystem_dock.h
@@ -1,11 +1,11 @@
/*************************************************************************/
-/* scenes_dock.h */
+/* filesystem_dock.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -52,7 +52,7 @@ class EditorNode;
class FileSystemDock : public VBoxContainer {
- OBJ_TYPE( FileSystemDock, VBoxContainer );
+ GDCLASS( FileSystemDock, VBoxContainer );
public:
enum DisplayMode {
@@ -73,6 +73,11 @@ private:
FILE_COPY_PATH
};
+ enum FolderMenu {
+ FOLDER_EXPAND_ALL,
+ FOLDER_COLLAPSE_ALL
+ };
+
VBoxContainer *scanning_vb;
ProgressBar *scanning_progress;
@@ -90,13 +95,14 @@ private:
Button *button_hist_prev;
LineEdit *current_path;
LineEdit *search_box;
- TextureFrame *search_icon;
+ TextureRect *search_icon;
HBoxContainer *path_hb;
bool split_mode;
DisplayMode display_mode;
PopupMenu *file_options;
+ PopupMenu *folder_options;
DependencyEditor *deps_editor;
DependencyEditorOwners *owners_editor;
@@ -134,6 +140,7 @@ private:
void _file_option(int p_option);
+ void _folder_option(int p_option);
void _update_files(bool p_keep_selection);
void _change_file_display();
@@ -146,11 +153,12 @@ private:
void _dir_selected();
void _update_tree();
void _rescan();
- void _set_scannig_mode();
+ void _set_scanning_mode();
void _favorites_pressed();
void _open_pressed();
+ void _dir_rmb_pressed(const Vector2& local_mouse_pos);
void _search_changed(const String& p_text);
@@ -191,6 +199,10 @@ public:
void set_display_mode(int p_mode);
+ int get_split_offset() { return split_box->get_split_offset(); }
+ void set_split_offset(int p_offset) { split_box->set_split_offset(p_offset); }
+ void select_file(const String& p_file);
+
FileSystemDock(EditorNode *p_editor);
~FileSystemDock();
};
diff --git a/tools/editor/groups_editor.cpp b/tools/editor/groups_editor.cpp
index 5b7bc1da78..90f0bab6dd 100644
--- a/tools/editor/groups_editor.cpp
+++ b/tools/editor/groups_editor.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,6 +32,7 @@
#include "scene/gui/label.h"
#include "editor_node.h"
#include "scene/resources/packed_scene.h"
+
void GroupsEditor::_add_group(const String& p_group) {
if (!node)
@@ -147,9 +148,9 @@ void GroupsEditor::set_current(Node* p_node) {
void GroupsEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_add_group",&GroupsEditor::_add_group);
- ObjectTypeDB::bind_method("_remove_group",&GroupsEditor::_remove_group);
- ObjectTypeDB::bind_method("update_tree",&GroupsEditor::update_tree);
+ ClassDB::bind_method("_add_group",&GroupsEditor::_add_group);
+ ClassDB::bind_method("_remove_group",&GroupsEditor::_remove_group);
+ ClassDB::bind_method("update_tree",&GroupsEditor::update_tree);
}
GroupsEditor::GroupsEditor() {
diff --git a/tools/editor/groups_editor.h b/tools/editor/groups_editor.h
index 6edb577140..9ab75c6cfd 100644
--- a/tools/editor/groups_editor.h
+++ b/tools/editor/groups_editor.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -41,7 +41,7 @@
class GroupsEditor : public VBoxContainer {
- OBJ_TYPE(GroupsEditor,VBoxContainer);
+ GDCLASS(GroupsEditor,VBoxContainer);
Node *node;
diff --git a/tools/editor/icons/2x/icon_anchor.png b/tools/editor/icons/2x/icon_anchor.png
index db964fd910..7e9e259c13 100644
--- a/tools/editor/icons/2x/icon_anchor.png
+++ b/tools/editor/icons/2x/icon_anchor.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_animation.png b/tools/editor/icons/2x/icon_animation.png
index 5b21e99e43..ef18959a74 100644
--- a/tools/editor/icons/2x/icon_animation.png
+++ b/tools/editor/icons/2x/icon_animation.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_area.png b/tools/editor/icons/2x/icon_area.png
index ff332bf748..d9cefe8fc4 100644
--- a/tools/editor/icons/2x/icon_area.png
+++ b/tools/editor/icons/2x/icon_area.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_auto_play.png b/tools/editor/icons/2x/icon_auto_play.png
index 9a50d1c030..ec31dee958 100644
--- a/tools/editor/icons/2x/icon_auto_play.png
+++ b/tools/editor/icons/2x/icon_auto_play.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_bit_map.png b/tools/editor/icons/2x/icon_bit_map.png
new file mode 100644
index 0000000000..7372b85944
--- /dev/null
+++ b/tools/editor/icons/2x/icon_bit_map.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_bitmap_font.png b/tools/editor/icons/2x/icon_bitmap_font.png
index df6d2a5081..c533b5f40e 100644
--- a/tools/editor/icons/2x/icon_bitmap_font.png
+++ b/tools/editor/icons/2x/icon_bitmap_font.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_canvas_layer.png b/tools/editor/icons/2x/icon_canvas_layer.png
index 9861d3ef45..8a4b31cd7d 100644
--- a/tools/editor/icons/2x/icon_canvas_layer.png
+++ b/tools/editor/icons/2x/icon_canvas_layer.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_canvas_modulate.png b/tools/editor/icons/2x/icon_canvas_modulate.png
index 07ee8a0570..6cc15e2655 100644
--- a/tools/editor/icons/2x/icon_canvas_modulate.png
+++ b/tools/editor/icons/2x/icon_canvas_modulate.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_color_rect.png b/tools/editor/icons/2x/icon_color_rect.png
new file mode 100644
index 0000000000..153029ac20
--- /dev/null
+++ b/tools/editor/icons/2x/icon_color_rect.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_copy_node_path.png b/tools/editor/icons/2x/icon_copy_node_path.png
new file mode 100644
index 0000000000..056748d20b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_copy_node_path.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_create_new_scene_from.png b/tools/editor/icons/2x/icon_create_new_scene_from.png
index 15b2c89dc5..cc3be48033 100644
--- a/tools/editor/icons/2x/icon_create_new_scene_from.png
+++ b/tools/editor/icons/2x/icon_create_new_scene_from.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_cube_map.png b/tools/editor/icons/2x/icon_cube_map.png
new file mode 100644
index 0000000000..0edf82a88e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_cube_map.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_2d.png b/tools/editor/icons/2x/icon_curve_2d.png
new file mode 100644
index 0000000000..69a6f9a9dc
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_3d.png b/tools/editor/icons/2x/icon_curve_3d.png
new file mode 100644
index 0000000000..e989df4769
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_3d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dynamic_font_data.png b/tools/editor/icons/2x/icon_dynamic_font_data.png
index 397a849b4f..6d76303c81 100644
--- a/tools/editor/icons/2x/icon_dynamic_font_data.png
+++ b/tools/editor/icons/2x/icon_dynamic_font_data.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_environment.png b/tools/editor/icons/2x/icon_environment.png
new file mode 100644
index 0000000000..4c4c30b0e5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_environment.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_error.png b/tools/editor/icons/2x/icon_error.png
index b577182044..a6d79ab41b 100644
--- a/tools/editor/icons/2x/icon_error.png
+++ b/tools/editor/icons/2x/icon_error.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_fixed_spatial_material.png b/tools/editor/icons/2x/icon_fixed_spatial_material.png
new file mode 100644
index 0000000000..65509a590e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_fixed_spatial_material.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_g_i_probe.png b/tools/editor/icons/2x/icon_g_i_probe.png
new file mode 100644
index 0000000000..921f1cca42
--- /dev/null
+++ b/tools/editor/icons/2x/icon_g_i_probe.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_g_i_probe_data.png b/tools/editor/icons/2x/icon_g_i_probe_data.png
new file mode 100644
index 0000000000..69c4ed7184
--- /dev/null
+++ b/tools/editor/icons/2x/icon_g_i_probe_data.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_image_sky_box.png b/tools/editor/icons/2x/icon_image_sky_box.png
new file mode 100644
index 0000000000..487178afab
--- /dev/null
+++ b/tools/editor/icons/2x/icon_image_sky_box.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_interp_wrap_clamp.png b/tools/editor/icons/2x/icon_interp_wrap_clamp.png
new file mode 100644
index 0000000000..93a5bc56ee
--- /dev/null
+++ b/tools/editor/icons/2x/icon_interp_wrap_clamp.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_interp_wrap_loop.png b/tools/editor/icons/2x/icon_interp_wrap_loop.png
new file mode 100644
index 0000000000..3e656f7b07
--- /dev/null
+++ b/tools/editor/icons/2x/icon_interp_wrap_loop.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_joystick.png b/tools/editor/icons/2x/icon_joypad.png
index 285d048544..285d048544 100644
--- a/tools/editor/icons/2x/icon_joystick.png
+++ b/tools/editor/icons/2x/icon_joypad.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_key_next.png b/tools/editor/icons/2x/icon_key_next.png
index cb2c4eae4b..d35b52d3c7 100644
--- a/tools/editor/icons/2x/icon_key_next.png
+++ b/tools/editor/icons/2x/icon_key_next.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_large_texture.png b/tools/editor/icons/2x/icon_large_texture.png
new file mode 100644
index 0000000000..dd1ec86d39
--- /dev/null
+++ b/tools/editor/icons/2x/icon_large_texture.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_load.png b/tools/editor/icons/2x/icon_load.png
index 729eedd2dd..759381d636 100644
--- a/tools/editor/icons/2x/icon_load.png
+++ b/tools/editor/icons/2x/icon_load.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_shader.png b/tools/editor/icons/2x/icon_material_shader.png
index 65509a590e..f8c2e15fcb 100644
--- a/tools/editor/icons/2x/icon_material_shader.png
+++ b/tools/editor/icons/2x/icon_material_shader.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_mesh_library.png b/tools/editor/icons/2x/icon_mesh_library.png
new file mode 100644
index 0000000000..2495e4a037
--- /dev/null
+++ b/tools/editor/icons/2x/icon_mesh_library.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_navigation_mesh.png b/tools/editor/icons/2x/icon_navigation_mesh.png
new file mode 100644
index 0000000000..35b893c3bb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_navigation_mesh.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_navigation_polygon.png b/tools/editor/icons/2x/icon_navigation_polygon.png
new file mode 100644
index 0000000000..3f4845e206
--- /dev/null
+++ b/tools/editor/icons/2x/icon_navigation_polygon.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_patch_9_frame.png b/tools/editor/icons/2x/icon_nine_patch_rect.png
index 5762a0392e..5762a0392e 100644
--- a/tools/editor/icons/2x/icon_patch_9_frame.png
+++ b/tools/editor/icons/2x/icon_nine_patch_rect.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_open.png b/tools/editor/icons/2x/icon_open.png
new file mode 100644
index 0000000000..2e797c448b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_open.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_packed_data_container.png b/tools/editor/icons/2x/icon_packed_data_container.png
new file mode 100644
index 0000000000..958e41ede2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_packed_data_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_particles_shader.png b/tools/editor/icons/2x/icon_particles_shader.png
new file mode 100644
index 0000000000..26ce8f6809
--- /dev/null
+++ b/tools/editor/icons/2x/icon_particles_shader.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_patch_9_rect.png b/tools/editor/icons/2x/icon_patch_9_rect.png
new file mode 100644
index 0000000000..5762a0392e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_patch_9_rect.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_polygon_path_finder.png b/tools/editor/icons/2x/icon_polygon_path_finder.png
new file mode 100644
index 0000000000..ee6423c265
--- /dev/null
+++ b/tools/editor/icons/2x/icon_polygon_path_finder.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_reference_frame.png b/tools/editor/icons/2x/icon_reference_rect.png
index 63fe559fa7..63fe559fa7 100644
--- a/tools/editor/icons/2x/icon_reference_frame.png
+++ b/tools/editor/icons/2x/icon_reference_rect.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_reflection_probe.png b/tools/editor/icons/2x/icon_reflection_probe.png
new file mode 100644
index 0000000000..5604b403df
--- /dev/null
+++ b/tools/editor/icons/2x/icon_reflection_probe.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_reparent.png b/tools/editor/icons/2x/icon_reparent.png
index 2473a3b362..3063da4b43 100644
--- a/tools/editor/icons/2x/icon_reparent.png
+++ b/tools/editor/icons/2x/icon_reparent.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_room.png b/tools/editor/icons/2x/icon_room.png
index e5e5bb52f8..946f95e955 100644
--- a/tools/editor/icons/2x/icon_room.png
+++ b/tools/editor/icons/2x/icon_room.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_room_bounds.png b/tools/editor/icons/2x/icon_room_bounds.png
new file mode 100644
index 0000000000..94da9c437d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_room_bounds.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sample_library.png b/tools/editor/icons/2x/icon_sample_library.png
new file mode 100644
index 0000000000..3f76a78aca
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sample_library.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_script_create.png b/tools/editor/icons/2x/icon_script_create.png
new file mode 100644
index 0000000000..f1e25efe1c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_script_create.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_script_remove.png b/tools/editor/icons/2x/icon_script_remove.png
new file mode 100644
index 0000000000..f9a1bb19a4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_script_remove.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_shader.png b/tools/editor/icons/2x/icon_shader.png
index 65509a590e..f8c2e15fcb 100644
--- a/tools/editor/icons/2x/icon_shader.png
+++ b/tools/editor/icons/2x/icon_shader.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_shader_material.png b/tools/editor/icons/2x/icon_shader_material.png
index 65509a590e..f8c2e15fcb 100644
--- a/tools/editor/icons/2x/icon_shader_material.png
+++ b/tools/editor/icons/2x/icon_shader_material.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_short_cut.png b/tools/editor/icons/2x/icon_short_cut.png
new file mode 100644
index 0000000000..58c3e08ca4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_short_cut.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_spatial_shader.png b/tools/editor/icons/2x/icon_spatial_shader.png
new file mode 100644
index 0000000000..68f6cf8dac
--- /dev/null
+++ b/tools/editor/icons/2x/icon_spatial_shader.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_spot_light.png b/tools/editor/icons/2x/icon_spot_light.png
index e50c7b6135..e7aa35cbbf 100644
--- a/tools/editor/icons/2x/icon_spot_light.png
+++ b/tools/editor/icons/2x/icon_spot_light.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sprite_frames.png b/tools/editor/icons/2x/icon_sprite_frames.png
new file mode 100644
index 0000000000..263f5c4aad
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sprite_frames.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_style_box_empty.png b/tools/editor/icons/2x/icon_style_box_empty.png
new file mode 100644
index 0000000000..e790af4de4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_style_box_empty.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_style_box_flat.png b/tools/editor/icons/2x/icon_style_box_flat.png
new file mode 100644
index 0000000000..1cd5c7f69a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_style_box_flat.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_style_box_texture.png b/tools/editor/icons/2x/icon_style_box_texture.png
new file mode 100644
index 0000000000..a93e0228bd
--- /dev/null
+++ b/tools/editor/icons/2x/icon_style_box_texture.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tab_container.png b/tools/editor/icons/2x/icon_tab_container.png
index 086be0c5ba..93b7161a69 100644
--- a/tools/editor/icons/2x/icon_tab_container.png
+++ b/tools/editor/icons/2x/icon_tab_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tabs.png b/tools/editor/icons/2x/icon_tabs.png
index ade8071b7f..6c317010c8 100644
--- a/tools/editor/icons/2x/icon_tabs.png
+++ b/tools/editor/icons/2x/icon_tabs.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_test_cube.png b/tools/editor/icons/2x/icon_test_cube.png
index 13d54db87d..f2e523be3f 100644
--- a/tools/editor/icons/2x/icon_test_cube.png
+++ b/tools/editor/icons/2x/icon_test_cube.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_texture_frame.png b/tools/editor/icons/2x/icon_texture_rect.png
index 50d715dd09..50d715dd09 100644
--- a/tools/editor/icons/2x/icon_texture_frame.png
+++ b/tools/editor/icons/2x/icon_texture_rect.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_theme.png b/tools/editor/icons/2x/icon_theme.png
new file mode 100644
index 0000000000..55b51428dd
--- /dev/null
+++ b/tools/editor/icons/2x/icon_theme.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tile_set.png b/tools/editor/icons/2x/icon_tile_set.png
new file mode 100644
index 0000000000..9fbd0b4719
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tile_set.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_track_add_key.png b/tools/editor/icons/2x/icon_track_add_key.png
index 9cf0314270..9b7bd14fb4 100644
--- a/tools/editor/icons/2x/icon_track_add_key.png
+++ b/tools/editor/icons/2x/icon_track_add_key.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_track_add_key_hl.png b/tools/editor/icons/2x/icon_track_add_key_hl.png
index 7d170725f6..0763836c3a 100644
--- a/tools/editor/icons/2x/icon_track_add_key_hl.png
+++ b/tools/editor/icons/2x/icon_track_add_key_hl.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_viewport_container.png b/tools/editor/icons/2x/icon_viewport_container.png
new file mode 100644
index 0000000000..c43e53c34e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_viewport_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_viewport_texture.png b/tools/editor/icons/2x/icon_viewport_texture.png
new file mode 100644
index 0000000000..f798f1d221
--- /dev/null
+++ b/tools/editor/icons/2x/icon_viewport_texture.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_warning.png b/tools/editor/icons/2x/icon_warning.png
index 7359a798ee..5d807065e7 100644
--- a/tools/editor/icons/2x/icon_warning.png
+++ b/tools/editor/icons/2x/icon_warning.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_world.png b/tools/editor/icons/2x/icon_world.png
new file mode 100644
index 0000000000..51b587c01e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_world.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_world_2d.png b/tools/editor/icons/2x/icon_world_2d.png
new file mode 100644
index 0000000000..e9cfa10461
--- /dev/null
+++ b/tools/editor/icons/2x/icon_world_2d.png
Binary files differ
diff --git a/tools/editor/icons/SCsub b/tools/editor/icons/SCsub
index 9e05d8f391..f86ae2b10d 100644
--- a/tools/editor/icons/SCsub
+++ b/tools/editor/icons/SCsub
@@ -2,97 +2,95 @@
Import('env')
-def make_editor_icons_action(target, source, env):
-
- import os
- import cStringIO
- dst = target[0].srcnode().abspath
- pixmaps = source
-
- s = cStringIO.StringIO()
+def make_editor_icons_action(target, source, env):
- s.write("#include \"editor_icons.h\"\n\n")
- s.write("#include \"editor_scale.h\"\n\n")
- s.write("#include \"scene/resources/theme.h\"\n\n")
+ import os
+ import cStringIO
- hidpi_list=[]
+ dst = target[0].srcnode().abspath
+ pixmaps = source
- for x in pixmaps:
+ s = cStringIO.StringIO()
- x=str(x)
- var_str=os.path.basename(x)[:-4]+"_png";
- #print(var_str)
+ s.write("#include \"editor_icons.h\"\n\n")
+ s.write("#include \"editor_scale.h\"\n\n")
+ s.write("#include \"scene/resources/theme.h\"\n\n")
- s.write("static const unsigned char "+ var_str +"[]={\n");
+ hidpi_list = []
- pngf=open(x,"rb");
+ for x in pixmaps:
- b=pngf.read(1);
- while(len(b)==1):
- s.write(hex(ord(b)))
- b=pngf.read(1);
- if (len(b)==1):
- s.write(",")
+ x = str(x)
+ var_str = os.path.basename(x)[:-4] + "_png"
+ # print(var_str)
- s.write("\n};\n\n");
+ s.write("static const unsigned char " + var_str + "[]={\n")
- pngf.close();
- var_str=os.path.basename(x)[:-4]+"_hidpi_png";
- try:
+ pngf = open(x, "rb")
- pngf = open(os.path.dirname(x)+"/2x/"+os.path.basename(x), "rb")
+ b = pngf.read(1)
+ while(len(b) == 1):
+ s.write(hex(ord(b)))
+ b = pngf.read(1)
+ if (len(b) == 1):
+ s.write(",")
- s.write("static const unsigned char "+ var_str +"[]={\n");
+ s.write("\n};\n\n")
- b=pngf.read(1);
- while(len(b)==1):
- s.write(hex(ord(b)))
- b=pngf.read(1);
- if (len(b)==1):
- s.write(",")
+ pngf.close()
+ var_str = os.path.basename(x)[:-4] + "_hidpi_png"
+ try:
- s.write("\n};\n\n\n");
- hidpi_list.append(x)
+ pngf = open(os.path.dirname(x) + "/2x/" + os.path.basename(x), "rb")
- except:
- s.write("static const unsigned char* "+ var_str +"=NULL;\n\n\n");
+ s.write("static const unsigned char " + var_str + "[]={\n")
+ b = pngf.read(1)
+ while(len(b) == 1):
+ s.write(hex(ord(b)))
+ b = pngf.read(1)
+ if (len(b) == 1):
+ s.write(",")
+ s.write("\n};\n\n\n")
+ hidpi_list.append(x)
+ except:
+ s.write("static const unsigned char* " + var_str + "=NULL;\n\n\n")
- s.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png,const uint8_t* p_hidpi_png) {\n")
- s.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n")
- s.write("\tbool use_hidpi_image=(editor_get_scale()>1.0&&p_hidpi_png);\n")
- s.write("\tImage img(use_hidpi_image?p_hidpi_png:p_png);\n")
- s.write("\tif (editor_get_scale()>1.0 && !p_hidpi_png) { img.convert(Image::FORMAT_RGBA); img.expand_x2_hq2x(); use_hidpi_image=true;}\n")
- s.write("\timg.resize(img.get_width()*EDSCALE/(use_hidpi_image?2:1),img.get_height()*EDSCALE/(use_hidpi_image?2:1));\n")
- s.write("\ttexture->create_from_image( img,ImageTexture::FLAG_FILTER );\n")
- s.write("\treturn texture;\n")
- s.write("}\n\n")
+ s.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png,const uint8_t* p_hidpi_png) {\n")
+ s.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n")
+ s.write("\tbool use_hidpi_image=(editor_get_scale()>1.0&&p_hidpi_png);\n")
+ s.write("\tImage img(use_hidpi_image?p_hidpi_png:p_png);\n")
+ s.write("\tif (editor_get_scale()>1.0 && !p_hidpi_png) { img.convert(Image::FORMAT_RGBA8); img.expand_x2_hq2x(); use_hidpi_image=true;}\n")
+ s.write("\timg.resize(img.get_width()*EDSCALE/(use_hidpi_image?2:1),img.get_height()*EDSCALE/(use_hidpi_image?2:1));\n")
+ s.write("\ttexture->create_from_image( img,ImageTexture::FLAG_FILTER );\n")
+ s.write("\treturn texture;\n")
+ s.write("}\n\n")
- s.write("void editor_register_icons(Ref<Theme> p_theme) {\n\n")
+ s.write("void editor_register_icons(Ref<Theme> p_theme) {\n\n")
- for x in pixmaps:
+ for x in pixmaps:
- x=os.path.basename(str(x))
- type=x[5:-4].title().replace("_","");
- var_str=x[:-4]+"_png";
- var_str_hidpi=x[:-4]+"_hidpi_png";
- s.write("\tp_theme->set_icon(\""+type+"\",\"EditorIcons\",make_icon("+var_str+","+var_str_hidpi+"));\n");
+ x = os.path.basename(str(x))
+ type = x[5:-4].title().replace("_", "")
+ var_str = x[:-4] + "_png"
+ var_str_hidpi = x[:-4] + "_hidpi_png"
+ s.write("\tp_theme->set_icon(\"" + type + "\",\"EditorIcons\",make_icon(" + var_str + "," + var_str_hidpi + "));\n")
- s.write("\n\n}\n\n");
+ s.write("\n\n}\n\n")
- f = open(dst,"wb")
- f.write(s.getvalue())
- f.close()
- s.close()
+ f = open(dst, "wb")
+ f.write(s.getvalue())
+ f.close()
+ s.close()
make_editor_icons_builder = Builder(action=make_editor_icons_action,
- suffix = '.cpp',
- src_suffix = '.png')
-env['BUILDERS']['MakeEditorIconsBuilder']=make_editor_icons_builder
-env.Alias('editor_icons',[env.MakeEditorIconsBuilder('#tools/editor/editor_icons.cpp',Glob("*.png"))])
+ suffix='.cpp',
+ src_suffix='.png')
+env['BUILDERS']['MakeEditorIconsBuilder'] = make_editor_icons_builder
+env.Alias('editor_icons', [env.MakeEditorIconsBuilder('#tools/editor/editor_icons.cpp', Glob("*.png"))])
env.tool_sources.append("#tools/editor/editor_icons.cpp")
Export('env')
diff --git a/tools/editor/icons/icon_accept_dialog.png b/tools/editor/icons/icon_accept_dialog.png
index 1ba2ce8db3..7530127f82 100644
--- a/tools/editor/icons/icon_accept_dialog.png
+++ b/tools/editor/icons/icon_accept_dialog.png
Binary files differ
diff --git a/tools/editor/icons/icon_anchor.png b/tools/editor/icons/icon_anchor.png
index 9c20808bdc..7b02eb448e 100644
--- a/tools/editor/icons/icon_anchor.png
+++ b/tools/editor/icons/icon_anchor.png
Binary files differ
diff --git a/tools/editor/icons/icon_animation.png b/tools/editor/icons/icon_animation.png
index 2bc13f0b4c..b333f82711 100644
--- a/tools/editor/icons/icon_animation.png
+++ b/tools/editor/icons/icon_animation.png
Binary files differ
diff --git a/tools/editor/icons/icon_area.png b/tools/editor/icons/icon_area.png
index ea7af5f9ac..31b4473d17 100644
--- a/tools/editor/icons/icon_area.png
+++ b/tools/editor/icons/icon_area.png
Binary files differ
diff --git a/tools/editor/icons/icon_audio_effect_amplify.png b/tools/editor/icons/icon_audio_effect_amplify.png
new file mode 100644
index 0000000000..9af3227d40
--- /dev/null
+++ b/tools/editor/icons/icon_audio_effect_amplify.png
Binary files differ
diff --git a/tools/editor/icons/icon_auto_play.png b/tools/editor/icons/icon_auto_play.png
index fcd3bedcda..a6be64a1d1 100644
--- a/tools/editor/icons/icon_auto_play.png
+++ b/tools/editor/icons/icon_auto_play.png
Binary files differ
diff --git a/tools/editor/icons/icon_bit_map.png b/tools/editor/icons/icon_bit_map.png
new file mode 100644
index 0000000000..50dd8157d1
--- /dev/null
+++ b/tools/editor/icons/icon_bit_map.png
Binary files differ
diff --git a/tools/editor/icons/icon_bitmap_font.png b/tools/editor/icons/icon_bitmap_font.png
index 2739248796..5334c335dc 100644
--- a/tools/editor/icons/icon_bitmap_font.png
+++ b/tools/editor/icons/icon_bitmap_font.png
Binary files differ
diff --git a/tools/editor/icons/icon_bus_vu_db.png b/tools/editor/icons/icon_bus_vu_db.png
new file mode 100644
index 0000000000..52507cae52
--- /dev/null
+++ b/tools/editor/icons/icon_bus_vu_db.png
Binary files differ
diff --git a/tools/editor/icons/icon_bus_vu_empty.png b/tools/editor/icons/icon_bus_vu_empty.png
new file mode 100644
index 0000000000..6fc3143a55
--- /dev/null
+++ b/tools/editor/icons/icon_bus_vu_empty.png
Binary files differ
diff --git a/tools/editor/icons/icon_bus_vu_frozen.png b/tools/editor/icons/icon_bus_vu_frozen.png
new file mode 100644
index 0000000000..cf128afa91
--- /dev/null
+++ b/tools/editor/icons/icon_bus_vu_frozen.png
Binary files differ
diff --git a/tools/editor/icons/icon_bus_vu_full.png b/tools/editor/icons/icon_bus_vu_full.png
new file mode 100644
index 0000000000..9e3d7a93e3
--- /dev/null
+++ b/tools/editor/icons/icon_bus_vu_full.png
Binary files differ
diff --git a/tools/editor/icons/icon_canvas_layer.png b/tools/editor/icons/icon_canvas_layer.png
index cae31fe3bc..bb32d6d3ad 100644
--- a/tools/editor/icons/icon_canvas_layer.png
+++ b/tools/editor/icons/icon_canvas_layer.png
Binary files differ
diff --git a/tools/editor/icons/icon_canvas_modulate.png b/tools/editor/icons/icon_canvas_modulate.png
index 711ebbae5f..b76e532268 100644
--- a/tools/editor/icons/icon_canvas_modulate.png
+++ b/tools/editor/icons/icon_canvas_modulate.png
Binary files differ
diff --git a/tools/editor/icons/icon_color_frame.png b/tools/editor/icons/icon_color_frame.png
deleted file mode 100644
index a82eefc10a..0000000000
--- a/tools/editor/icons/icon_color_frame.png
+++ /dev/null
Binary files differ
diff --git a/tools/editor/icons/icon_color_rect.png b/tools/editor/icons/icon_color_rect.png
new file mode 100644
index 0000000000..40b9dab605
--- /dev/null
+++ b/tools/editor/icons/icon_color_rect.png
Binary files differ
diff --git a/tools/editor/icons/icon_copy_node_path.png b/tools/editor/icons/icon_copy_node_path.png
new file mode 100644
index 0000000000..d777f132d8
--- /dev/null
+++ b/tools/editor/icons/icon_copy_node_path.png
Binary files differ
diff --git a/tools/editor/icons/icon_create_new_scene_from.png b/tools/editor/icons/icon_create_new_scene_from.png
index 908c82626c..45df9b1e25 100644
--- a/tools/editor/icons/icon_create_new_scene_from.png
+++ b/tools/editor/icons/icon_create_new_scene_from.png
Binary files differ
diff --git a/tools/editor/icons/icon_cube_map.png b/tools/editor/icons/icon_cube_map.png
new file mode 100644
index 0000000000..9c4c6fdc9f
--- /dev/null
+++ b/tools/editor/icons/icon_cube_map.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_2d.png b/tools/editor/icons/icon_curve_2d.png
new file mode 100644
index 0000000000..ce46dcaad4
--- /dev/null
+++ b/tools/editor/icons/icon_curve_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_3d.png b/tools/editor/icons/icon_curve_3d.png
new file mode 100644
index 0000000000..561837e4de
--- /dev/null
+++ b/tools/editor/icons/icon_curve_3d.png
Binary files differ
diff --git a/tools/editor/icons/icon_dynamic_font_data.png b/tools/editor/icons/icon_dynamic_font_data.png
index 8f36106b61..5cff86c40c 100644
--- a/tools/editor/icons/icon_dynamic_font_data.png
+++ b/tools/editor/icons/icon_dynamic_font_data.png
Binary files differ
diff --git a/tools/editor/icons/icon_environment.png b/tools/editor/icons/icon_environment.png
new file mode 100644
index 0000000000..c8c4da3e8f
--- /dev/null
+++ b/tools/editor/icons/icon_environment.png
Binary files differ
diff --git a/tools/editor/icons/icon_error.png b/tools/editor/icons/icon_error.png
index 0fdf5facbf..7a9bed43aa 100644
--- a/tools/editor/icons/icon_error.png
+++ b/tools/editor/icons/icon_error.png
Binary files differ
diff --git a/tools/editor/icons/icon_fixed_spatial_material.png b/tools/editor/icons/icon_fixed_spatial_material.png
new file mode 100644
index 0000000000..f26ac3be37
--- /dev/null
+++ b/tools/editor/icons/icon_fixed_spatial_material.png
Binary files differ
diff --git a/tools/editor/icons/icon_g_i_probe.png b/tools/editor/icons/icon_g_i_probe.png
new file mode 100644
index 0000000000..a15ae18675
--- /dev/null
+++ b/tools/editor/icons/icon_g_i_probe.png
Binary files differ
diff --git a/tools/editor/icons/icon_g_i_probe_data.png b/tools/editor/icons/icon_g_i_probe_data.png
new file mode 100644
index 0000000000..0aabcc49cb
--- /dev/null
+++ b/tools/editor/icons/icon_g_i_probe_data.png
Binary files differ
diff --git a/tools/editor/icons/icon_image_sky_box.png b/tools/editor/icons/icon_image_sky_box.png
new file mode 100644
index 0000000000..cf80258577
--- /dev/null
+++ b/tools/editor/icons/icon_image_sky_box.png
Binary files differ
diff --git a/tools/editor/icons/icon_interp_wrap_clamp.png b/tools/editor/icons/icon_interp_wrap_clamp.png
new file mode 100644
index 0000000000..1024bd7d29
--- /dev/null
+++ b/tools/editor/icons/icon_interp_wrap_clamp.png
Binary files differ
diff --git a/tools/editor/icons/icon_interp_wrap_loop.png b/tools/editor/icons/icon_interp_wrap_loop.png
new file mode 100644
index 0000000000..3a7ddacdb2
--- /dev/null
+++ b/tools/editor/icons/icon_interp_wrap_loop.png
Binary files differ
diff --git a/tools/editor/icons/icon_joystick.png b/tools/editor/icons/icon_joypad.png
index 5df471109a..5df471109a 100644
--- a/tools/editor/icons/icon_joystick.png
+++ b/tools/editor/icons/icon_joypad.png
Binary files differ
diff --git a/tools/editor/icons/icon_key_next.png b/tools/editor/icons/icon_key_next.png
index ed7a20637f..288161d245 100644
--- a/tools/editor/icons/icon_key_next.png
+++ b/tools/editor/icons/icon_key_next.png
Binary files differ
diff --git a/tools/editor/icons/icon_large_texture.png b/tools/editor/icons/icon_large_texture.png
new file mode 100644
index 0000000000..1727e2409f
--- /dev/null
+++ b/tools/editor/icons/icon_large_texture.png
Binary files differ
diff --git a/tools/editor/icons/icon_load.png b/tools/editor/icons/icon_load.png
index 98da8135f2..81835efa25 100644
--- a/tools/editor/icons/icon_load.png
+++ b/tools/editor/icons/icon_load.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_shader.png b/tools/editor/icons/icon_material_shader.png
index f26ac3be37..568a45d938 100644
--- a/tools/editor/icons/icon_material_shader.png
+++ b/tools/editor/icons/icon_material_shader.png
Binary files differ
diff --git a/tools/editor/icons/icon_mesh_library.png b/tools/editor/icons/icon_mesh_library.png
new file mode 100644
index 0000000000..0bb37b1da3
--- /dev/null
+++ b/tools/editor/icons/icon_mesh_library.png
Binary files differ
diff --git a/tools/editor/icons/icon_navigation_mesh.png b/tools/editor/icons/icon_navigation_mesh.png
new file mode 100644
index 0000000000..e3bb7f775f
--- /dev/null
+++ b/tools/editor/icons/icon_navigation_mesh.png
Binary files differ
diff --git a/tools/editor/icons/icon_navigation_polygon.png b/tools/editor/icons/icon_navigation_polygon.png
new file mode 100644
index 0000000000..bfc4bfb542
--- /dev/null
+++ b/tools/editor/icons/icon_navigation_polygon.png
Binary files differ
diff --git a/tools/editor/icons/icon_patch_9_frame.png b/tools/editor/icons/icon_nine_patch_rect.png
index bdd1467144..bdd1467144 100644
--- a/tools/editor/icons/icon_patch_9_frame.png
+++ b/tools/editor/icons/icon_nine_patch_rect.png
Binary files differ
diff --git a/tools/editor/icons/icon_open.png b/tools/editor/icons/icon_open.png
new file mode 100644
index 0000000000..cc05e98ebb
--- /dev/null
+++ b/tools/editor/icons/icon_open.png
Binary files differ
diff --git a/tools/editor/icons/icon_packed_data_container.png b/tools/editor/icons/icon_packed_data_container.png
new file mode 100644
index 0000000000..af89da48a9
--- /dev/null
+++ b/tools/editor/icons/icon_packed_data_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_particles_shader.png b/tools/editor/icons/icon_particles_shader.png
new file mode 100644
index 0000000000..3b5c5644b2
--- /dev/null
+++ b/tools/editor/icons/icon_particles_shader.png
Binary files differ
diff --git a/tools/editor/icons/icon_patch_9_rect.png b/tools/editor/icons/icon_patch_9_rect.png
new file mode 100644
index 0000000000..bdd1467144
--- /dev/null
+++ b/tools/editor/icons/icon_patch_9_rect.png
Binary files differ
diff --git a/tools/editor/icons/icon_polygon_path_finder.png b/tools/editor/icons/icon_polygon_path_finder.png
new file mode 100644
index 0000000000..9d76d872db
--- /dev/null
+++ b/tools/editor/icons/icon_polygon_path_finder.png
Binary files differ
diff --git a/tools/editor/icons/icon_reference_frame.png b/tools/editor/icons/icon_reference_rect.png
index b253af477f..b253af477f 100644
--- a/tools/editor/icons/icon_reference_frame.png
+++ b/tools/editor/icons/icon_reference_rect.png
Binary files differ
diff --git a/tools/editor/icons/icon_reflection_probe.png b/tools/editor/icons/icon_reflection_probe.png
new file mode 100644
index 0000000000..a6646114fb
--- /dev/null
+++ b/tools/editor/icons/icon_reflection_probe.png
Binary files differ
diff --git a/tools/editor/icons/icon_reparent.png b/tools/editor/icons/icon_reparent.png
index b3235e60c5..135ccee4ad 100644
--- a/tools/editor/icons/icon_reparent.png
+++ b/tools/editor/icons/icon_reparent.png
Binary files differ
diff --git a/tools/editor/icons/icon_room.png b/tools/editor/icons/icon_room.png
index 9390391279..840db145fd 100644
--- a/tools/editor/icons/icon_room.png
+++ b/tools/editor/icons/icon_room.png
Binary files differ
diff --git a/tools/editor/icons/icon_room_bounds.png b/tools/editor/icons/icon_room_bounds.png
new file mode 100644
index 0000000000..15b198e821
--- /dev/null
+++ b/tools/editor/icons/icon_room_bounds.png
Binary files differ
diff --git a/tools/editor/icons/icon_sample_library.png b/tools/editor/icons/icon_sample_library.png
new file mode 100644
index 0000000000..5921aa86e7
--- /dev/null
+++ b/tools/editor/icons/icon_sample_library.png
Binary files differ
diff --git a/tools/editor/icons/icon_script_create.png b/tools/editor/icons/icon_script_create.png
new file mode 100644
index 0000000000..86c19f748b
--- /dev/null
+++ b/tools/editor/icons/icon_script_create.png
Binary files differ
diff --git a/tools/editor/icons/icon_script_remove.png b/tools/editor/icons/icon_script_remove.png
new file mode 100644
index 0000000000..c200b01690
--- /dev/null
+++ b/tools/editor/icons/icon_script_remove.png
Binary files differ
diff --git a/tools/editor/icons/icon_shader.png b/tools/editor/icons/icon_shader.png
index f26ac3be37..568a45d938 100644
--- a/tools/editor/icons/icon_shader.png
+++ b/tools/editor/icons/icon_shader.png
Binary files differ
diff --git a/tools/editor/icons/icon_shader_material.png b/tools/editor/icons/icon_shader_material.png
index f26ac3be37..568a45d938 100644
--- a/tools/editor/icons/icon_shader_material.png
+++ b/tools/editor/icons/icon_shader_material.png
Binary files differ
diff --git a/tools/editor/icons/icon_short_cut.png b/tools/editor/icons/icon_short_cut.png
new file mode 100644
index 0000000000..22e15c3889
--- /dev/null
+++ b/tools/editor/icons/icon_short_cut.png
Binary files differ
diff --git a/tools/editor/icons/icon_spatial_shader.png b/tools/editor/icons/icon_spatial_shader.png
new file mode 100644
index 0000000000..7608fc9036
--- /dev/null
+++ b/tools/editor/icons/icon_spatial_shader.png
Binary files differ
diff --git a/tools/editor/icons/icon_spot_light.png b/tools/editor/icons/icon_spot_light.png
index 89b0b28aa3..f52570a5cd 100644
--- a/tools/editor/icons/icon_spot_light.png
+++ b/tools/editor/icons/icon_spot_light.png
Binary files differ
diff --git a/tools/editor/icons/icon_sprite_frames.png b/tools/editor/icons/icon_sprite_frames.png
new file mode 100644
index 0000000000..5576b24f2e
--- /dev/null
+++ b/tools/editor/icons/icon_sprite_frames.png
Binary files differ
diff --git a/tools/editor/icons/icon_style_box_empty.png b/tools/editor/icons/icon_style_box_empty.png
new file mode 100644
index 0000000000..f595eaaa57
--- /dev/null
+++ b/tools/editor/icons/icon_style_box_empty.png
Binary files differ
diff --git a/tools/editor/icons/icon_style_box_flat.png b/tools/editor/icons/icon_style_box_flat.png
new file mode 100644
index 0000000000..6ec6a6dd35
--- /dev/null
+++ b/tools/editor/icons/icon_style_box_flat.png
Binary files differ
diff --git a/tools/editor/icons/icon_style_box_texture.png b/tools/editor/icons/icon_style_box_texture.png
new file mode 100644
index 0000000000..f649508418
--- /dev/null
+++ b/tools/editor/icons/icon_style_box_texture.png
Binary files differ
diff --git a/tools/editor/icons/icon_tab_container.png b/tools/editor/icons/icon_tab_container.png
index dd661c5ab6..7ff3081ec1 100644
--- a/tools/editor/icons/icon_tab_container.png
+++ b/tools/editor/icons/icon_tab_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_tabs.png b/tools/editor/icons/icon_tabs.png
index cc7e08a835..bef0f60660 100644
--- a/tools/editor/icons/icon_tabs.png
+++ b/tools/editor/icons/icon_tabs.png
Binary files differ
diff --git a/tools/editor/icons/icon_test_cube.png b/tools/editor/icons/icon_test_cube.png
index 6a16fb5092..4d11a69c3e 100644
--- a/tools/editor/icons/icon_test_cube.png
+++ b/tools/editor/icons/icon_test_cube.png
Binary files differ
diff --git a/tools/editor/icons/icon_texture_frame.png b/tools/editor/icons/icon_texture_rect.png
index 84e4a90bfb..84e4a90bfb 100644
--- a/tools/editor/icons/icon_texture_frame.png
+++ b/tools/editor/icons/icon_texture_rect.png
Binary files differ
diff --git a/tools/editor/icons/icon_theme.png b/tools/editor/icons/icon_theme.png
new file mode 100644
index 0000000000..55d799c722
--- /dev/null
+++ b/tools/editor/icons/icon_theme.png
Binary files differ
diff --git a/tools/editor/icons/icon_tile_set.png b/tools/editor/icons/icon_tile_set.png
new file mode 100644
index 0000000000..a1c3fccddd
--- /dev/null
+++ b/tools/editor/icons/icon_tile_set.png
Binary files differ
diff --git a/tools/editor/icons/icon_track_add_key.png b/tools/editor/icons/icon_track_add_key.png
index fb86b37963..02d92439a3 100644
--- a/tools/editor/icons/icon_track_add_key.png
+++ b/tools/editor/icons/icon_track_add_key.png
Binary files differ
diff --git a/tools/editor/icons/icon_track_add_key_hl.png b/tools/editor/icons/icon_track_add_key_hl.png
index c1bfee736a..0e857f5fe2 100644
--- a/tools/editor/icons/icon_track_add_key_hl.png
+++ b/tools/editor/icons/icon_track_add_key_hl.png
Binary files differ
diff --git a/tools/editor/icons/icon_viewport_container.png b/tools/editor/icons/icon_viewport_container.png
new file mode 100644
index 0000000000..c70dee3698
--- /dev/null
+++ b/tools/editor/icons/icon_viewport_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_viewport_texture.png b/tools/editor/icons/icon_viewport_texture.png
new file mode 100644
index 0000000000..ae744cc407
--- /dev/null
+++ b/tools/editor/icons/icon_viewport_texture.png
Binary files differ
diff --git a/tools/editor/icons/icon_vu_db.png b/tools/editor/icons/icon_vu_db.png
new file mode 100644
index 0000000000..405a929e2a
--- /dev/null
+++ b/tools/editor/icons/icon_vu_db.png
Binary files differ
diff --git a/tools/editor/icons/icon_warning.png b/tools/editor/icons/icon_warning.png
index 0928062938..451beba820 100644
--- a/tools/editor/icons/icon_warning.png
+++ b/tools/editor/icons/icon_warning.png
Binary files differ
diff --git a/tools/editor/icons/icon_world.png b/tools/editor/icons/icon_world.png
new file mode 100644
index 0000000000..d54b979cad
--- /dev/null
+++ b/tools/editor/icons/icon_world.png
Binary files differ
diff --git a/tools/editor/icons/icon_world_2d.png b/tools/editor/icons/icon_world_2d.png
new file mode 100644
index 0000000000..ebe54262ff
--- /dev/null
+++ b/tools/editor/icons/icon_world_2d.png
Binary files differ
diff --git a/tools/editor/icons/source/icon_accept_dialog.svg b/tools/editor/icons/source/icon_accept_dialog.svg
index 8d2c307691..9f82b30c94 100644
--- a/tools/editor/icons/source/icon_accept_dialog.svg
+++ b/tools/editor/icons/source/icon_accept_dialog.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="32"
- inkscape:cx="6.0807642"
- inkscape:cy="9.1331382"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.3712909"
+ inkscape:cy="7.2310094"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -59,7 +59,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -70,8 +70,10 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 3 1 C 1.89543 1 1 1.8954 1 3 L 1 4 L 15 4 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 12 2 L 13 2 L 13 3 L 12 3 L 12 2 z M 1 5 L 1 13 C 1 14.1046 1.89543 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 5 L 1 5 z M 10.474609 6.6367188 L 11.888672 8.0507812 L 8.3535156 11.585938 L 6.9394531 13 L 5.5253906 11.585938 L 4.1113281 10.171875 L 5.5253906 8.7578125 L 6.9394531 10.171875 L 10.474609 6.6367188 z "
+ d="M 3,1 C 1.89543,1 1,1.8954 1,3 L 1,4 15,4 15,3 C 15,1.8954 14.104569,1 13,1 Z m 9,1 1,0 0,1 -1,0 z M 1,5 1,13 c 0,1.1046 0.89543,2 2,2 l 10,0 c 1.104569,0 2,-0.8954 2,-2 L 15,5 Z M 10.474609,6.6367188 11.888672,8.0507812 6.9394531,13 4.1113281,10.171875 5.5253906,8.7578125 6.9394531,10.171875 Z"
transform="translate(0,1036.3622)"
- id="rect4140" />
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccsssccccccssssccccccccc" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_add_track.svg b/tools/editor/icons/source/icon_add_track.svg
index 916199d29e..d19448efb0 100644
--- a/tools/editor/icons/source/icon_add_track.svg
+++ b/tools/editor/icons/source/icon_add_track.svg
@@ -18,7 +18,7 @@
inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
inkscape:export-xdpi="45"
inkscape:export-ydpi="45"
- sodipodi:docname="icon_add_track (copy).svg">
+ sodipodi:docname="icon_add_track.svg">
<defs
id="defs4" />
<sodipodi:namedview
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="32.000001"
- inkscape:cx="4.2247291"
- inkscape:cy="8.9595523"
+ inkscape:zoom="45.254835"
+ inkscape:cx="6.9909025"
+ inkscape:cy="7.4569962"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -59,7 +59,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -68,20 +68,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
+ <path
style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4137"
- width="14"
- height="1.9999478"
- x="1"
- y="1043.3622" />
- <rect
- y="-9"
- x="1037.3622"
- height="2.0000017"
- width="13.999966"
- id="rect4158"
- style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- transform="matrix(0,1,-1,0,0,0)" />
+ d="M 7 1 L 7 7 L 1 7 L 1 9 L 7 9 L 7 15 L 9 15 L 9 9 L 15 9 L 15 7 L 9 7 L 9 1 L 7 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4137" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_anchor.svg b/tools/editor/icons/source/icon_anchor.svg
index ff43271224..6b10be040b 100644
--- a/tools/editor/icons/source/icon_anchor.svg
+++ b/tools/editor/icons/source/icon_anchor.svg
@@ -18,7 +18,7 @@
inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_anchor.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
- sodipodi:docname="icon_anchor (copy).svg">
+ sodipodi:docname="icon_anchor.svg">
<defs
id="defs4" />
<sodipodi:namedview
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
- inkscape:cx="5.8188721"
- inkscape:cy="10.181863"
+ inkscape:cx="12.991456"
+ inkscape:cy="8.2347656"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -70,27 +70,8 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 8 1 A 3 3.0000043 0 0 0 5 4 A 3 3.0000043 0 0 0 8 7 A 3 3.0000043 0 0 0 11 4 A 3 3.0000043 0 0 0 8 1 z M 8 3 A 1.000016 1.0000174 0 0 1 9 4 A 1.000016 1.0000174 0 0 1 8 5 A 1.000016 1.0000174 0 0 1 7 4 A 1.000016 1.0000174 0 0 1 8 3 z "
+ d="M 8 1 A 3 3.0000043 0 0 0 5 4 A 3 3.0000043 0 0 0 7 6.8261719 L 7 7 L 5 7 L 5 9 L 7 9 L 7 12.898438 A 5.0000172 5.0000172 0 0 1 3.171875 9.2949219 L 1.2382812 9.8125 A 7 7 0 0 0 8 15 A 7 7 0 0 0 14.761719 9.8125 L 12.824219 9.2929688 A 5.0000172 5.0000172 0 0 1 9 12.896484 L 9 9 L 11 9 L 11 7 L 9 7 L 9 6.8242188 A 3 3.0000043 0 0 0 11 4 A 3 3.0000043 0 0 0 8 1 z M 8 3 A 1.000016 1.0000174 0 0 1 9 4 A 1.000016 1.0000174 0 0 1 8 5 A 1.000016 1.0000174 0 0 1 7 4 A 1.000016 1.0000174 0 0 1 8 3 z "
transform="translate(0,1036.3622)"
id="path4142" />
- <rect
- y="1042.3622"
- x="7"
- height="7.0000172"
- width="2"
- id="rect4148"
- style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
- <path
- style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 12.824219 9.2929688 A 5.0000172 5.0000172 0 0 1 8 13 A 5.0000172 5.0000172 0 0 1 3.171875 9.2949219 L 1.2382812 9.8125 A 7 7 0 0 0 8 15 A 7 7 0 0 0 14.761719 9.8125 L 12.824219 9.2929688 z "
- transform="translate(0,1036.3622)"
- id="path4150" />
- <rect
- style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4155"
- width="6"
- height="2"
- x="5"
- y="1043.3622" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_animation.svg b/tools/editor/icons/source/icon_animation.svg
index 38d73cf5bb..371979345f 100644
--- a/tools/editor/icons/source/icon_animation.svg
+++ b/tools/editor/icons/source/icon_animation.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="64"
- inkscape:cx="10.327464"
- inkscape:cy="2.5689331"
+ inkscape:zoom="22.627417"
+ inkscape:cx="9.2543315"
+ inkscape:cy="5.9550306"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -70,49 +70,8 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 14 8 A 6 6 0 0 0 8 2 z M 8 3 A 1 1 0 0 1 9 4 A 1 1 0 0 1 8 5 A 1 1 0 0 1 7 4 A 1 1 0 0 1 8 3 z M 11.441406 5 A 1 1 0 0 1 12.330078 5.5 A 1 1 0 0 1 11.964844 6.8652344 A 1 1 0 0 1 10.597656 6.5 A 1 1 0 0 1 10.964844 5.1347656 A 1 1 0 0 1 11.441406 5 z M 4.4882812 5.0019531 A 1 1 0 0 1 5.0351562 5.1347656 A 1 1 0 0 1 5.4023438 6.5 A 1 1 0 0 1 4.0351562 6.8652344 A 1 1 0 0 1 3.6699219 5.5 A 1 1 0 0 1 4.4882812 5.0019531 z M 4.5117188 9 A 1 1 0 0 1 5.4023438 9.5 A 1 1 0 0 1 5.0351562 10.865234 A 1 1 0 0 1 3.6699219 10.5 A 1 1 0 0 1 4.0351562 9.1347656 A 1 1 0 0 1 4.5117188 9 z M 11.416016 9.0019531 A 1 1 0 0 1 11.964844 9.1347656 A 1 1 0 0 1 12.330078 10.5 A 1 1 0 0 1 10.964844 10.865234 A 1 1 0 0 1 10.597656 9.5 A 1 1 0 0 1 11.416016 9.0019531 z M 8 11 A 1 1 0 0 1 9 12 A 1 1 0 0 1 8 13 A 1 1 0 0 1 7 12 A 1 1 0 0 1 8 11 z "
- transform="translate(0,1036.3622)"
- id="path4140" />
- <path
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 13 8 L 13 14 A 1 1 0 0 0 14 15 L 15 15 L 15 14 L 14 14 L 14 13 L 14 8 L 13 8 z "
- transform="translate(0,1036.3622)"
- id="rect4202" />
- <path
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 14 13.5 L 14 14 L 14.5 14 A 0.5 0.4999913 0 0 1 14 13.5 z "
- transform="translate(0,1036.3622)"
- id="rect4215" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4137"
- width="1"
- height="3.0000174"
- x="12"
- y="1047.3622" />
- <path
- id="path4139"
- transform="translate(0,1036.3622)"
- d="M 13 8 L 13 14 A 1 1 0 0 0 14 15 L 15 15 L 15 14 L 14 14 L 14 13 L 14 8 L 13 8 z "
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="1050.3622"
- x="14"
- height="2"
- width="1"
- id="rect4141"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
- <path
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="path4145"
- sodipodi:type="arc"
- sodipodi:cx="14"
- sodipodi:cy="1050.3622"
- sodipodi:rx="2"
- sodipodi:ry="2"
- sodipodi:start="1.5707963"
- sodipodi:end="4.712389"
- d="m 14,1052.3622 a 2,2 0 0 1 -1.732051,-1 2,2 0 0 1 0,-2 2,2 0 0 1 1.732051,-1"
- sodipodi:open="true" />
+ d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 12 12.464844 L 12 14 L 12.001953 14 A 2 2 0 0 0 12.267578 15 A 2 2 0 0 0 14 16 L 15 16 L 15 15 L 15 14 L 14.5 14 A 0.5 0.4999913 0 0 1 14 13.5 L 14 13 L 14 8 A 6 6 0 0 0 8 2 z M 8 3 A 1 1 0 0 1 9 4 A 1 1 0 0 1 8 5 A 1 1 0 0 1 7 4 A 1 1 0 0 1 8 3 z M 11.441406 5 A 1 1 0 0 1 12.330078 5.5 A 1 1 0 0 1 11.964844 6.8652344 A 1 1 0 0 1 10.597656 6.5 A 1 1 0 0 1 10.964844 5.1347656 A 1 1 0 0 1 11.441406 5 z M 4.4882812 5.0019531 A 1 1 0 0 1 5.0351562 5.1347656 A 1 1 0 0 1 5.4023438 6.5 A 1 1 0 0 1 4.0351562 6.8652344 A 1 1 0 0 1 3.6699219 5.5 A 1 1 0 0 1 4.4882812 5.0019531 z M 4.5117188 9 A 1 1 0 0 1 5.4023438 9.5 A 1 1 0 0 1 5.0351562 10.865234 A 1 1 0 0 1 3.6699219 10.5 A 1 1 0 0 1 4.0351562 9.1347656 A 1 1 0 0 1 4.5117188 9 z M 11.416016 9.0019531 A 1 1 0 0 1 11.964844 9.1347656 A 1 1 0 0 1 12.330078 10.5 A 1 1 0 0 1 10.964844 10.865234 A 1 1 0 0 1 10.597656 9.5 A 1 1 0 0 1 11.416016 9.0019531 z M 8 11 A 1 1 0 0 1 9 12 A 1 1 0 0 1 8 13 A 1 1 0 0 1 7 12 A 1 1 0 0 1 8 11 z "
+ id="path4140"
+ transform="translate(0,1036.3622)" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_area.svg b/tools/editor/icons/source/icon_area.svg
index d56043cf3b..d16ad26e23 100644
--- a/tools/editor/icons/source/icon_area.svg
+++ b/tools/editor/icons/source/icon_area.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="5.5000497"
- inkscape:cy="8.7464605"
+ inkscape:cx="-2.7642608"
+ inkscape:cy="8.6580722"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -68,97 +68,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
+ <path
style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4148"
- width="2"
- height="4"
- x="1"
- y="1047.3622" />
- <rect
- y="1049.3622"
- x="1"
- height="1.9999304"
- width="4"
- id="rect4150"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="1040.3622"
- x="4"
- height="8.0000172"
- width="2"
- id="rect4152"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="-1041.3622"
- x="1"
- height="4"
- width="2"
- id="rect4154"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="scale(1,-1)" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4156"
- width="4"
- height="1.9999304"
- x="1"
- y="-1039.3622"
- transform="scale(1,-1)" />
- <rect
- transform="scale(-1,-1)"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4158"
- width="2"
- height="4"
- x="-15"
- y="-1041.3622" />
- <rect
- transform="scale(-1,-1)"
- y="-1039.3622"
- x="-15"
- height="1.9999304"
- width="4"
- id="rect4160"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="1047.3623"
- x="-15"
- height="4"
- width="2"
- id="rect4162"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="scale(-1,1)" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4164"
- width="4"
- height="1.9999304"
- x="-15"
- y="1049.3623"
- transform="scale(-1,1)" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4168"
- width="8"
- height="1.9999998"
- x="4"
- y="1046.3622" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4170"
- width="2"
- height="8.0000172"
- x="-12"
- y="-1048.3622"
- transform="scale(-1,-1)" />
- <rect
- y="-1042.3622"
- x="-12"
- height="1.9999998"
- width="8"
- id="rect4172"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="scale(-1,-1)" />
+ d="M 1 1 L 1 3 L 1 5 L 3 5 L 3 3 L 5 3 L 5 1 L 1 1 z M 11 1 L 11 3 L 13 3 L 13 5 L 15 5 L 15 1 L 11 1 z M 4 4 L 4 6 L 4 10 L 4 12 L 12 12 L 12 10 L 12 4 L 4 4 z M 6 6 L 10 6 L 10 10 L 6 10 L 6 6 z M 1 11 L 1 13 L 1 15 L 3 15 L 5 15 L 5 13 L 3 13 L 3 11 L 1 11 z M 13 11 L 13 13 L 11 13 L 11 15 L 15 15 L 15 13 L 15 11 L 13 11 z "
+ transform="translate(0,1036.3622)"
+ id="rect4148" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_area_2d.svg b/tools/editor/icons/source/icon_area_2d.svg
index 1373d9f0e4..ef7b16dd06 100644
--- a/tools/editor/icons/source/icon_area_2d.svg
+++ b/tools/editor/icons/source/icon_area_2d.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.313709"
- inkscape:cx="14.936968"
- inkscape:cy="11.331549"
+ inkscape:cx="-1.5916523"
+ inkscape:cy="11.154772"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -68,97 +68,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
+ <path
style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4148"
- width="2"
- height="4"
- x="1"
- y="1047.3622" />
- <rect
- y="1049.3622"
- x="1"
- height="1.9999304"
- width="4"
- id="rect4150"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="1040.3622"
- x="4"
- height="8.0000172"
- width="2"
- id="rect4152"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="-1041.3622"
- x="1"
- height="4"
- width="2"
- id="rect4154"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="scale(1,-1)" />
- <rect
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4156"
- width="4"
- height="1.9999304"
- x="1"
- y="-1039.3622"
- transform="scale(1,-1)" />
- <rect
- transform="scale(-1,-1)"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4158"
- width="2"
- height="4"
- x="-15"
- y="-1041.3622" />
- <rect
- transform="scale(-1,-1)"
- y="-1039.3622"
- x="-15"
- height="1.9999304"
- width="4"
- id="rect4160"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="1047.3623"
- x="-15"
- height="4"
- width="2"
- id="rect4162"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="scale(-1,1)" />
- <rect
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4164"
- width="4"
- height="1.9999304"
- x="-15"
- y="1049.3623"
- transform="scale(-1,1)" />
- <rect
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4168"
- width="8"
- height="1.9999998"
- x="4"
- y="1046.3622" />
- <rect
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4170"
- width="2"
- height="8.0000172"
- x="-12"
- y="-1048.3622"
- transform="scale(-1,-1)" />
- <rect
- y="-1042.3622"
- x="-12"
- height="1.9999998"
- width="8"
- id="rect4172"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="scale(-1,-1)" />
+ d="M 1 1 L 1 3 L 1 5 L 3 5 L 3 3 L 5 3 L 5 1 L 1 1 z M 11 1 L 11 3 L 13 3 L 13 5 L 15 5 L 15 1 L 11 1 z M 4 4 L 4 6 L 4 10 L 4 12 L 12 12 L 12 10 L 12 4 L 4 4 z M 6 6 L 10 6 L 10 10 L 6 10 L 6 6 z M 1 11 L 1 13 L 1 15 L 3 15 L 5 15 L 5 13 L 3 13 L 3 11 L 1 11 z M 13 11 L 13 13 L 11 13 L 11 15 L 15 15 L 15 13 L 15 11 L 13 11 z "
+ transform="translate(0,1036.3622)"
+ id="rect4148" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_arrow_left.svg b/tools/editor/icons/source/icon_arrow_left.svg
index 7af9be05d8..75a9ef0d68 100644
--- a/tools/editor/icons/source/icon_arrow_left.svg
+++ b/tools/editor/icons/source/icon_arrow_left.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
- inkscape:cx="5.5903114"
- inkscape:cy="9.1977698"
+ inkscape:cx="-0.2534386"
+ inkscape:cy="9.1352698"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -68,30 +68,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
- style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4352"
- width="9"
- height="2.0000174"
- x="6"
- y="1043.3622" />
<path
- transform="matrix(0,1.2810265,0.92450034,0,964.29952,1037.9571)"
- inkscape:transform-center-y="-9.6789057e-05"
- d="m 8.122499,-1036.5594 -3.122499,0 -3.122499,0 1.5612495,-2.7042 L 5,-1041.9677 l 1.5612495,2.7041 z"
- inkscape:randomized="0"
- inkscape:rounded="0"
- inkscape:flatsided="false"
- sodipodi:arg2="1.5707963"
- sodipodi:arg1="0.52359878"
- sodipodi:r2="1.8027756"
- sodipodi:r1="3.6055512"
- sodipodi:cy="-1038.3622"
- sodipodi:cx="5"
- sodipodi:sides="3"
- id="path4435"
- style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-linecap:round;stroke-opacity:1"
- sodipodi:type="star"
- inkscape:transform-center-x="1.1667546" />
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 6 4 L 3.5 6 L 1 8 L 3.5 10 L 6 12 L 6 9 L 15 9 L 15 7 L 6 7 L 6 4 z "
+ transform="translate(0,1036.3622)"
+ id="rect4352" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_arrow_right.svg b/tools/editor/icons/source/icon_arrow_right.svg
index 860a6f1481..a7600699f7 100644
--- a/tools/editor/icons/source/icon_arrow_right.svg
+++ b/tools/editor/icons/source/icon_arrow_right.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
- inkscape:cx="6.7465614"
- inkscape:cy="9.3227698"
+ inkscape:cx="0.9028114"
+ inkscape:cy="9.2602698"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -59,7 +59,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -70,8 +70,9 @@
transform="translate(0,-1036.3622)">
<path
style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 10,1048.3622 2.5,-2 2.5,-2 -2.5,-2 -2.5,-2 0,3 -9,0 0,2 9,0 0,3 z"
+ d="m 10,1048.3622 5,-4 -5,-4 0,3 -9,0 0,2 9,0 z"
id="rect4352"
- inkscape:connector-curvature="0" />
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_auto_play.svg b/tools/editor/icons/source/icon_auto_play.svg
index 00bc96aac5..d4e1068ebf 100644
--- a/tools/editor/icons/source/icon_auto_play.svg
+++ b/tools/editor/icons/source/icon_auto_play.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="64"
- inkscape:cx="6.4431479"
- inkscape:cy="7.7277865"
+ inkscape:zoom="32"
+ inkscape:cx="9.592521"
+ inkscape:cy="9.4268437"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -60,7 +60,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -70,40 +70,9 @@
id="layer1"
transform="translate(0,-1036.3622)">
<path
- style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
- d="m 2,1049.3622 0,-10 8,0 4,5 -4,5 z"
- id="path4164"
- inkscape:connector-curvature="0" />
- <rect
- y="1043.3622"
- x="4"
- height="3.9999824"
- width="1"
- id="rect4162"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <path
- style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
- d="m 11,1044.3622 -2,-2 0,4 z"
- id="path4166"
- inkscape:connector-curvature="0" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4168"
- width="1"
- height="3.9999824"
- x="7"
- y="1043.3622" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4170"
- width="2"
- height="0.99994755"
- x="5"
- y="1044.3622" />
- <path
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 6 5 C 4.8954305 5 4 5.8954 4 7 L 5 7 A 1 1 0 0 1 6 6 A 1 1 0 0 1 7 7 L 8 7 C 8 5.8954 7.1045695 5 6 5 z "
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 2 2 A 1.0001 1.0001 0 0 0 1 3 L 1 13 A 1.0001 1.0001 0 0 0 2 14 L 10 14 A 1.0001 1.0001 0 0 0 10.78125 13.625 L 14.78125 8.625 A 1.0001 1.0001 0 0 0 14.78125 7.3769531 L 10.78125 2.3769531 A 1.0001 1.0001 0 0 0 10 2 L 2 2 z M 3 4 L 9.5195312 4 L 12.71875 8 L 9.5195312 12 L 3 12 L 3 4 z M 6 5 C 4.8954305 5 4 5.8954 4 7 L 4 11 L 5 11 L 5 9 L 7 9 L 7 11 L 8 11 L 8 7 C 8 5.8954 7.1045695 5 6 5 z M 6 6 A 1 1 0 0 1 7 7 L 7 8 L 5 8 L 5 7 A 1 1 0 0 1 6 6 z M 9 6 L 9 10 L 11 8 L 9 6 z "
transform="translate(0,1036.3622)"
- id="path4172" />
+ id="path4164" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_back_buffer_copy.svg b/tools/editor/icons/source/icon_back_buffer_copy.svg
index 150421d7dd..17d83ed73f 100644
--- a/tools/editor/icons/source/icon_back_buffer_copy.svg
+++ b/tools/editor/icons/source/icon_back_buffer_copy.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="12.102474"
- inkscape:cy="8.4888344"
+ inkscape:cx="3.8381635"
+ inkscape:cy="8.4004461"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -59,7 +59,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -68,57 +68,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
+ <path
style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4146"
- width="2"
- height="9"
- x="1"
- y="1037.3622" />
- <rect
- y="1037.3622"
- x="1"
- height="2.0000174"
- width="8"
- id="rect4148"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="-1051.3622"
- x="-15"
- height="9"
- width="2"
- id="rect4150"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="scale(-1,-1)" />
- <rect
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4152"
- width="7"
- height="2.0000174"
- x="-15"
- y="-1051.3622"
- transform="scale(-1,-1)" />
- <rect
- transform="scale(-1,-1)"
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4154"
- width="2"
- height="9"
- x="-9"
- y="-1051.3622" />
- <rect
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4156"
- width="8"
- height="2.0000174"
- x="7"
- y="1040.3622" />
- <rect
- style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4158"
- width="5"
- height="2.0000174"
- x="1"
- y="1046.3622" />
+ d="M 1 1 L 1 3 L 1 10 L 1 12 L 6 12 L 6 10 L 3 10 L 3 3 L 9 3 L 9 1 L 3 1 L 1 1 z M 7 4 L 7 6 L 7 15 L 9 15 L 15 15 L 15 13 L 15 6 L 15 4 L 7 4 z M 9 6 L 13 6 L 13 13 L 9 13 L 9 6 z "
+ transform="translate(0,1036.3622)"
+ id="rect4146" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_bake.svg b/tools/editor/icons/source/icon_bake.svg
index 7f1e9b4ae8..ca07bca379 100644
--- a/tools/editor/icons/source/icon_bake.svg
+++ b/tools/editor/icons/source/icon_bake.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="4.5449307"
- inkscape:cy="12.981869"
+ inkscape:cx="-3.7193798"
+ inkscape:cy="12.893481"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -60,7 +60,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -71,22 +71,8 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z "
+ d="M 2 1 L 2 3 L 14 3 L 14 1 L 2 1 z M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z M 6 8 L 6 9 L 10 9 L 10 8 L 6 8 z "
transform="translate(0,1036.3622)"
id="rect4155" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4173"
- width="12"
- height="2.0000174"
- x="2"
- y="1037.3622" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4159"
- width="4"
- height="1.0000174"
- x="6"
- y="1044.3622" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_baked_light.svg b/tools/editor/icons/source/icon_baked_light.svg
index 7f1e9b4ae8..98dc3135f6 100644
--- a/tools/editor/icons/source/icon_baked_light.svg
+++ b/tools/editor/icons/source/icon_baked_light.svg
@@ -18,7 +18,7 @@
inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
- sodipodi:docname="icon_bake.svg">
+ sodipodi:docname="icon_baked_light.svg">
<defs
id="defs4" />
<sodipodi:namedview
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="4.5449307"
- inkscape:cy="12.981869"
+ inkscape:cx="6.1801151"
+ inkscape:cy="10.551189"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -60,7 +60,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -71,22 +71,8 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z "
+ d="M 2 1 L 2 3 L 14 3 L 14 1 L 2 1 z M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z M 6 8 L 6 9 L 10 9 L 10 8 L 6 8 z "
transform="translate(0,1036.3622)"
id="rect4155" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4173"
- width="12"
- height="2.0000174"
- x="2"
- y="1037.3622" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4159"
- width="4"
- height="1.0000174"
- x="6"
- y="1044.3622" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_baked_light_instance.svg b/tools/editor/icons/source/icon_baked_light_instance.svg
index 434bf0f6fc..d854378f12 100644
--- a/tools/editor/icons/source/icon_baked_light_instance.svg
+++ b/tools/editor/icons/source/icon_baked_light_instance.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="-3.1006614"
- inkscape:cy="12.893481"
+ inkscape:cx="10.864698"
+ inkscape:cy="11.302491"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -71,22 +71,8 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z "
+ d="M 2 1 L 2 3 L 14 3 L 14 1 L 2 1 z M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z M 6 8 L 6 9 L 10 9 L 10 8 L 6 8 z "
transform="translate(0,1036.3622)"
id="rect4155" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4173"
- width="12"
- height="2.0000174"
- x="2"
- y="1037.3622" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4159"
- width="4"
- height="1.0000174"
- x="6"
- y="1044.3622" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_baked_light_sampler.svg b/tools/editor/icons/source/icon_baked_light_sampler.svg
index aa6e6e26d0..2dc7c39621 100644
--- a/tools/editor/icons/source/icon_baked_light_sampler.svg
+++ b/tools/editor/icons/source/icon_baked_light_sampler.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
- inkscape:cx="3.5600026"
- inkscape:cy="5.9708001"
+ inkscape:cx="9.2162526"
+ inkscape:cy="7.9395501"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -71,20 +71,8 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 7 15 L 7 13 L 3 13 L 3 7 L 7 7 L 13 7 L 15 7 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 6 8 L 6 9 L 7 9 L 7 8 L 6 8 z "
+ d="M 2 1 L 2 3 L 14 3 L 14 1 L 2 1 z M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 7 15 L 7 13 L 3 13 L 3 7 L 7 7 L 13 7 L 15 7 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 6 8 L 6 9 L 7 9 L 7 8 L 6 8 z M 10 9 A 1 1 0 0 0 9 10 L 9 14 A 1 1 0 0 0 10 15 L 14 15 A 1 1 0 0 0 15 14 L 15 10 A 1 1 0 0 0 14 9 L 10 9 z M 13 10 A 1 1 0 0 1 14 11 A 1 1 0 0 1 13 12 A 1 1 0 0 1 12 11 A 1 1 0 0 1 13 10 z M 11 12 A 1 1 0 0 1 12 13 A 1 1 0 0 1 11 14 A 1 1 0 0 1 10 13 A 1 1 0 0 1 11 12 z "
transform="translate(0,1036.3622)"
id="rect4155" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4173"
- width="12"
- height="2.0000174"
- x="2"
- y="1037.3622" />
- <path
- style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 10 9 A 1 1 0 0 0 9 10 L 9 14 A 1 1 0 0 0 10 15 L 14 15 A 1 1 0 0 0 15 14 L 15 10 A 1 1 0 0 0 14 9 L 10 9 z M 13 10 A 1 1 0 0 1 14 11 A 1 1 0 0 1 13 12 A 1 1 0 0 1 12 11 A 1 1 0 0 1 13 10 z M 11 12 A 1 1 0 0 1 12 13 A 1 1 0 0 1 11 14 A 1 1 0 0 1 10 13 A 1 1 0 0 1 11 12 z "
- transform="translate(0,1036.3622)"
- id="rect4156" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_bit_map.svg b/tools/editor/icons/source/icon_bit_map.svg
new file mode 100644
index 0000000000..fbaf573af6
--- /dev/null
+++ b/tools/editor/icons/source/icon_bit_map.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_bit_map.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="-0.178935"
+ inkscape:cy="8.367044"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 1 1 L 1 3 L 3 3 L 3 1 L 1 1 z M 3 3 L 3 5 L 5 5 L 5 3 L 3 3 z M 5 3 L 7 3 L 7 1 L 5 1 L 5 3 z M 7 3 L 7 5 L 9 5 L 9 3 L 7 3 z M 9 3 L 11 3 L 11 1 L 9 1 L 9 3 z M 11 3 L 11 5 L 13 5 L 13 3 L 11 3 z M 13 3 L 15 3 L 15 1 L 13 1 L 13 3 z M 13 5 L 13 7 L 15 7 L 15 5 L 13 5 z M 13 7 L 11 7 L 11 9 L 13 9 L 13 7 z M 13 9 L 13 11 L 15 11 L 15 9 L 13 9 z M 13 11 L 11 11 L 11 13 L 13 13 L 13 11 z M 13 13 L 13 15 L 15 15 L 15 13 L 13 13 z M 11 13 L 9 13 L 9 15 L 11 15 L 11 13 z M 9 13 L 9 11 L 7 11 L 7 13 L 9 13 z M 7 13 L 5 13 L 5 15 L 7 15 L 7 13 z M 5 13 L 5 11 L 3 11 L 3 13 L 5 13 z M 3 13 L 1 13 L 1 15 L 3 15 L 3 13 z M 3 11 L 3 9 L 1 9 L 1 11 L 3 11 z M 3 9 L 5 9 L 5 7 L 3 7 L 3 9 z M 3 7 L 3 5 L 1 5 L 1 7 L 3 7 z M 5 7 L 7 7 L 7 5 L 5 5 L 5 7 z M 7 7 L 7 9 L 9 9 L 9 7 L 7 7 z M 9 7 L 11 7 L 11 5 L 9 5 L 9 7 z M 9 9 L 9 11 L 11 11 L 11 9 L 9 9 z M 7 9 L 5 9 L 5 11 L 7 11 L 7 9 z "
+ id="rect4170"
+ transform="translate(0,1036.3622)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_bitmap_font.svg b/tools/editor/icons/source/icon_bitmap_font.svg
index fa9fdaf5c5..70749923d5 100644
--- a/tools/editor/icons/source/icon_bitmap_font.svg
+++ b/tools/editor/icons/source/icon_bitmap_font.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
- inkscape:cx="10.302728"
- inkscape:cy="7.9861624"
+ inkscape:cx="5.619442"
+ inkscape:cy="6.940754"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -60,7 +60,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -69,62 +69,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4212"
- width="14"
- height="2"
- x="1"
- y="1037.3622" />
- <rect
- y="1037.3622"
- x="7"
- height="14.000017"
- width="2"
- id="rect4214"
- style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
- <rect
- style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4216"
- width="6"
- height="0.99999976"
- x="5"
- y="1050.3622" />
- <path
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- d="M 1 1 L 1 3 L 1 5 L 2 5 L 2 4 L 3 4 L 3 3 L 4 3 L 4 1 L 2 1 L 1 1 z "
- transform="translate(0,1036.3622)"
- id="rect4218" />
<path
- style="opacity:1;fill:#be9cfc;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- d="M 12 1 L 12 3 L 13 3 L 13 4 L 14 4 L 14 5 L 15 5 L 15 3 L 15 1 L 14 1 L 12 1 z "
- transform="translate(0,1036.3622)"
- id="rect4220" />
- <rect
- style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4259"
- width="1"
- height="1"
- x="9"
- y="1049.3622" />
- <rect
- y="1049.3622"
- x="6"
- height="1"
- width="1"
- id="rect4261"
- style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
- <path
- style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- d="M 4 1 L 4 3 L 7 3 L 7 6 L 9 6 L 9 3 L 12 3 L 12 1 L 4 1 z "
- transform="translate(0,1036.3622)"
- id="rect4276" />
- <rect
- style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4307"
- width="2"
- height="5"
- x="7"
- y="1042.3622" />
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 1,1037.3622 0,2 0,2 1,0 0,-1 1,0 0,-1 4,0 0,3 0,5 0,2 -1,0 0,1 -1,0 0,1 6,0 0,-1 -1,0 0,-1 -1,0 0,-10 4,0 0,1 1,0 0,1 1,0 0,-2 0,-2 -13,0 -1,0 z"
+ id="rect4212"
+ inkscape:connector-curvature="0" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_canvas_layer.svg b/tools/editor/icons/source/icon_canvas_layer.svg
index a26edd7d6d..794d832eea 100644
--- a/tools/editor/icons/source/icon_canvas_layer.svg
+++ b/tools/editor/icons/source/icon_canvas_layer.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="-3.1074492"
- inkscape:cy="10.973033"
+ inkscape:cx="-2.2677599"
+ inkscape:cy="10.08915"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -64,7 +64,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -74,35 +74,9 @@
id="layer1"
transform="translate(0,-1036.3622)">
<path
- sodipodi:nodetypes="cscsccccsssc"
- inkscape:connector-curvature="0"
- id="path4146"
- d="m 2.920797,1046.3957 c -0.2637264,0.3 -0.4203983,0.7296 -0.4203983,1.2383 0,1.6277 -3.13814186,-0.1781 -0.337569,2.6703 0.8838207,0.899 2.6543881,0.6701 3.538224,-0.2288 0.8838352,-0.899 0.8838163,-2.3565 0,-3.2554 -1.1002211,-1.1191 -2.200058,-1.0845 -2.7802567,-0.4244 z m 2.3801743,-1.6103 2.4004918,2.4416 6.8013899,-6.9177 c 0.662863,-0.6742 0.662863,-1.7673 0,-2.4415 -0.662877,-0.6741 -1.737613,-0.6741 -2.400491,0 z"
- style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
- <path
- style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 3 1 A 2 2 0 0 0 1 3 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 L 3 1 z "
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 L 1 9 L 2 9 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 L 9 2 L 9 1 L 3 1 z M 13.302734 1 C 12.868331 1 12.433001 1.1688094 12.101562 1.5058594 L 5.3007812 8.4238281 L 7.7011719 10.865234 L 14.501953 3.9472656 C 15.164816 3.2730656 15.164816 2.1800594 14.501953 1.5058594 C 14.170515 1.1688094 13.737138 1 13.302734 1 z M 14 7 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 7 14 L 7 15 L 13 15 A 2 2 0 0 0 15 13 L 15 7 L 14 7 z M 4.1152344 9.578125 C 3.6302227 9.5294 3.2100212 9.7031531 2.9199219 10.033203 C 2.6561955 10.333203 2.5 10.762784 2.5 11.271484 C 2.5 12.899184 -0.63846349 11.093006 2.1621094 13.941406 C 3.0459301 14.840406 4.817336 14.611791 5.7011719 13.712891 C 6.5850071 12.813891 6.5849882 11.355931 5.7011719 10.457031 C 5.1510613 9.8974813 4.6002461 9.62685 4.1152344 9.578125 z "
transform="translate(0,1036.3622)"
- id="path4160" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4164"
- width="6"
- height="1"
- x="3"
- y="1037.3622" />
- <rect
- y="-2"
- x="1039.3622"
- height="1"
- width="6"
- id="rect4166"
- style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="matrix(0,1,-1,0,0,0)" />
- <path
- style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="m 13,1051.3622 a 2,2 0 0 0 2,-2 l 0,-6 -1,0 0,6 a 1.0000174,1.0000174 0 0 1 -1,1 l -6,0 0,1 6,0 z"
- id="path4169"
- inkscape:connector-curvature="0" />
+ id="path4146" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_canvas_modulate.svg b/tools/editor/icons/source/icon_canvas_modulate.svg
index 450823e005..8f8bd55f82 100644
--- a/tools/editor/icons/source/icon_canvas_modulate.svg
+++ b/tools/editor/icons/source/icon_canvas_modulate.svg
@@ -20,7 +20,44 @@
inkscape:export-ydpi="90"
sodipodi:docname="icon_canvas_modulate.svg">
<defs
- id="defs4" />
+ id="defs4">
+ <clipPath
+ id="clipPath4253"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4255"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ id="clipPath4199"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z"
+ id="path4201"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4392">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 8.072266,1041.3622 a 5,5 0 0 0 -3.607422,1.4648 5,5 0 0 0 0,7.0704 5,5 0 0 0 7.070312,0 l -1.416015,-1.4161 A 3,3 0 0 1 8,1049.3622 a 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 2.119141,0.8809 l 1.416015,-1.4161 a 5,5 0 0 0 -3.46289,-1.4648 z"
+ id="path4394"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ id="clipPath4196"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4198"
+ d="m 8.0624999,1025.8622 a 3.375,2.9999997 0 0 0 -3.375,3 3.375,2.9999997 0 0 0 1.6875,2.5957 l 0,9.8115 a 3.375,2.9999997 0 0 0 -1.6875,2.5928 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.3750001,-3 3.375,2.9999997 0 0 0 -1.6875001,-2.5957 l 0,-8.7832 11.9311511,10.6054 a 3.375,2.9999997 0 0 0 -0.118651,0.7735 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -0.873413,0.1025 l -11.927857,-10.6025 9.884399,0 a 3.375,2.9999997 0 0 0 2.916871,1.5 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -2.920166,1.5 l -11.037964,0 a 3.375,2.9999997 0 0 0 -2.9168701,-1.5 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ </defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
@@ -28,9 +65,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="16"
- inkscape:cx="7.3785882"
- inkscape:cy="11.139886"
+ inkscape:zoom="45.254834"
+ inkscape:cx="10.091501"
+ inkscape:cy="9.4358129"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -46,7 +83,10 @@
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
- inkscape:window-maximized="1">
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid3336"
@@ -60,7 +100,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -69,39 +109,29 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4159"
- width="10"
- height="10.000017"
- x="3"
- y="1039.3622" />
<path
style="fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 1,1037.3622 0,2 0,12 2,0 12,0 0,-2 0,-12 -2,0 -10,0 z m 2,2 10,0 0,10 -10,0 z"
+ d="m 1,1037.3622 0,14 14,0 0,-14 z m 2,2 10,0 0,10 -10,0 z"
id="rect4280"
inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccccccccccc" />
- <ellipse
- style="fill:#ff0000;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="path4153"
- cx="6.5"
- cy="1045.8622"
- rx="2.5"
- ry="2.4999871" />
- <ellipse
- style="fill:#0000ff;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="ellipse4157"
- cx="8"
- cy="1042.8622"
- rx="2.5"
- ry="2.4999938" />
- <ellipse
- ry="2.4999936"
- rx="2.5"
- cy="1045.8622"
- cx="9.5"
- id="ellipse4155"
- style="fill:#00ff00;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4183"
+ d="m 12,1048.3622 -5,0 5,-5 z"
+ style="fill:#70bfff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#ff7070;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 4,1040.3622 5,0 -5,5 z"
+ id="path4185"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ id="path4187"
+ d="m 4,1048.3622 0,-3 5,-5 3,0 0,3 -5,5 z"
+ style="fill:#7aff70;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_color_rect.svg b/tools/editor/icons/source/icon_color_rect.svg
new file mode 100644
index 0000000000..76bf6596a9
--- /dev/null
+++ b/tools/editor/icons/source/icon_color_rect.svg
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_color_rect.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4253">
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ id="path4255"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4199">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4201"
+ d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ id="clipPath4392"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4394"
+ d="m 8.072266,1041.3622 a 5,5 0 0 0 -3.607422,1.4648 5,5 0 0 0 0,7.0704 5,5 0 0 0 7.070312,0 l -1.416015,-1.4161 A 3,3 0 0 1 8,1049.3622 a 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 3,3 0 0 1 2.119141,0.8809 l 1.416015,-1.4161 a 5,5 0 0 0 -3.46289,-1.4648 z"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4196">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8.0624999,1025.8622 a 3.375,2.9999997 0 0 0 -3.375,3 3.375,2.9999997 0 0 0 1.6875,2.5957 l 0,9.8115 a 3.375,2.9999997 0 0 0 -1.6875,2.5928 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.3750001,-3 3.375,2.9999997 0 0 0 -1.6875001,-2.5957 l 0,-8.7832 11.9311511,10.6054 a 3.375,2.9999997 0 0 0 -0.118651,0.7735 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -0.873413,0.1025 l -11.927857,-10.6025 9.884399,0 a 3.375,2.9999997 0 0 0 2.916871,1.5 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -2.920166,1.5 l -11.037964,0 a 3.375,2.9999997 0 0 0 -2.9168701,-1.5 z"
+ id="path4198"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.9050022"
+ inkscape:cy="11.383887"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="1"
+ height="14"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1050.3622"
+ x="1"
+ height="0.9999826"
+ width="14"
+ id="rect4156"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="14"
+ height="0.9999826"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="14"
+ height="14"
+ width="1"
+ id="rect4160"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:#70bfff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 13,1049.3622 -6,0 6,-6 z"
+ id="path4168"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4170"
+ d="m 3,1039.3622 6,0 -6,6 z"
+ style="fill:#ff7070;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:#7aff70;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 3,1049.3622 0,-4 6,-6 4,0 0,4 -6,6 z"
+ id="path4172"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_connect.svg b/tools/editor/icons/source/icon_connect.svg
index 2261765bdf..745d3cc436 100644
--- a/tools/editor/icons/source/icon_connect.svg
+++ b/tools/editor/icons/source/icon_connect.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627418"
- inkscape:cx="9.0509434"
- inkscape:cy="11.261328"
+ inkscape:cx="0.78663326"
+ inkscape:cy="12.940707"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -59,7 +59,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -68,52 +68,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
- y="1043.3622"
- x="1"
- height="1.9999478"
- width="5"
- id="rect4155"
- style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4157"
- width="4"
- height="12"
- x="7"
- y="1038.3622" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4159"
- width="3"
- height="2"
- x="11"
- y="1040.3622" />
- <rect
- y="1046.3622"
- x="11"
- height="2"
- width="3"
- id="rect4161"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <circle
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="path4163"
- cx="7"
- cy="1040.3622"
- r="2" />
- <rect
- y="1040.3622"
- x="5"
- height="8.0000172"
- width="4"
- id="rect4165"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <circle
- r="2"
- cy="1048.3622"
- cx="7"
- id="circle4167"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7 2 A 2 2 0 0 0 5 4 L 5 7 L 1 7 L 1 9 L 5 9 L 5 12 A 2 2 0 0 0 7 14 L 11 14 L 11 12 L 14 12 L 14 10 L 11 10 L 11 6 L 14 6 L 14 4 L 11 4 L 11 2 L 7 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_connection_and_groups.svg b/tools/editor/icons/source/icon_connection_and_groups.svg
index 97f615d9bc..5468312b4b 100644
--- a/tools/editor/icons/source/icon_connection_and_groups.svg
+++ b/tools/editor/icons/source/icon_connection_and_groups.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627418"
- inkscape:cx="4.8878469"
- inkscape:cy="12.667351"
+ inkscape:cx="-3.3764632"
+ inkscape:cy="12.578963"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -68,97 +68,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
- y="1048.3622"
- x="2"
- height="0.99993038"
- width="6"
- id="rect4155"
- style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4157"
- width="2"
- height="6.9999485"
- x="10"
- y="1045.3622" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4159"
- width="2"
- height="0.9999826"
- x="12"
- y="1046.3622" />
- <rect
- y="1050.3622"
- x="12"
- height="0.9999826"
- width="2"
- id="rect4161"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <ellipse
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="path4163"
- cx="10"
- cy="1047.3622"
- rx="2"
- ry="1.9999913" />
- <circle
- r="2"
- cy="1050.3622"
- cx="10"
- id="circle4167"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="1047.3623"
- x="8"
- height="2.9998953"
- width="2"
- id="rect4201"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4203"
- width="12"
- height="1"
- x="2"
- y="1036.3622" />
- <rect
- y="1042.3622"
- x="2"
- height="1"
- width="12"
- id="rect4205"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <rect
- y="-3"
- x="1036.3622"
- height="1"
- width="6.0000348"
- id="rect4207"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="matrix(0,1,-1,0,0,0)" />
- <rect
- transform="matrix(0,1,-1,0,0,0)"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4209"
- width="6.0000348"
- height="1"
- x="1036.3622"
- y="-14" />
- <ellipse
- ry="1.5000032"
- rx="1.5"
- cy="1039.8622"
- cx="5.5"
- id="ellipse4214"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <ellipse
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="ellipse4216"
- cx="10.5"
- cy="1039.8622"
- rx="1.5"
- ry="1.5000032" />
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 2 0 L 2 1 L 2 6 L 2 7 L 14 7 L 14 6 L 14 0 L 3 0 L 2 0 z M 3 1 L 13 1 L 13 6 L 3 6 L 3 1 z M 5.5 2 A 1.5 1.5000032 0 0 0 4 3.5 A 1.5 1.5000032 0 0 0 5.5 5 A 1.5 1.5000032 0 0 0 7 3.5 A 1.5 1.5000032 0 0 0 5.5 2 z M 10.5 2 A 1.5 1.5000032 0 0 0 9 3.5 A 1.5 1.5000032 0 0 0 10.5 5 A 1.5 1.5000032 0 0 0 12 3.5 A 1.5 1.5000032 0 0 0 10.5 2 z M 10 9 A 2 1.9999913 0 0 0 8 11 L 8 12 L 2 12 L 2 13 L 8 13 L 8 14 A 2 2 0 0 0 10 16 L 12 16 L 12 15 L 14 15 L 14 14 L 12 14 L 12 11 L 14 11 L 14 10 L 12 10 L 12 9 L 10 9 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_copy_node_path.svg b/tools/editor/icons/source/icon_copy_node_path.svg
new file mode 100644
index 0000000000..9f33c5e54d
--- /dev/null
+++ b/tools/editor/icons/source/icon_copy_node_path.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/godotengine/godot/tools/editor/icons/con_script_create.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_copy_node_path.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ id="clipPath4253"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4255"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="21.189633"
+ inkscape:cx="12.640765"
+ inkscape:cy="9.6848443"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ cy="1048.3622"
+ cx="3"
+ id="ellipse4234"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ ry="1.0000174"
+ rx="1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 2 1 C 1.4477381 1.0001 1.0000552 1.4477 1 2 L 1 14 C 1.0000552 14.5523 1.4477381 14.9999 2 15 L 14 15 C 14.552262 14.9999 14.999945 14.5523 15 14 L 15 6 L 10 1 L 2 1 z M 3 3 L 9 3 L 9 6 C 9 6.554 9.4459905 7 10 7 L 13 7 L 13 13 L 3 13 L 3 3 z M 6 8 L 4 12 L 6 12 L 8 8 L 6 8 z M 10 8 L 8 12 L 10 12 L 12 8 L 10 8 z "
+ transform="translate(0,1036.3622)"
+ id="rect4178" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_create_new_scene_from.svg b/tools/editor/icons/source/icon_create_new_scene_from.svg
index f5a456773c..529553bbd3 100644
--- a/tools/editor/icons/source/icon_create_new_scene_from.svg
+++ b/tools/editor/icons/source/icon_create_new_scene_from.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="4.1061535"
- inkscape:cy="9.360052"
+ inkscape:cx="-3.7255471"
+ inkscape:cy="8.1847434"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -46,7 +46,10 @@
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
- inkscape:window-maximized="1">
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid3336" />
@@ -59,7 +62,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -70,9 +73,11 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 1 7 L 1 13 A 2 2 0 0 0 3 15 L 15 15 L 15 7 L 1 7 z M 4 9 L 5 9 L 5 11 L 7 11 L 7 12 L 5 12 L 5 14 L 4 14 L 4 12 L 2 12 L 2 11 L 4 11 L 4 9 z "
+ d="m 1,7 0,6 c 0,1.104569 0.8954305,2 2,2 l 7,0 0,-1 -2,0 0,-4 2,0 0,-2 4,0 0,2 1,0 0,-3 z"
transform="translate(0,1036.3622)"
- id="rect4136" />
+ id="rect4136"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssccccccccccc" />
<path
style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 0.7112932,1040.3831 1,1042.3622 l 2.2438279,-0.3273 -0.8182578,-1.9018 -1.7142769,0.25 z m 3.6933293,-0.5387 0.8182578,1.9018 1.9790524,-0.2887 -0.8182579,-1.9018 -1.9790523,0.2887 z m 3.9581047,-0.5775 0.8182579,1.9018 1.9790519,-0.2887 -0.818257,-1.9018 -1.9790528,0.2887 z m 3.9581048,-0.5774 0.818258,1.9018 1.714277,-0.25 -0.288707,-1.9791 -2.243828,0.3273 z"
@@ -80,5 +85,17 @@
inkscape:connector-curvature="0"
inkscape:transform-center-x="-6.7823301"
inkscape:transform-center-y="-2" />
+ <circle
+ r="0"
+ cy="1047.3622"
+ cx="-14"
+ id="ellipse4234"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ sodipodi:nodetypes="ccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4155"
+ d="m 13,1049.3622 2,0 0,-2 -2,0 0,-2 -2,0 0,2 -2,0 0,2 2,0 0,2 2,0 z"
+ style="fill:#84ffb1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_cube_map.svg b/tools/editor/icons/source/icon_cube_map.svg
new file mode 100644
index 0000000000..4fd86b1233
--- /dev/null
+++ b/tools/editor/icons/source/icon_cube_map.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_cube_map.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="11.01934"
+ inkscape:cx="19.581751"
+ inkscape:zoom="16"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <rect
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="4"
+ height="4"
+ x="0"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="4"
+ height="4"
+ width="4"
+ id="rect4167"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="4"
+ height="4"
+ x="8"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="12"
+ height="4"
+ width="4"
+ id="rect4171"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4173"
+ width="4"
+ height="4"
+ x="4"
+ y="1038.3622" />
+ <rect
+ y="1046.3622"
+ x="4"
+ height="4"
+ width="4"
+ id="rect4175"
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_2d.svg b/tools/editor/icons/source/icon_curve_2d.svg
new file mode 100644
index 0000000000..34719e37de
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_2d.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_curve_2d.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="7.8406355"
+ inkscape:cx="5.0331401"
+ inkscape:zoom="22.627416"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 14,1037.3613 c -3.166667,0 -5.1044619,0.854 -6.0820312,2.3203 C 6.9403994,1041.148 7,1042.8613 7,1044.3613 c 0,1.5 -0.059601,2.7867 -0.5820312,3.5703 -0.5224307,0.7837 -1.5846355,1.4297 -4.4179688,1.4297 a 1.0001,1.0001 0 1 0 0,2 c 3.1666667,0 5.1044619,-0.8539 6.0820312,-2.3203 C 9.0596006,1047.5747 9,1045.8613 9,1044.3613 c 0,-1.5 0.059601,-2.7866 0.5820312,-3.5703 0.5224308,-0.7836 1.5846358,-1.4297 4.4179688,-1.4297 a 1.0001,1.0001 0 1 0 0,-2 z"
+ id="path4154"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_3d.svg b/tools/editor/icons/source/icon_curve_3d.svg
new file mode 100644
index 0000000000..66034968b2
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_3d.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_3d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.9774722"
+ inkscape:cy="7.1326353"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 8.0039062,1037.3555 a 1.0001,1.0001 0 0 0 -0.4511718,0.1113 l -6,3 a 1.0001,1.0001 0 0 0 0,1.7891 l 6,3 a 1.0001,1.0001 0 0 0 0.8945312,0 L 13,1042.9805 l 0,3.7636 -5,2.5 -5.5527344,-2.7773 a 1.0001331,1.0001331 0 0 0 -0.8945312,1.7891 l 6,3 a 1.0001,1.0001 0 0 0 0.8945312,0 l 6.0000004,-3 A 1.0001,1.0001 0 0 0 15,1047.3613 l 0,-6 a 1.0001,1.0001 0 0 0 -1.447266,-0.8945 L 8,1043.2441 l -3.7636719,-1.8828 4.2109375,-2.1054 a 1.0001,1.0001 0 0 0 -0.4433594,-1.9004 z"
+ id="path4160"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dynamic_font_data.svg b/tools/editor/icons/source/icon_dynamic_font_data.svg
index 468b472d7e..9f06172fef 100644
--- a/tools/editor/icons/source/icon_dynamic_font_data.svg
+++ b/tools/editor/icons/source/icon_dynamic_font_data.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
- inkscape:cx="1.442498"
- inkscape:cy="7.5824259"
+ inkscape:cx="6.4667889"
+ inkscape:cy="8.2902868"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -69,10 +69,10 @@
id="layer1"
transform="translate(0,-1036.3622)">
<path
- id="path4246"
- d="m 1,1037.3622 0,2 0,1 1,0 a 1,1 0 0 1 1,-1 l 2,0 0,6 a 1,1 0 0 1 -1,1 l 0,1 1,0 2,0 1,0 0,-1 a 1,1 0 0 1 -1,-1 l 0,-6 2,0 a 1,1 0 0 1 1,1 l 1,0 0,-1 0,-2 -4,0 -2,0 -4,0 z"
style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- inkscape:connector-curvature="0" />
+ d="M 1 1 L 1 3 L 1 4 L 2 4 A 1 1 0 0 1 3 3 L 5 3 L 5 9 A 1 1 0 0 1 4 10 L 4 11 L 5 11 L 7 11 L 8 11 L 8 10 A 1 1 0 0 1 7 9 L 7 3 L 9 3 A 1 1 0 0 1 10 4 L 11 4 L 11 3 L 11 1 L 7 1 L 5 1 L 1 1 z M 1 6 L 1 8 L 3 8 L 3 6 L 1 6 z M 1 9 L 1 11 L 3 11 L 3 9 L 1 9 z M 1 12 L 1 14 L 3 14 L 3 12 L 1 12 z M 4 12 L 4 14 L 6 14 L 6 12 L 4 12 z "
+ transform="translate(0,1036.3622)"
+ id="path4246" />
<path
style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 4 5 L 4 7 L 4 8 L 5 8 A 1 1 0 0 1 6 7 L 8 7 L 8 13 A 1 1 0 0 1 7 14 L 7 15 L 8 15 L 10 15 L 11 15 L 11 14 A 1 1 0 0 1 10 13 L 10 7 L 12 7 A 1 1 0 0 1 13 8 L 14 8 L 14 7 L 14 5 L 10 5 L 8 5 L 4 5 z "
diff --git a/tools/editor/icons/source/icon_environment.svg b/tools/editor/icons/source/icon_environment.svg
new file mode 100644
index 0000000000..45add2c7f7
--- /dev/null
+++ b/tools/editor/icons/source/icon_environment.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_environment.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="10.741006"
+ inkscape:cy="10.690232"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e1e1e1;fill-opacity:0.99215686;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 7.0273438 2.0820312 C 6.3462908 2.6213949 5.3431503 3.5860946 4.6757812 5 L 2.8105469 5 A 6 6 0 0 1 7.0273438 2.0820312 z M 8.9785156 2.0859375 A 6 6 0 0 1 13.1875 5 L 11.324219 5 C 10.658501 3.5895934 9.6595492 2.6261235 8.9785156 2.0859375 z M 8 2.6054688 C 8.3858776 2.856627 9.3974911 3.6104334 10.185547 5 L 5.8144531 5 C 6.6025089 3.6104334 7.6141224 2.856627 8 2.6054688 z M 2.3515625 6 L 4.2949219 6 C 4.1145279 6.6059544 4 7.2695302 4 8 C 4 8.7306855 4.1144398 9.3938115 4.2949219 10 L 2.3496094 10 A 6 6 0 0 1 2 8 A 6 6 0 0 1 2.3515625 6 z M 5.3398438 6 L 10.660156 6 C 10.868048 6.5934731 11 7.2583063 11 8 C 11 8.7421382 10.866303 9.4061377 10.658203 10 L 5.3417969 10 C 5.1336971 9.4061377 5 8.7421382 5 8 C 5 7.2583063 5.1319522 6.5934731 5.3398438 6 z M 11.705078 6 L 13.650391 6 A 6 6 0 0 1 14 8 A 6 6 0 0 1 13.648438 10 L 11.705078 10 C 11.88556 9.3938115 12 8.7306855 12 8 C 12 7.2695302 11.885472 6.6059544 11.705078 6 z M 2.8125 11 L 4.6777344 11 C 5.343895 12.410381 6.3427806 13.374042 7.0234375 13.914062 A 6 6 0 0 1 2.8125 11 z M 5.8144531 11 L 10.185547 11 C 9.3971916 12.390235 8.3853773 13.145488 8 13.396484 C 7.6146227 13.145488 6.6028084 12.390235 5.8144531 11 z M 11.322266 11 L 13.189453 11 A 6 6 0 0 1 8.9707031 13.917969 C 9.651376 13.378771 10.654456 12.413873 11.322266 11 z "
+ transform="translate(0,1036.3622)"
+ id="path4158" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_error.svg b/tools/editor/icons/source/icon_error.svg
index 831bac859a..a0b04a98cb 100644
--- a/tools/editor/icons/source/icon_error.svg
+++ b/tools/editor/icons/source/icon_error.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627416"
- inkscape:cx="-12.047246"
- inkscape:cy="6.3485985"
+ inkscape:cx="5.542036"
+ inkscape:cy="14.568715"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -75,6 +75,7 @@
width="8"
height="8"
x="2.220446e-16"
- y="1044.3622" />
+ y="1044.3622"
+ ry="1.0000174" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_fixed_spatial_material.svg b/tools/editor/icons/source/icon_fixed_spatial_material.svg
new file mode 100644
index 0000000000..7ae0f93ffc
--- /dev/null
+++ b/tools/editor/icons/source/icon_fixed_spatial_material.svg
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_fixed_spatial_material.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ id="clipPath4189"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4191"
+ d="m 6.3750001,1025.8622 a 1.6876688,1.5001498 0 0 0 -1.6875,1.5 l 0,18 a 1.6876688,1.5001498 0 0 0 1.6875,1.5 l 10.1217039,0 c -0.747392,-0.8796 -1.304338,-1.8888 -1.562256,-3 l -6.8719479,0 0,-15 16.8749999,0 0,3.3486 a 3.4281247,3.0472216 0 0 1 1.282105,1.1279 c 0.537834,0.828 1.294284,1.677 2.092895,2.5723 l 0,-8.5488 a 1.6876688,1.5001498 0 0 0 -1.6875,-1.5 l -20.2499999,0 z m 11.8124999,4.5 0,1.5 -1.6875,0 0,1.5 -3.375,0 0,1.5 -1.6875,0 0,1.5 -1.6874999,0 0,1.5 3.3749999,0 3.375,0 0.02637,0 c 0.246127,-0.317 0.496441,-0.6239 0.738282,-0.9053 1.145331,-1.3327 2.270672,-2.4711 3.015746,-3.6182 a 3.4281247,3.0472216 0 0 1 1.282105,-1.1279 l 0,-0.3486 -1.6875,0 0,-1.5 -1.6875,0 z m 5.0625,4.5 c -1.948558,3 -5.0625,5.0146 -5.0625,7.5 0,2.4853 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0147 5.0625,-4.5 0,-2.4854 -3.113942,-4.5 -5.0625,-7.5 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ </clipPath>
+ <clipPath
+ id="clipPath4253"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4255"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4208">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 4.6875001,1042.3622 11.8124999,4.5 11.8125,-4.5 0,-12 -11.8125,-4.5 -11.8124999,4.5 z"
+ id="path4210"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4199">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4201"
+ d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="11.899872"
+ inkscape:cy="11.262807"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4199)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_g_i_probe.svg b/tools/editor/icons/source/icon_g_i_probe.svg
new file mode 100644
index 0000000000..d803a5f63d
--- /dev/null
+++ b/tools/editor/icons/source/icon_g_i_probe.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_g_i_probe.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.4024065"
+ inkscape:cy="8.249577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ d="m 11,1040.3622 a 3.9999826,3.9999826 0 0 0 -4,4 3.9999826,3.9999826 0 0 0 4,4 3.9999826,3.9999826 0 0 0 4,-4 3.9999826,3.9999826 0 0 0 -4,-4 z m 0,2 a 2.0000174,2.0000174 0 0 1 2,2 2.0000174,2.0000174 0 0 1 -2,2 2.0000174,2.0000174 0 0 1 -2,-2 2.0000174,2.0000174 0 0 1 2,-2 z"
+ id="path4255"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ id="rect4265"
+ width="4"
+ height="2.0000348"
+ x="9"
+ y="1046.3622" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ id="rect4269"
+ width="2"
+ height="1.0000174"
+ x="10"
+ y="1050.3622" />
+ <rect
+ y="1047.3622"
+ x="9"
+ height="2.0000348"
+ width="4"
+ id="rect4274"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ ry="1.0000174" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 6,1050.3622 -4,0 0,-12 10,0"
+ id="path4293"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_g_i_probe_data.svg b/tools/editor/icons/source/icon_g_i_probe_data.svg
new file mode 100644
index 0000000000..96fa62723c
--- /dev/null
+++ b/tools/editor/icons/source/icon_g_i_probe_data.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_g_i_probe_data.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="11.914815"
+ inkscape:cy="6.460794"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ d="M 11 4 A 3.9999826 3.9999826 0 0 0 7 8 A 3.9999826 3.9999826 0 0 0 9 11.458984 L 9 12 C 9 12.55401 9.4459904 13 10 13 L 12 13 C 12.55401 13 13 12.55401 13 12 L 13 11.458984 A 3.9999826 3.9999826 0 0 0 15 8 A 3.9999826 3.9999826 0 0 0 11 4 z M 11 6 A 2.0000174 2.0000174 0 0 1 13 8 A 2.0000174 2.0000174 0 0 1 11 10 A 2.0000174 2.0000174 0 0 1 9 8 A 2.0000174 2.0000174 0 0 1 11 6 z M 10 14 L 10 15 L 12 15 L 12 14 L 10 14 z "
+ transform="translate(0,1036.3622)"
+ id="path4255" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 2,1037.3613 a 1.0001,1.0001 0 0 0 -1,1 l 0,12 a 1.0001,1.0001 0 0 0 1,1 l 4,0 0,-2 -3,0 0,-10 9,0 0,-2 -10,0 z"
+ id="path4293"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4170"
+ width="2"
+ height="2"
+ x="4"
+ y="1040.3622" />
+ <rect
+ y="1043.3622"
+ x="4"
+ height="2"
+ width="2"
+ id="rect4172"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4174"
+ width="2"
+ height="2"
+ x="4"
+ y="1046.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_image_sky_box.svg b/tools/editor/icons/source/icon_image_sky_box.svg
new file mode 100644
index 0000000000..9a89c04e58
--- /dev/null
+++ b/tools/editor/icons/source/icon_image_sky_box.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_image_sky_box.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="9.413879"
+ inkscape:cx="10.701686"
+ inkscape:zoom="32"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4142">
+ <stop
+ style="stop-color:#84c2ff;stop-opacity:1"
+ offset="0"
+ id="stop4144" />
+ <stop
+ style="stop-color:#46a3ff;stop-opacity:1"
+ offset="1"
+ id="stop4146" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4142"
+ id="radialGradient4148"
+ cx="9.9399967"
+ cy="1051.0801"
+ fx="9.9399967"
+ fy="1051.0801"
+ r="7"
+ gradientTransform="matrix(1.3337828e-5,-1.9999995,1.5714282,2.7945105e-6,-1643.697,1071.2392)"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <rect
+ style="opacity:1;fill:url(#radialGradient4148);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4140"
+ width="14"
+ height="13.999983"
+ x="1"
+ y="1037.3622"
+ ry="2.0000174" />
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 6 4 A 1 1 0 0 0 5 5 A 1 1 0 0 0 6 6 A 1 1 0 0 0 7 5 A 1 1 0 0 0 6 4 z M 11 5 A 2 2 0 0 0 9 7 A 1 1 0 0 0 8 8 A 1 1 0 0 0 9 9 L 13 9 A 1 1 0 0 0 14 8 A 1 1 0 0 0 13 7 A 2 2 0 0 0 11 5 z M 3 9 A 1 1 0 0 0 2 10 A 1 1 0 0 0 3 11 L 5 11 A 1 1 0 0 0 4 12 A 1 1 0 0 0 5 13 L 8 13 A 1 1 0 0 0 9 12 A 1 1 0 0 0 8 11 L 6 11 A 1 1 0 0 0 7 10 A 1 1 0 0 0 6 9 L 3 9 z "
+ transform="translate(0,1036.3622)"
+ id="path4150" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_interp_wrap_clamp.svg b/tools/editor/icons/source/icon_interp_wrap_clamp.svg
new file mode 100644
index 0000000000..068e79ace0
--- /dev/null
+++ b/tools/editor/icons/source/icon_interp_wrap_clamp.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="8"
+ viewBox="0 0 16 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_interp_wrap_clamp.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.8989222"
+ inkscape:cy="4.5067976"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="5.9999828"
+ x="1"
+ y="1045.3622"
+ rx="1.7382812e-05"
+ ry="1.7382812e-05" />
+ <rect
+ ry="1.7382812e-05"
+ rx="1.7382812e-05"
+ y="1045.3622"
+ x="13"
+ height="5.9999828"
+ width="2"
+ id="rect4156"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 5,1048.3622 6,0"
+ id="path4158"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 6,1046.3622 -2,2 2,2"
+ id="path4160"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4162"
+ d="m 10,1046.3622 2,2 -2,2"
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_interp_wrap_loop.svg b/tools/editor/icons/source/icon_interp_wrap_loop.svg
new file mode 100644
index 0000000000..bfca46331b
--- /dev/null
+++ b/tools/editor/icons/source/icon_interp_wrap_loop.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="8"
+ viewBox="0 0 16 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_interp_wrap_loop.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="7.8700453"
+ inkscape:cy="4.2719762"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 12 1 L 12 3 A 1.0000174 1.0000174 0 0 1 13 4 A 1.0000174 1.0000174 0 0 1 12 5 L 12 7 A 3 3 0 0 0 15 4 A 3 3 0 0 0 12 1 z "
+ id="path4159"
+ transform="translate(0,1044.3622)" />
+ <path
+ cx="12"
+ cy="1048.3622"
+ r="3"
+ id="path4161"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 4 1 A 3 3 0 0 0 1 4 A 3 3 0 0 0 4 7 L 4 5 A 1.0000174 1.0000174 0 0 1 3 4 A 1.0000174 1.0000174 0 0 1 4 3 L 4 1 z "
+ id="path4176"
+ transform="translate(0,1044.3622)" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4180"
+ width="3"
+ height="2"
+ x="9"
+ y="1045.3622"
+ rx="6.5185495e-06"
+ ry="1.7382799e-05" />
+ <rect
+ ry="1.7382799e-05"
+ rx="6.5185495e-06"
+ y="1049.3622"
+ x="4"
+ height="2"
+ width="3"
+ id="rect4182"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 7,1048.3622 0,4 3,-2 z"
+ id="path4186"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4190"
+ d="m 9,1044.3622 0,4 -3,-2 z"
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_joystick.svg b/tools/editor/icons/source/icon_joypad.svg
index 5395060175..fb84462919 100644
--- a/tools/editor/icons/source/icon_joystick.svg
+++ b/tools/editor/icons/source/icon_joypad.svg
@@ -18,7 +18,7 @@
inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
- sodipodi:docname="icon_joystick.svg">
+ sodipodi:docname="icon_joypad.svg">
<defs
id="defs4" />
<sodipodi:namedview
diff --git a/tools/editor/icons/source/icon_key_next.svg b/tools/editor/icons/source/icon_key_next.svg
index 4155255434..942245305c 100644
--- a/tools/editor/icons/source/icon_key_next.svg
+++ b/tools/editor/icons/source/icon_key_next.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="32"
- inkscape:cx="3.6318496"
- inkscape:cy="7.8283625"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.9672408"
+ inkscape:cy="7.1977527"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -59,7 +59,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -69,23 +69,14 @@
id="layer1"
transform="translate(0,-1036.3622)">
<path
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 11 9 L 11 11 L 9 11 L 9 13 L 11 13 L 11 15 L 13 15 L 13 13 L 15 13 L 15 11 L 13 11 L 13 9 L 11 9 z "
+ transform="translate(0,1036.3622)"
+ id="rect4156" />
+ <path
style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 11 1 A 4 4.0000024 0 0 0 7.1308594 4 L 1 4 L 1 6 L 2 6 L 2 8 L 5 8 L 5 6 L 7.1328125 6 A 4 4.0000024 0 0 0 9 8.4589844 L 9 7 L 11 7 A 2.0000174 2.0000174 0 0 1 9 5 A 2.0000174 2.0000174 0 0 1 11 3 A 2.0000174 2.0000174 0 0 1 13 5 A 2.0000174 2.0000174 0 0 1 11 7 L 14.458984 7 A 4 4.0000024 0 0 0 15 5 A 4 4.0000024 0 0 0 11 1 z "
+ d="M 11 1 A 4 4.0000024 0 0 0 7.1308594 4 L 1 4 L 1 6 L 2 6 L 2 8 L 5 8 L 5 6 L 7.1328125 6 A 4 4.0000024 0 0 0 10 8.8691406 L 10 8 L 13.638672 8 A 4 4.0000024 0 0 0 15 5 A 4 4.0000024 0 0 0 11 1 z M 11 3 A 2.0000174 2.0000174 0 0 1 13 5 A 2.0000174 2.0000174 0 0 1 11 7 A 2.0000174 2.0000174 0 0 1 9 5 A 2.0000174 2.0000174 0 0 1 11 3 z "
transform="translate(0,1036.3622)"
- id="path4137" />
- <rect
- style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4156"
- width="2"
- height="5.9999828"
- x="11"
- y="1045.3622" />
- <rect
- y="1047.3622"
- x="9"
- height="2.0000174"
- width="6"
- id="rect4158"
- style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ id="path4137-6" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_large_texture.svg b/tools/editor/icons/source/icon_large_texture.svg
new file mode 100644
index 0000000000..4db0342041
--- /dev/null
+++ b/tools/editor/icons/source/icon_large_texture.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_large_texture.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="10.856598"
+ inkscape:cy="8.2673025"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 1 1 L 1 2 L 1 4 L 2 4 L 2 2 L 4 2 L 4 1 L 1 1 z M 12 1 L 12 2 L 14 2 L 14 4 L 15 4 L 15 1 L 12 1 z M 9 6 L 9 7 L 8 7 L 8 8 L 6 8 L 6 9 L 5 9 L 5 10 L 4 10 L 4 11 L 6 11 L 8 11 L 10 11 L 12 11 L 12 9 L 11 9 L 11 8 L 11 7 L 10 7 L 10 6 L 9 6 z M 1 12 L 1 14 L 1 15 L 4 15 L 4 14 L 2 14 L 2 12 L 1 12 z M 14 12 L 14 14 L 12 14 L 12 15 L 15 15 L 15 14 L 15 12 L 14 12 z "
+ transform="translate(0,1036.3622)"
+ id="rect4179" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_load.svg b/tools/editor/icons/source/icon_load.svg
index f8e78fb4ea..395a5c1b8a 100644
--- a/tools/editor/icons/source/icon_load.svg
+++ b/tools/editor/icons/source/icon_load.svg
@@ -29,11 +29,11 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="12.685427"
- inkscape:cy="1.6294402"
+ inkscape:cx="6.3187685"
+ inkscape:cy="7.6629717"
inkscape:document-units="px"
inkscape:current-layer="layer1"
- showgrid="false"
+ showgrid="true"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
@@ -43,9 +43,9 @@
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:window-width="1920"
- inkscape:window-height="1119"
+ inkscape:window-height="1016"
inkscape:window-x="0"
- inkscape:window-y="26"
+ inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:snap-smooth-nodes="true"
inkscape:object-nodes="true"
@@ -53,8 +53,8 @@
<inkscape:grid
type="xygrid"
id="grid3336"
- spacingx="0.5"
- spacingy="0.5"
+ spacingx="1"
+ spacingy="1"
empspacing="2" />
</sodipodi:namedview>
<metadata
@@ -74,12 +74,74 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4153"
+ width="1"
+ height="8.9999657"
+ x="1"
+ y="1040.3622" />
<path
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="M 1.5000703,2 C 1.0834036,2 0.7251221,2.1928844 0.4590547,2.4589844 0.1929873,2.7250844 7.03e-5,3.0834 7.03e-5,3.5 l 0.5,8.5 c 0.041565,0.581917 0.1536332,1.110716 0.5214844,1.478516 C 1.3894058,13.846416 1.916737,14 2.5000703,14 l 0.5,0 0.5,0 9.9997657,0 c 0.231666,-10e-5 0.432919,-0.159266 0.486328,-0.384766 l 2,-7.4999996 C 16.060474,5.8013344 15.822456,5.5002 15.499836,5.5 L 4.7559297,5.5 C 4.5236856,5.5003 4.3126587,5.6584963 4.2696015,5.8867188 L 3.0383769,12.412759 C 2.9838992,12.701515 2.7130529,12.963778 2.2988984,12.972656 1.7175274,12.985119 1.5058274,12.46121 1.5000703,12 l -0.5,-8.5 c 0,-0.083 0.057083,-0.2249844 0.1660156,-0.3339844 C 1.2750185,3.0571156 1.416737,3 1.5000703,3 L 12.499836,3 c 0.08333,0 0.225052,0.057016 0.333984,0.1660156 0.108933,0.109 0.224913,0.2750776 0.166016,0.3339844 l 0,1 1,0 0,-1 c 0,-0.4166 -0.192917,-0.7749156 -0.458984,-1.0410156 C 13.274784,2.1928844 12.916503,2 12.499836,2 Z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 3,1038.3622 c -1.1045695,0 -2,0.8954 -2,2 l 1,0 c 0,-0.5523 0.4477153,-1 1,-1 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 6,6 C 5.643017,6.0002824 5.313257,6.1908435 5.1347656,6.5 5.0426478,6.6588009 4.9960226,6.8398957 5,7.0234375 L 4,13 c -0.091144,0.544728 -0.4477153,1 -1,1 l 0,1 9,0 c 1.10457,0 1.818405,-0.910429 2,-2 L 15,7 C 15.003977,6.8164581 14.957352,6.6588009 14.865234,6.5 14.686743,6.1908437 14.356983,6.0002826 14,6 Z"
transform="translate(0,1036.3622)"
- id="path8167"
+ id="rect4159"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccsscccc" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4182"
+ width="2"
+ height="1"
+ x="3"
+ y="1038.3622" />
+ <path
+ sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
- sodipodi:nodetypes="sscccscccccccssscccssssccssss" />
+ id="path4184"
+ d="m 5,1038.3622 c 1.10457,0 2,0.8954 2,2 l -1,0 c 0,-0.5523 -0.4477153,-1 -1,-1 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4188"
+ d="m 3,1051.3622 c -1.1045695,0 -2,-0.8954 -2,-2 l 1,0 c 0,0.5523 0.4477153,1 1,1 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1040.3622"
+ x="7"
+ height="1"
+ width="4"
+ id="rect4192"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 7,1041.3622 A 1,1 0 0 1 6.2928932,1041.0693 1,1 0 0 1 6,1040.3622 l 1,0 z"
+ sodipodi:end="3.1415927"
+ sodipodi:start="1.5707963"
+ sodipodi:ry="1"
+ sodipodi:rx="1"
+ sodipodi:cy="1040.3622"
+ sodipodi:cx="7"
+ sodipodi:type="arc"
+ id="path4208"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4210"
+ sodipodi:type="arc"
+ sodipodi:cx="-11"
+ sodipodi:cy="-1041.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="1.5707963"
+ sodipodi:end="3.1415927"
+ d="m -11,-1040.3622 a 1,1 0 0 1 -0.707107,-0.2929 A 1,1 0 0 1 -12,-1041.3622 l 1,0 z"
+ transform="scale(-1,-1)" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_mesh_library.svg b/tools/editor/icons/source/icon_mesh_library.svg
new file mode 100644
index 0000000000..b908a4db6e
--- /dev/null
+++ b/tools/editor/icons/source/icon_mesh_library.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_mesh_library.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="10.839298"
+ inkscape:cy="6.916789"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 7 14 L 7 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 7 8.4140625 L 7 8 A 2.0002 2.0002 0 0 1 7.8085938 6.3945312 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 12 4.7304688 L 12 6 A 2.0002 2.0002 0 0 1 12.998047 6.2714844 A 2.0002 2.0002 0 0 1 14 6 L 14 4.7285156 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z M 9 8 L 9 9 L 9 14 L 9 15 L 14 15 C 14.552285 15 15 14.5523 15 14 L 15 9 C 15 8.4477 14.552285 8 14 8 L 14 12 L 13 11 L 12 12 L 12 8 L 9 8 z "
+ transform="translate(0,1036.3622)"
+ id="path4162" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_navigation_mesh.svg b/tools/editor/icons/source/icon_navigation_mesh.svg
new file mode 100644
index 0000000000..31ab5df8ad
--- /dev/null
+++ b/tools/editor/icons/source/icon_navigation_mesh.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_navigation_mesh.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="9.4708391"
+ inkscape:cy="9.3796697"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 7.2382812 14 L 7.9882812 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 8.6972656 10.111328 L 9.46875 8.0546875 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 12 4.7304688 L 12 5.0019531 A 2.0002 2.0002 0 0 1 12.023438 5.0019531 A 2.0002 2.0002 0 0 1 13.873047 6.2988281 L 14 6.6367188 L 14 4.7285156 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z M 12 7 L 9 15 L 12 13 L 15 15 L 12 7 z "
+ transform="translate(0,1036.3622)"
+ id="path4162" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_navigation_polygon.svg b/tools/editor/icons/source/icon_navigation_polygon.svg
new file mode 100644
index 0000000000..f3b6fcbcc3
--- /dev/null
+++ b/tools/editor/icons/source/icon_navigation_polygon.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_navigation_polygon.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="11.686357"
+ inkscape:cy="9.3308993"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-5"
+ inkscape:label="Layer 1"
+ style="fill:#e0e0e0;fill-opacity:1">
+ <path
+ id="path4144-6"
+ transform="translate(0,1036.3622)"
+ d="M 2,1 A 1.0001,1.0001 0 0 0 1,2 l 0,12 a 1.0001,1.0001 0 0 0 1,1 l 4.9023438,0 A 2.1002099,2.1002099 0 0 1 7.0332031,14.263672 L 7.5078125,13 3,13 3,3 11.585938,3 7.2929688,7.2929688 a 1.0001,1.0001 0 0 0 0,1.4140624 L 8.6191406,10.033203 10.033203,6.2636719 a 2.1002099,2.1002099 0 0 1 1.992188,-1.3613281 2.1002099,2.1002099 0 0 1 0.435547,0.050781 L 14.707031,2.7070312 A 1.0001,1.0001 0 0 0 14,1 L 2,1 Z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4163"
+ d="m 15,1051.3622 -3,-8 -3,8 3,-2 z"
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_patch_9_frame.svg b/tools/editor/icons/source/icon_nine_patch_rect.svg
index f12789c19e..f12789c19e 100644
--- a/tools/editor/icons/source/icon_patch_9_frame.svg
+++ b/tools/editor/icons/source/icon_nine_patch_rect.svg
diff --git a/tools/editor/icons/source/icon_packed_data_container.svg b/tools/editor/icons/source/icon_packed_data_container.svg
new file mode 100644
index 0000000000..70aed22f2c
--- /dev/null
+++ b/tools/editor/icons/source/icon_packed_data_container.svg
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_packed_data_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="17.645108"
+ inkscape:cy="9.7856584"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 2,1038.3622 0,12 12,0 0,-12 z"
+ id="path4154"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4167"
+ width="2"
+ height="2.0000174"
+ x="4"
+ y="1040.3622" />
+ <rect
+ y="1043.3622"
+ x="4"
+ height="2.0000174"
+ width="2"
+ id="rect4183"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4185"
+ width="2"
+ height="2.0000174"
+ x="4"
+ y="1046.3622" />
+ <rect
+ y="1040.3622"
+ x="7"
+ height="2.0000174"
+ width="2"
+ id="rect4187"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4189"
+ width="2"
+ height="2.0000174"
+ x="7"
+ y="1043.3622" />
+ <rect
+ y="1046.3622"
+ x="7"
+ height="2.0000174"
+ width="2"
+ id="rect4191"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4193"
+ width="2"
+ height="2.0000174"
+ x="10"
+ y="1040.3622" />
+ <rect
+ y="1043.3622"
+ x="10"
+ height="2.0000174"
+ width="2"
+ id="rect4195"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_particles_shader.svg b/tools/editor/icons/source/icon_particles_shader.svg
new file mode 100644
index 0000000000..b4c2ef7ccd
--- /dev/null
+++ b/tools/editor/icons/source/icon_particles_shader.svg
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_particles_shader.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4253">
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ id="path4255"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4199">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4201"
+ d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4208">
+ <path
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8,1037.3622 A 4.4999948,4.9999847 0 0 0 3.5859375,1041.3934 3,3 0 0 0 1,1044.3622 a 3,3 0 0 0 3,3 l 8,0 a 3,3 0 0 0 3,-3 3,3 0 0 0 -2.589844,-2.9668 A 4.4999948,4.9999847 0 0 0 8,1037.3622 Z m -4,11 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z m 8,0 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z m -4,1 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z"
+ id="path4210"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="8.2922739"
+ inkscape:cy="6.6952763"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4271"
+ clip-path="url(#clipPath4208)"
+ transform="translate(0,1.8694115e-5)">
+ <rect
+ y="1037.3622"
+ x="0"
+ height="2.0000031"
+ width="16"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="16"
+ height="2.0000029"
+ x="0"
+ y="1039.3622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="16"
+ height="1.9999999"
+ x="0"
+ y="1041.3622" />
+ <rect
+ y="1043.3622"
+ x="0"
+ height="2.0000024"
+ width="16"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1045.3622"
+ x="0"
+ height="2.0000021"
+ width="16"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="16"
+ height="1.9999987"
+ x="0"
+ y="1049.3622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="16"
+ height="2.0000021"
+ x="0"
+ y="1047.3622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_patch_9_rect.svg b/tools/editor/icons/source/icon_patch_9_rect.svg
new file mode 100644
index 0000000000..c5a09603a6
--- /dev/null
+++ b/tools/editor/icons/source/icon_patch_9_rect.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_patch_9_rect.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="10.35114"
+ inkscape:cy="9.1140348"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="1"
+ height="14"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1050.3622"
+ x="1"
+ height="0.9999826"
+ width="14"
+ id="rect4156"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="14"
+ height="0.9999826"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="14"
+ height="14"
+ width="1"
+ id="rect4160"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1040.3622"
+ x="1"
+ height="0.9999826"
+ width="14"
+ id="rect4162"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4164"
+ width="14"
+ height="0.9999826"
+ x="1"
+ y="1047.3622" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4166"
+ width="14"
+ height="0.9999826"
+ x="1037.3622"
+ y="-5"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ y="-12"
+ x="1037.3622"
+ height="0.9999826"
+ width="14"
+ id="rect4168"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_polygon_path_finder.svg b/tools/editor/icons/source/icon_polygon_path_finder.svg
new file mode 100644
index 0000000000..c2f8d80c3d
--- /dev/null
+++ b/tools/editor/icons/source/icon_polygon_path_finder.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_polygon_path_finder.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="4.2632138"
+ inkscape:cy="9.710537"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 2 1 C 1.4477381 1.0000552 1.0000552 1.4477381 1 2 L 1 3 L 3 3 L 3 1 L 2 1 z M 5 1 L 5 3 L 7 3 L 7 1 L 5 1 z M 9 1 L 9 3 L 11 3 L 11 1 L 9 1 z M 13 1 L 13 3 L 14.414062 3 L 14.707031 2.7070312 C 15.336587 2.0770367 14.890637 1.0003496 14 1 L 13 1 z M 1 5 L 1 7 L 3 7 L 3 5 L 1 5 z M 12 7 L 9 15 L 12 13 L 15 15 L 12 7 z M 1 9 L 1 11 L 3 11 L 3 9 L 1 9 z M 1 13 L 1 14 C 1.0000552 14.552262 1.4477381 14.999945 2 15 L 3 15 L 3 13 L 1 13 z M 5 13 L 5 15 L 6.9023438 15 C 6.9015603 14.748705 6.9458828 14.499309 7.0332031 14.263672 L 7.5078125 13 L 5 13 z "
+ transform="translate(0,1036.3622)"
+ id="path4144" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_reference_frame.svg b/tools/editor/icons/source/icon_reference_rect.svg
index 76c3247f1b..cee814360d 100644
--- a/tools/editor/icons/source/icon_reference_frame.svg
+++ b/tools/editor/icons/source/icon_reference_rect.svg
@@ -18,7 +18,7 @@
inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
- sodipodi:docname="icon_reference_frame.svg">
+ sodipodi:docname="icon_reference_rect.svg">
<defs
id="defs4" />
<sodipodi:namedview
diff --git a/tools/editor/icons/source/icon_reflection_probe.svg b/tools/editor/icons/source/icon_reflection_probe.svg
new file mode 100644
index 0000000000..64b6493d6d
--- /dev/null
+++ b/tools/editor/icons/source/icon_reflection_probe.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_reflection_probe.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.348015"
+ inkscape:cy="11.115501"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 7 3.6191406 L 7 12.382812 L 3 10.382812 L 3 5.6191406 L 7 3.6191406 z M 9 3.6191406 L 13 5.6191406 L 13 10.382812 L 9 12.382812 L 9 3.6191406 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_reparent.svg b/tools/editor/icons/source/icon_reparent.svg
index 65f101c8f7..79543fe066 100644
--- a/tools/editor/icons/source/icon_reparent.svg
+++ b/tools/editor/icons/source/icon_reparent.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="11.313708"
- inkscape:cx="-1.4011549"
- inkscape:cy="8.7567876"
+ inkscape:zoom="22.627416"
+ inkscape:cx="11.980115"
+ inkscape:cy="8.5519429"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -46,7 +46,10 @@
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
- inkscape:window-maximized="1">
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid3336" />
@@ -59,7 +62,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -68,45 +71,15 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <circle
- r="2"
- cy="1049.3622"
- cx="3"
- id="circle4277"
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <circle
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="circle4279"
- cx="3"
- cy="1039.3622"
- r="2" />
- <circle
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="circle4281"
- cx="13"
- cy="1049.3622"
- r="2" />
<path
- style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
- d="m 3,1039.3622 0,10 10,0"
- id="path4287"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="m 9,1038.3622 0,2 a 3,3 0 0 1 3,3 l 2,0 a 5.0000172,5.0000172 0 0 0 -5,-5 z"
- id="path4289"
- inkscape:connector-curvature="0" />
- <rect
style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4294"
- width="2"
- height="2"
- x="12"
- y="1043.3622" />
+ d="M 3 2 A 2 2 0 0 0 1 4 A 2 2 0 0 0 2 5.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 11.271484 14 A 2 2 0 0 0 13 15 A 2 2 0 0 0 15 13 A 2 2 0 0 0 13 11 A 2 2 0 0 0 11.269531 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.7285156 A 2 2 0 0 0 5 4 A 2 2 0 0 0 3 2 z "
+ transform="translate(0,1036.3622)"
+ id="circle4277" />
<path
- style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
- d="m 9,1037.3622 0,4 -3,-2 z"
- id="path4296"
- inkscape:connector-curvature="0" />
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 9 1 L 5 4 L 9 7 L 9 5 A 3 3 0 0 1 12 8 L 12 10 L 14 10 L 14 8 A 5.0000172 5.0000172 0 0 0 9 3 L 9 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4289" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_room.svg b/tools/editor/icons/source/icon_room.svg
index 8a2ccc30c8..599bbeb770 100644
--- a/tools/editor/icons/source/icon_room.svg
+++ b/tools/editor/icons/source/icon_room.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627416"
- inkscape:cx="11.210875"
- inkscape:cy="4.4642701"
+ inkscape:cx="11.166681"
+ inkscape:cy="6.6297847"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -60,7 +60,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -69,27 +69,10 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <g
- id="layer1-7"
- inkscape:label="Layer 1"
- transform="translate(0,1.1802001e-5)"
- style="stroke:#fc9c9c;stroke-opacity:0.99607843">
- <path
- sodipodi:nodetypes="ccccccc"
- inkscape:connector-curvature="0"
- id="path4139"
- d="m 8,1050.3622 -6,-3 0,-6 6,-3 6,3 0,6 z"
- style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" />
- </g>
<path
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="M 7 2 L 7 7.3828125 L 1.5527344 10.105469 L 2.4472656 11.894531 L 8 9.1191406 L 13.552734 11.894531 L 14.447266 10.105469 L 9 7.3828125 L 9 2 L 7 2 z "
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 9 3.6191406 L 13 5.6191406 L 13 9.3828125 L 9 7.3828125 L 9 3.6191406 z M 8 9.1191406 L 11.763672 11 L 8 12.882812 L 4.2363281 11 L 8 9.1191406 z "
transform="translate(0,1036.3622)"
- id="path4200" />
- <path
- style="fill:#fc9c9c;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.99607843"
- d="m 2,1047.3622 0,-6 6,-3 0,6 z"
- id="path4209"
- inkscape:connector-curvature="0" />
+ id="path4139" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_room_bounds.svg b/tools/editor/icons/source/icon_room_bounds.svg
new file mode 100644
index 0000000000..8f7e6e6c83
--- /dev/null
+++ b/tools/editor/icons/source/icon_room_bounds.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_room_bounds.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="9.5548877"
+ inkscape:cy="9.0516113"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 1 1 L 1 2 L 1 3 L 2 3 L 2 2 L 3 2 L 3 1 L 2 1 L 1 1 z M 13 1 L 13 2 L 14 2 L 14 3 L 15 3 L 15 2 L 15 1 L 14 1 L 13 1 z M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 9 3.6191406 L 13 5.6191406 L 13 9.3828125 L 9 7.3828125 L 9 3.6191406 z M 8 9.1191406 L 11.763672 11 L 8 12.882812 L 4.2363281 11 L 8 9.1191406 z M 1 13 L 1 14 L 1 15 L 2 15 L 3 15 L 3 14 L 2 14 L 2 13 L 1 13 z M 14 13 L 14 14 L 13 14 L 13 15 L 14 15 L 15 15 L 15 14 L 15 13 L 14 13 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_sample_library.svg b/tools/editor/icons/source/icon_sample_library.svg
new file mode 100644
index 0000000000..78b01430c2
--- /dev/null
+++ b/tools/editor/icons/source/icon_sample_library.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_sample_library.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="21.70867"
+ inkscape:cx="6.3137691"
+ inkscape:cy="6.7376711"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 9,8 0,1 0,5 0,1 5,0 c 0.552285,0 1,-0.447715 1,-1 L 15,9 C 15,8.4477153 14.552285,8 14,8 l 0,4 -1,-1 -1,1 0,-4 z"
+ transform="translate(0,1036.3622)"
+ id="rect4161"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccssscccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff8484;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 7.0214844,1037.3633 a 1.0001,1.0001 0 0 0 -1,0.875 l -0.5898438,4.7226 -0.5234375,-1.0468 a 1.0001,1.0001 0 0 0 -0.8945312,-0.5528 l -2,0 a 1.0001,1.0001 0 1 0 0,2 l 1.3828125,0 1.7226562,3.4473 a 1.0001,1.0001 0 0 0 1.8867188,-0.3223 l 0.5898437,-4.7226 0.5234375,1.0449 a 1.0001,1.0001 0 0 0 0.8945313,0.5527 l 3.0000001,0 a 1.0001,1.0001 0 1 0 0,-2 l -2.3808595,0 -1.7246094,-3.4472 a 1.0001,1.0001 0 0 0 -0.8867187,-0.5508 z"
+ id="path4181"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_script_create.svg b/tools/editor/icons/source/icon_script_create.svg
new file mode 100644
index 0000000000..0cf16a9c3b
--- /dev/null
+++ b/tools/editor/icons/source/icon_script_create.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/godotengine/godot/tools/editor/icons/con_script_create.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_script_create.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="21.189633"
+ inkscape:cx="7.8202901"
+ inkscape:cy="11.917121"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 6 1 L 6 2 C 5.4477153 2 5 2.4477153 5 3 L 5 13 L 4 13 L 4 11 L 2 11 L 2 13 C 2.0002826 13.356983 2.1908437 13.686743 2.5 13.865234 C 2.6519425 13.953279 2.8243914 13.999759 3 14 L 3 15 L 8 15 L 9 15 L 9 14 L 8 14 L 8 10 L 10 10 L 10 8 L 12 8 L 12 5 L 15 5 L 15 3 C 15 1.8954305 14.104569 1 13 1 L 6 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4255" />
+ <path
+ style="opacity:1;fill:#b4b4b4;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 6 1 C 4.8954305 1 4 1.8954305 4 3 L 4 10 L 2 10 L 1 10 L 1 11 L 1 13 C 1 14.104569 1.8954305 15 3 15 C 4.1045695 15 5 14.104569 5 13 L 5 3 C 5 2.4477153 5.4477153 2 6 2 C 6.5522847 2 7 2.4477153 7 3 L 7 4 L 7 5 L 7 6 L 8 6 L 12 6 L 12 5 L 8 5 L 8 4 L 8 3 C 8 1.8954305 7.1045695 1 6 1 z M 2 11 L 4 11 L 4 13 C 4 13.552285 3.5522847 14 3 14 C 2.4477153 14 2 13.552285 2 13 L 2 11 z "
+ id="path4265"
+ transform="translate(0,1036.3622)" />
+ <circle
+ cy="1048.3622"
+ cx="3"
+ id="ellipse4234"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ ry="1.0000174"
+ rx="1" />
+ <path
+ style="fill:#84ffb1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 13,1049.3622 2,0 0,-2 -2,0 0,-2 -2,0 0,2 -2,0 0,2 2,0 0,2 2,0 z"
+ id="path8069"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_script_remove.svg b/tools/editor/icons/source/icon_script_remove.svg
new file mode 100644
index 0000000000..1a0a0eebe3
--- /dev/null
+++ b/tools/editor/icons/source/icon_script_remove.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/godotengine/godot/tools/editor/icons/con_script_create.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_script_remove.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="42.379266"
+ inkscape:cx="6.774667"
+ inkscape:cy="6.9870579"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 6 1 L 6 2 C 5.4477153 2 5 2.4477153 5 3 L 5 13 L 4 13 L 4 11 L 2 11 L 2 13 C 2.0002826 13.356983 2.1908437 13.686743 2.5 13.865234 C 2.6519425 13.953279 2.8243914 13.999759 3 14 L 3 15 L 8.6347656 15 L 7.0507812 13.416016 L 8.4648438 12.001953 L 7.0507812 10.585938 L 10.585938 7.0507812 L 12 8.4648438 L 12 8 L 12 5 L 15 5 L 15 3 C 15 1.8954305 14.104569 1 13 1 L 6 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4255" />
+ <path
+ style="opacity:1;fill:#b4b4b4;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 6 1 C 4.8954305 1 4 1.8954305 4 3 L 4 10 L 2 10 L 1 10 L 1 11 L 1 13 C 1 14.104569 1.8954305 15 3 15 C 4.1045695 15 5 14.104569 5 13 L 5 3 C 5 2.4477153 5.4477153 2 6 2 C 6.5522847 2 7 2.4477153 7 3 L 7 4 L 7 5 L 7 6 L 8 6 L 12 6 L 12 5 L 8 5 L 8 4 L 8 3 C 8 1.8954305 7.1045695 1 6 1 z M 2 11 L 4 11 L 4 13 C 4 13.552285 3.5522847 14 3 14 C 2.4477153 14 2 13.552285 2 13 L 2 11 z "
+ id="path4265"
+ transform="translate(0,1036.3622)" />
+ <circle
+ cy="1048.3622"
+ cx="3"
+ id="ellipse4234"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ ry="1.0000174"
+ rx="1" />
+ <path
+ style="fill:#ff8484;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 13.414214,1048.3622 1.414213,-1.4142 -1.414213,-1.4142 L 12,1046.948 l -1.414214,-1.4142 -1.4142131,1.4142 1.4142131,1.4142 -1.4142131,1.4142 1.4142131,1.4142 1.414214,-1.4142 1.414214,1.4142 1.414213,-1.4142 z"
+ id="path8069"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_shader.svg b/tools/editor/icons/source/icon_shader.svg
index 4c7b5aafc1..1a2393fec2 100644
--- a/tools/editor/icons/source/icon_shader.svg
+++ b/tools/editor/icons/source/icon_shader.svg
@@ -7,7 +7,6 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
@@ -22,30 +21,6 @@
sodipodi:docname="icon_shader.svg">
<defs
id="defs4">
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4174">
- <stop
- style="stop-color:#ff5353;stop-opacity:1"
- offset="0"
- id="stop4176" />
- <stop
- id="stop4186"
- offset="0.29999271"
- style="stop-color:#f1e17a;stop-opacity:1" />
- <stop
- id="stop4184"
- offset="0.55557561"
- style="stop-color:#6bfcef;stop-opacity:1" />
- <stop
- style="stop-color:#9765fd;stop-opacity:1"
- offset="0.8889094"
- id="stop4188" />
- <stop
- style="stop-color:#ff6092;stop-opacity:1"
- offset="1"
- id="stop4178" />
- </linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4253">
@@ -55,25 +30,15 @@
id="path4255"
inkscape:connector-curvature="0" />
</clipPath>
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4174"
- id="radialGradient4161"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2857125,1.428583,-1.4285914,1.2857189,1540.5411,-308.80327)"
- cx="7.5384259"
- cy="1041.7489"
- fx="7.5384259"
- fy="1041.7489"
- r="7" />
<clipPath
clipPathUnits="userSpaceOnUse"
- id="clipPath4199">
+ id="clipPath4207">
<path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 6.3749999,1025.8622 c -0.931942,10e-5 -1.6874069,0.6715 -1.6875,1.5 l 0,18 c 9.31e-5,0.8284 0.755558,1.4998 1.6875,1.5 l 20.2500001,0 c 0.931942,-2e-4 1.687407,-0.6716 1.6875,-1.5 l 0,-12 -8.4375,-7.5 z m 1.6875,3 10.1250001,0 0,4.5 c 0,0.831 0.752609,1.5 1.6875,1.5 l 5.0625,0 0,9 -16.8750001,0 z"
+ id="path4209"
inkscape:connector-curvature="0"
- id="path4201"
- d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z"
- style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ sodipodi:nodetypes="ccccccccccccccccc" />
</clipPath>
</defs>
<sodipodi:namedview
@@ -83,9 +48,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="45.254832"
- inkscape:cx="1.7751371"
- inkscape:cy="8.8192435"
+ inkscape:zoom="31.999999"
+ inkscape:cx="20.042938"
+ inkscape:cy="7.6712905"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -131,7 +96,7 @@
<g
id="g4181"
mask="none"
- clip-path="url(#clipPath4199)"
+ clip-path="url(#clipPath4207)"
transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)">
<rect
y="1025.8622"
@@ -183,93 +148,5 @@
x="3"
y="1040.8622" />
</g>
- <path
- inkscape:connector-curvature="0"
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 29.5,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z"
- id="path4151" />
- <path
- style="fill:#ffff91;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 22.5,1046.3622 7,3 7,-3 -7,-3 z"
- id="path4223"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path4221"
- d="m 22.5,1043.3622 7,3 7,-3 -7,-3 z"
- style="fill:#ff91ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- style="fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 29.5,1045.3622 -7,-3 0,-2 7,3 z"
- id="path4143"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccc" />
- <path
- inkscape:connector-curvature="0"
- id="path4145"
- d="m 29.5,1045.3622 7,-3 0,-2 -7,3 z"
- style="fill:#00d8d8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="ccccc" />
- <path
- style="fill:#91ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 22.5,1040.3622 7,3 7,-3 -7,-3 z"
- id="path4149"
- inkscape:connector-curvature="0" />
- <path
- sodipodi:nodetypes="ccccc"
- style="fill:#d800d8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 29.5,1048.3622 7,-3 0,-2 -7,3 z"
- id="path4208"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path4215"
- d="m 29.5,1048.3622 -7,-3 0,-2 7,3 z"
- style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="ccccc" />
- <path
- inkscape:connector-curvature="0"
- id="path4217"
- d="m 29.5,1051.3622 7,-3 0,-2 -7,3 z"
- style="fill:#d8d800;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- sodipodi:nodetypes="ccccc" />
- <path
- sodipodi:nodetypes="ccccc"
- style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 29.5,1051.3622 -7,-3 0,-2 7,3 z"
- id="path4219"
- inkscape:connector-curvature="0" />
- <g
- inkscape:label="Layer 1"
- id="layer1-5"
- transform="translate(18,1)">
- <path
- id="path4151-1"
- d="m 29.5,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z"
- style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path4149-2"
- d="m 22.5,1040.3622 7,3 7,-3 -7,-3 z"
- style="fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- inkscape:connector-curvature="0"
- id="path4143-0"
- d="m 29.5,1051.3622 -7,-3 0,-8 7,3 z"
- style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <path
- sodipodi:nodetypes="ccccc"
- style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 29.5,1051.3622 7,-3 0,-8 -7,3 z"
- id="path4145-0"
- inkscape:connector-curvature="0" />
- </g>
- <path
- style="opacity:1;fill:url(#radialGradient4161);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="m 64,1037.3622 a 7,7.0000001 0 0 0 -7,7 7,7.0000001 0 0 0 7,7 7,7.0000001 0 0 0 7,-7 7,7.0000001 0 0 0 -7,-7 z m -2,2 a 2,2 0 0 1 2,2 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 z"
- id="path4159"
- inkscape:connector-curvature="0" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_short_cut.svg b/tools/editor/icons/source/icon_short_cut.svg
new file mode 100644
index 0000000000..05069e8ea1
--- /dev/null
+++ b/tools/editor/icons/source/icon_short_cut.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_short_cut.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254835"
+ inkscape:cx="7.0902833"
+ inkscape:cy="8.378548"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 2 C 3.4477153 2 3 2.4477 3 3 L 3 12.083984 C 3.0004015 12.589984 3.4479991 13 4 13 L 12 13 C 12.552001 13 12.999599 12.589984 13 12.083984 L 13 3 C 13 2.4477 12.552285 2 12 2 L 4 2 z M 1 4 L 1 13 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 4 L 14 4 L 14 13 A 0.9999826 0.9999826 0 0 1 13 14 L 3 14 A 1 1 0 0 1 2 13 L 2 4 L 1 4 z M 7 4 L 10 4 L 9 7 L 11 7 L 7 11 L 8 8 L 6 8 L 7 4 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4194"
+ width="7"
+ height="14"
+ x="27"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_spatial_shader.svg b/tools/editor/icons/source/icon_spatial_shader.svg
new file mode 100644
index 0000000000..329354b716
--- /dev/null
+++ b/tools/editor/icons/source/icon_spatial_shader.svg
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_spatial_shader.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ id="clipPath4253"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4255"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ id="clipPath4199"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z"
+ id="path4201"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4280">
+ <g
+ id="g4282"
+ inkscape:label="Layer 1"
+ transform="translate(0,1.1802001e-5)"
+ style="stroke:#fc9c9c;stroke-opacity:0.99607843">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 7.9628906,1.0019531 A 1.0001,1.0001 0 0 0 7.5527344,1.1054688 l -6,3 A 1.0001,1.0001 0 0 0 1,5 l 0,6 a 1.0001,1.0001 0 0 0 0.5527344,0.894531 l 6,3 a 1.0001,1.0001 0 0 0 0.8945312,0 l 6.0000004,-3 A 1.0001,1.0001 0 0 0 15,11 L 15,5 A 1.0001,1.0001 0 0 0 14.447266,4.1054688 l -6.0000004,-3 A 1.0001,1.0001 0 0 0 7.9628906,1.0019531 Z M 8,3.1191406 11.763672,5 8,6.8828125 4.2363281,5 8,3.1191406 Z m -5,3.5 4,2 0,3.7636714 -4,-2 0,-3.7636714 z m 10,0 0,3.7636714 -4,2 0,-3.7636714 4,-2 z"
+ transform="translate(0,1036.3622)"
+ id="path4284"
+ inkscape:connector-curvature="0" />
+ </g>
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.8442401"
+ inkscape:cy="13.929239"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4271"
+ clip-path="url(#clipPath4280)">
+ <rect
+ y="1037.3622"
+ x="0"
+ height="2.0000031"
+ width="16"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="16"
+ height="2.0000029"
+ x="0"
+ y="1039.3622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="16"
+ height="1.9999999"
+ x="0"
+ y="1041.3622" />
+ <rect
+ y="1043.3622"
+ x="0"
+ height="2.0000024"
+ width="16"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1045.3622"
+ x="0"
+ height="2.0000021"
+ width="16"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="16"
+ height="1.9999987"
+ x="0"
+ y="1049.3622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="16"
+ height="2.0000021"
+ x="0"
+ y="1047.3622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_spot_light.svg b/tools/editor/icons/source/icon_spot_light.svg
index b9130eff37..04f5b42f4d 100644
--- a/tools/editor/icons/source/icon_spot_light.svg
+++ b/tools/editor/icons/source/icon_spot_light.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="31.999999"
- inkscape:cx="5.5818635"
- inkscape:cy="8.6161108"
+ inkscape:cx="-0.26188668"
+ inkscape:cy="8.5536108"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -60,7 +60,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -71,48 +71,8 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- d="m 14,1046.3622 -12,0 c 0,-2.7614 2.6862915,-5 6,-5 3.313708,0 6,2.2386 6,5 z"
- id="path4155"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccsc" />
- <path
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- d="M 6 1 A 1 1 0 0 0 5 2 L 5 7 L 11 7 L 11 2 A 1 1 0 0 0 10 1 L 6 1 z "
+ d="M 6 1 A 1 1 0 0 0 5 2 L 5 5.6933594 C 3.2138662 6.5594405 2 8.153847 2 10 L 6 10 A 2 2 0 0 0 8 12 A 2 2 0 0 0 10 10 L 14 10 C 14 8.153847 12.786134 6.5594405 11 5.6933594 L 11 2 A 1 1 0 0 0 10 1 L 6 1 z M 4.9023438 10.634766 L 3.1699219 11.634766 L 4.1699219 13.365234 L 5.9023438 12.365234 L 4.9023438 10.634766 z M 11.097656 10.634766 L 10.097656 12.365234 L 11.830078 13.365234 L 12.830078 11.634766 L 11.097656 10.634766 z M 7 13 L 7 15 L 9 15 L 9 13 L 7 13 z "
transform="translate(0,1036.3622)"
- id="rect4158" />
- <circle
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="path4160"
- cx="8"
- cy="1046.3622"
- r="2" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4162"
- width="2"
- height="2"
- x="7"
- y="1049.3622"
- inkscape:transform-center-y="3.9999826" />
- <rect
- inkscape:transform-center-y="2.0000217"
- y="533.10931"
- x="-903.17627"
- height="2"
- width="2"
- id="rect4164"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- transform="matrix(0.5,-0.8660254,0.8660254,0.5,0,0)"
- inkscape:transform-center-x="-3.4640975" />
- <rect
- inkscape:transform-center-x="3.4641473"
- transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4166"
- width="2"
- height="2"
- x="909.17621"
- y="519.25293"
- inkscape:transform-center-y="1.9999799" />
+ id="path4155" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_sprite_frames.svg b/tools/editor/icons/source/icon_sprite_frames.svg
new file mode 100644
index 0000000000..dc445da773
--- /dev/null
+++ b/tools/editor/icons/source/icon_sprite_frames.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_sprite_frames.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254835"
+ inkscape:cx="10.147205"
+ inkscape:cy="8.653875"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ y="1046.3622"
+ x="10"
+ height="2.0000086"
+ width="2"
+ id="rect4230"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4232"
+ width="2"
+ height="2.0000086"
+ x="13"
+ y="1046.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4234"
+ width="2"
+ height="2.0000086"
+ x="10"
+ y="1049.3622" />
+ <rect
+ y="1049.3622"
+ x="13"
+ height="2.0000086"
+ width="2"
+ id="rect4236"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 6 1 A 5 5 0 0 0 1 6 A 5 5 0 0 0 6 11 A 5 5 0 0 0 11 6 A 5 5 0 0 0 6 1 z M 3 5 A 1 1 0 0 1 4 6 A 1 1 0 0 1 3 7 A 1 1 0 0 1 2 6 A 1 1 0 0 1 3 5 z M 9 5 A 1 1 0 0 1 10 6 A 1 1 0 0 1 9 7 A 1 1 0 0 1 8 6 A 1 1 0 0 1 9 5 z M 7.9960938 7.4921875 A 0.50005 0.50005 0 0 1 8.3535156 8.3535156 C 7.7356645 8.9714156 6.8611111 9.25 6 9.25 C 5.1388889 9.25 4.2643355 8.9714156 3.6464844 8.3535156 A 0.50005 0.50005 0 0 1 3.9941406 7.4960938 A 0.50005 0.50005 0 0 1 4.3535156 7.6464844 C 4.7356645 8.0286844 5.3611111 8.25 6 8.25 C 6.6388889 8.25 7.2643355 8.0286844 7.6464844 7.6464844 A 0.50005 0.50005 0 0 1 7.9960938 7.4921875 z "
+ transform="translate(0,1036.3622)"
+ id="path4238" />
+ <rect
+ y="1043.3622"
+ x="13"
+ height="2.0000086"
+ width="2"
+ id="rect4246"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1049.3622"
+ x="7"
+ height="2.0000086"
+ width="2"
+ id="rect4248"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_static_body.svg b/tools/editor/icons/source/icon_static_body.svg
index af1ebc8900..fcaa2b7d3e 100644
--- a/tools/editor/icons/source/icon_static_body.svg
+++ b/tools/editor/icons/source/icon_static_body.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="22.627417"
- inkscape:cx="7.2543819"
- inkscape:cy="7.4903504"
+ inkscape:zoom="11.313709"
+ inkscape:cx="10.872202"
+ inkscape:cy="6.7990901"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -72,67 +72,9 @@
id="layer1"
transform="translate(0,-1036.3622)">
<path
- style="fill:#a5b7f5;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 25 3 C 22 3 21 6 21 6 C 20.879708 6.3608765 20.803605 6.6663233 20.707031 7 L 21 7 A 1 1 0 0 0 22 8 A 1 1 0 0 0 23 7 L 24 7 A 1 1 0 0 0 25 8 A 1 1 0 0 0 26 7 L 27 7 A 1 1 0 0 0 28 8 A 1 1 0 0 0 29 7 L 29.292969 7 C 29.196395 6.6663233 29.120292 6.3608765 29 6 C 29 6 28 3 25 3 z M 20.369141 8.1542969 C 19.864457 10.037394 19.478832 11.521168 18 13 L 32 13 C 30.521168 11.521168 30.135543 10.037394 29.630859 8.1542969 A 2 2 0 0 1 29 8.7324219 A 2 2 0 0 1 27 8.7324219 A 2 2 0 0 1 26.5 8.3203125 A 2 2 0 0 1 26 8.7324219 A 2 2 0 0 1 24 8.7324219 A 2 2 0 0 1 23.5 8.3203125 A 2 2 0 0 1 23 8.7324219 A 2 2 0 0 1 21 8.7324219 A 2 2 0 0 1 20.369141 8.1542969 z "
- transform="translate(0,1036.3622)"
- id="path4161" />
- <rect
- style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4175"
- width="1"
- height="1"
- x="20"
- y="1042.3622" />
- <rect
- y="1042.3622"
- x="29"
- height="1"
- width="1"
- id="rect4177"
- style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
- <path
style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z "
+ d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z M 3 3 L 3 5 L 5 5 L 5 3 L 3 3 z M 11 3 L 11 5 L 13 5 L 13 3 L 11 3 z M 3 11 L 3 13 L 5 13 L 5 11 L 3 11 z M 11 11 L 11 13 L 13 13 L 13 11 L 11 11 z "
transform="translate(0,1036.3622)"
id="rect4179" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4195"
- width="2"
- height="2"
- x="3"
- y="1039.3622" />
- <rect
- y="1047.3622"
- x="3"
- height="2"
- width="2"
- id="rect4197"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
- <rect
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4199"
- width="2"
- height="2"
- x="11"
- y="1047.3622" />
- <rect
- y="1039.3622"
- x="11"
- height="2"
- width="2"
- id="rect4201"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
- <g
- id="layer1-1"
- inkscape:label="Layer 1"
- transform="translate(-23.644738,-1.9878833)">
- <path
- id="path4139"
- transform="translate(0,1036.3622)"
- d="M 8,1 A 7,7 0 0 0 1,8 7,7 0 0 0 8,15 7,7 0 0 0 15,8 7,7 0 0 0 8,1 Z M 4,6 A 1,1 0 0 1 5,7 1,1 0 0 1 4,8 1,1 0 0 1 3,7 1,1 0 0 1 4,6 Z m 8,0 a 1,1 0 0 1 1,1 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 z m -7,3 6,0 a 3,3 0 0 1 -1.5,2.597656 3,3 0 0 1 -3,0 A 3,3 0 0 1 5,9 Z"
- style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- inkscape:connector-curvature="0" />
- </g>
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_static_body_2d.svg b/tools/editor/icons/source/icon_static_body_2d.svg
index d47e924e37..0ed3ef7cf0 100644
--- a/tools/editor/icons/source/icon_static_body_2d.svg
+++ b/tools/editor/icons/source/icon_static_body_2d.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="7.2543819"
- inkscape:cy="7.4903504"
+ inkscape:cx="-1.0099286"
+ inkscape:cy="7.4019621"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -62,7 +62,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -72,13 +72,6 @@
id="layer1"
transform="translate(0,-1036.3622)">
<rect
- style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4175"
- width="1"
- height="1"
- x="20"
- y="1042.3622" />
- <rect
y="1042.3622"
x="29"
height="1"
@@ -87,36 +80,8 @@
style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
<path
style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z "
+ d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z M 3 3 L 3 5 L 5 5 L 5 3 L 3 3 z M 11 3 L 11 5 L 13 5 L 13 3 L 11 3 z M 3 11 L 3 13 L 5 13 L 5 11 L 3 11 z M 11 11 L 11 13 L 13 13 L 13 11 L 11 11 z "
transform="translate(0,1036.3622)"
id="rect4179" />
- <rect
- style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4195"
- width="2"
- height="2"
- x="3"
- y="1039.3622" />
- <rect
- y="1047.3622"
- x="3"
- height="2"
- width="2"
- id="rect4197"
- style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
- <rect
- style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4199"
- width="2"
- height="2"
- x="11"
- y="1047.3622" />
- <rect
- y="1039.3622"
- x="11"
- height="2"
- width="2"
- id="rect4201"
- style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_style_box_empty.svg b/tools/editor/icons/source/icon_style_box_empty.svg
new file mode 100644
index 0000000000..c881fe1c10
--- /dev/null
+++ b/tools/editor/icons/source/icon_style_box_empty.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_style_box_empty.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4313">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 6.3750001,1025.8622 c -0.931942,2e-4 -1.6874069,0.6716 -1.6875,1.5 l 0,1.5 3.375,0 0,-3 -1.6875,0 z m 5.0624999,0 0,3 3.375,0 0,-3 -3.375,0 z m 6.75,0 0,3 3.375,0 0,-3 -3.375,0 z m 6.75,0 0,3 3.375,0 0,-1.5 c -9.3e-5,-0.8284 -0.755558,-1.4998 -1.6875,-1.5 l -1.6875,0 z m -20.2499999,6 0,3 3.375,0 0,-3 -3.375,0 z m 20.2499999,0 0,0.3486 c 0.532973,0.2675 0.975667,0.657 1.282105,1.128 0.537834,0.828 1.294284,1.6769 2.092895,2.5722 l 0,-4.0488 -3.375,0 z m -1.6875,3 c -1.948558,3 -5.0625,5.0147 -5.0625,7.5 0,2.4854 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0146 5.0625,-4.5 0,-2.4853 -3.113942,-4.5 -5.0625,-7.5 z m -18.5624999,3 0,3 3.375,0 0,-3 -3.375,0 z m 0,6 0,1.5 c 9.31e-5,0.8284 0.755558,1.4998 1.6875,1.5 l 1.6875,0 0,-3 -3.375,0 z m 6.7499999,0 0,3 3.375,0 0,-3 -3.375,0 z"
+ id="path4315"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="10.442024"
+ inkscape:cy="8.6470776"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4313)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777778,353.45399)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_style_box_flat.svg b/tools/editor/icons/source/icon_style_box_flat.svg
new file mode 100644
index 0000000000..9071014ff3
--- /dev/null
+++ b/tools/editor/icons/source/icon_style_box_flat.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_style_box_flat.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4313">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 6.3750001,1025.8622 c -0.931942,2e-4 -1.6874069,0.6716 -1.6875,1.5 l 0,1.5 3.375,0 0,-3 -1.6875,0 z m 5.0624999,0 0,3 3.375,0 0,-3 -3.375,0 z m 6.75,0 0,3 3.375,0 0,-3 -3.375,0 z m 6.75,0 0,3 3.375,0 0,-1.5 c -9.3e-5,-0.8284 -0.755558,-1.4998 -1.6875,-1.5 l -1.6875,0 z m -20.2499999,6 0,3 3.375,0 0,-3 -3.375,0 z m 20.2499999,0 0,0.3486 c 0.532973,0.2675 0.975667,0.657 1.282105,1.128 0.537834,0.828 1.294284,1.6769 2.092895,2.5722 l 0,-4.0488 -3.375,0 z m -1.6875,3 c -1.948558,3 -5.0625,5.0147 -5.0625,7.5 0,2.4854 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0146 5.0625,-4.5 0,-2.4853 -3.113942,-4.5 -5.0625,-7.5 z m -18.5624999,3 0,3 3.375,0 0,-3 -3.375,0 z m 0,6 0,1.5 c 9.31e-5,0.8284 0.755558,1.4998 1.6875,1.5 l 1.6875,0 0,-3 -3.375,0 z m 6.7499999,0 0,3 3.375,0 0,-3 -3.375,0 z"
+ id="path4315"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4391">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 6.3750001,1025.8622 c -0.931942,2e-4 -1.6874069,0.6716 -1.6875,1.5 l 0,18 c 9.31e-5,0.8284 0.755558,1.4998 1.6875,1.5 l 10.1876219,0 c -1.081633,-1.2612 -1.750122,-2.8111 -1.750122,-4.5 0,-2.3563 1.351562,-4.0453 2.494995,-5.376 1.143433,-1.3305 2.270438,-2.4714 3.019043,-3.624 0.571813,-0.8788 1.604865,-1.4416 2.745483,-1.4941 1.267652,-0.06 2.465974,0.5173 3.101441,1.4941 0.549842,0.8466 1.32435,1.7113 2.139038,2.625 l 0,-8.625 c -9.3e-5,-0.8284 -0.755558,-1.4998 -1.6875,-1.5 l -20.2499999,0 z m 16.8749999,9 c -1.948558,3 -5.0625,5.0147 -5.0625,7.5 0,2.4854 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0146 5.0625,-4.5 0,-2.4853 -3.113942,-4.5 -5.0625,-7.5 z"
+ id="path4393"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="11.34212"
+ inkscape:cy="7.7545325"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4391)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777778,353.45399)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_style_box_texture.svg b/tools/editor/icons/source/icon_style_box_texture.svg
new file mode 100644
index 0000000000..30b1f1af68
--- /dev/null
+++ b/tools/editor/icons/source/icon_style_box_texture.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_style_box_texture.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4189">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 6.3750001,1025.8622 a 1.6876688,1.5001498 0 0 0 -1.6875,1.5 l 0,18 a 1.6876688,1.5001498 0 0 0 1.6875,1.5 l 10.1217039,0 c -0.747392,-0.8796 -1.304338,-1.8888 -1.562256,-3 l -6.8719479,0 0,-15 16.8749999,0 0,3.3486 a 3.4281247,3.0472216 0 0 1 1.282105,1.1279 c 0.537834,0.828 1.294284,1.677 2.092895,2.5723 l 0,-8.5488 a 1.6876688,1.5001498 0 0 0 -1.6875,-1.5 l -20.2499999,0 z m 11.8124999,4.5 0,1.5 -1.6875,0 0,1.5 -3.375,0 0,1.5 -1.6875,0 0,1.5 -1.6874999,0 0,1.5 3.3749999,0 3.375,0 0.02637,0 c 0.246127,-0.317 0.496441,-0.6239 0.738282,-0.9053 1.145331,-1.3327 2.270672,-2.4711 3.015746,-3.6182 a 3.4281247,3.0472216 0 0 1 1.282105,-1.1279 l 0,-0.3486 -1.6875,0 0,-1.5 -1.6875,0 z m 5.0625,4.5 c -1.948558,3 -5.0625,5.0146 -5.0625,7.5 0,2.4853 2.266559,4.5 5.0625,4.5 2.795941,0 5.0625,-2.0147 5.0625,-4.5 0,-2.4854 -3.113942,-4.5 -5.0625,-7.5 z"
+ id="path4191"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="9.8110364"
+ inkscape:cy="10.993538"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4189)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777778,353.454)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tab_container.svg b/tools/editor/icons/source/icon_tab_container.svg
index b53747bf1c..6c197a86f6 100644
--- a/tools/editor/icons/source/icon_tab_container.svg
+++ b/tools/editor/icons/source/icon_tab_container.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="32"
- inkscape:cx="4.8125618"
- inkscape:cy="8.9338072"
+ inkscape:zoom="45.254834"
+ inkscape:cx="3.8596634"
+ inkscape:cy="10.446251"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -62,7 +62,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -73,24 +73,8 @@
transform="translate(0,-1036.3622)">
<path
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ d="M 3 1 C 1.8954305 1 1 1.8954305 1 3 L 1 13 C 1 14.104569 1.8954305 15 3 15 L 13 15 C 14.104569 15 15 14.104569 15 13 L 15 3 C 15 1.8954305 14.104569 1 13 1 L 3 1 z M 3 3 L 8 3 L 8 5 L 8 7 L 13 7 L 13 13 L 3 13 L 3 3 z M 10 3 L 13 3 L 13 5 L 10 5 L 10 3 z "
transform="translate(0,1036.3622)"
- id="rect4140"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="sssssssssccccc" />
- <rect
- style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4158"
- width="10"
- height="2"
- x="3"
- y="1041.3622" />
- <rect
- y="1039.3622"
- x="8"
- height="2"
- width="5"
- id="rect4170"
- style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ id="rect4140" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_tabs.svg b/tools/editor/icons/source/icon_tabs.svg
index 1b389fc30c..79ed1e5910 100644
--- a/tools/editor/icons/source/icon_tabs.svg
+++ b/tools/editor/icons/source/icon_tabs.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="32"
- inkscape:cx="3.2506704"
- inkscape:cy="11.363584"
+ inkscape:zoom="22.627417"
+ inkscape:cx="11.687421"
+ inkscape:cy="9.3335226"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -75,21 +75,21 @@
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4156"
width="1"
- height="4.9999828"
+ height="9.0000172"
x="1"
- y="1042.3622" />
+ y="1040.3622" />
<rect
y="-8"
- x="1041.3622"
+ x="1039.3622"
height="6"
width="1"
id="rect4159"
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
transform="matrix(0,1,-1,0,0,0)" />
<rect
- y="1042.3622"
- x="8"
- height="4.9999828"
+ y="1040.3622"
+ x="7"
+ height="3.0000174"
width="1"
id="rect4161"
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
@@ -98,38 +98,26 @@
id="path4163"
sodipodi:type="arc"
sodipodi:cx="2"
- sodipodi:cy="1042.3622"
+ sodipodi:cy="1040.3622"
sodipodi:rx="1"
sodipodi:ry="1"
sodipodi:start="1.5707963"
sodipodi:end="0"
- d="m 2,1043.3622 a 1,1 0 0 1 -0.9238795,-0.6173 1,1 0 0 1 0.2167727,-1.0898 1,1 0 0 1 1.0897902,-0.2168 A 1,1 0 0 1 3,1042.3622 l -1,0 z" />
- <path
- d="m -8,1043.3622 a 1,1 0 0 1 -0.9238795,-0.6173 1,1 0 0 1 0.2167727,-1.0898 1,1 0 0 1 1.0897902,-0.2168 A 1,1 0 0 1 -7,1042.3622 l -1,0 z"
- sodipodi:end="0"
- sodipodi:start="1.5707963"
- sodipodi:ry="1"
- sodipodi:rx="1"
- sodipodi:cy="1042.3622"
- sodipodi:cx="-8"
- sodipodi:type="arc"
- id="path4165"
- style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- transform="scale(-1,1)" />
+ d="m 2,1041.3622 a 1,1 0 0 1 -0.9238795,-0.6173 1,1 0 0 1 0.2167727,-1.0898 1,1 0 0 1 1.0897902,-0.2168 A 1,1 0 0 1 3,1040.3622 l -1,0 z" />
<rect
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4167"
width="1"
- height="4.9999828"
+ height="9.0000172"
x="14"
- y="1042.3622" />
+ y="1040.3622" />
<rect
transform="matrix(0,1,-1,0,0,0)"
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4169"
width="1"
height="6"
- x="1041.3622"
+ x="1039.3622"
y="-14" />
<path
transform="scale(-1,1)"
@@ -137,19 +125,19 @@
id="path4171"
sodipodi:type="arc"
sodipodi:cx="-14"
- sodipodi:cy="1042.3622"
+ sodipodi:cy="1040.3622"
sodipodi:rx="1"
sodipodi:ry="1"
sodipodi:start="1.5707963"
sodipodi:end="0"
- d="m -14,1043.3622 a 1,1 0 0 1 -0.92388,-0.6173 1,1 0 0 1 0.216773,-1.0898 1,1 0 0 1 1.08979,-0.2168 1,1 0 0 1 0.617317,0.9239 l -1,0 z" />
+ d="m -14,1041.3622 a 1,1 0 0 1 -0.92388,-0.6173 1,1 0 0 1 0.216773,-1.0898 1,1 0 0 1 1.08979,-0.2168 1,1 0 0 1 0.617317,0.9239 l -1,0 z" />
<rect
transform="matrix(0,1,-1,0,0,0)"
style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4173"
width="1"
height="13"
- x="1046.3622"
+ x="1042.3622"
y="-15" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_test_cube.svg b/tools/editor/icons/source/icon_test_cube.svg
index 8b5db2dc5d..c42c0bb674 100644
--- a/tools/editor/icons/source/icon_test_cube.svg
+++ b/tools/editor/icons/source/icon_test_cube.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="45.254834"
- inkscape:cx="7.2538994"
- inkscape:cy="5.8068101"
+ inkscape:cx="7.5411615"
+ inkscape:cy="7.1105382"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -64,7 +64,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -79,16 +79,10 @@
transform="translate(0,1.1802001e-5)"
style="stroke:#fc9c9c;stroke-opacity:0.99607843">
<path
- sodipodi:nodetypes="ccccccc"
- inkscape:connector-curvature="0"
- id="path4139"
- d="m 8,1050.3622 -6,-3 0,-6 6,-3 6,3 0,6 z"
- style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" />
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 8 3.1191406 L 11.763672 5 L 8 6.8828125 L 4.2363281 5 L 8 3.1191406 z M 3 6.6191406 L 7 8.6191406 L 7 12.382812 L 3 10.382812 L 3 6.6191406 z M 13 6.6191406 L 13 10.382812 L 9 12.382812 L 9 8.6191406 L 13 6.6191406 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
</g>
- <path
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="M 2.4472656 4.1054688 L 1.5527344 5.8945312 L 7 8.6191406 L 7 14 L 9 14 L 9 8.6191406 L 14.447266 5.8945312 L 13.552734 4.1054688 L 8 6.8828125 L 2.4472656 4.1054688 z "
- transform="translate(0,1036.3622)"
- id="path4155" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_text_edit.svg b/tools/editor/icons/source/icon_text_edit.svg
index 1daf1ac75a..4d08e9e3b2 100644
--- a/tools/editor/icons/source/icon_text_edit.svg
+++ b/tools/editor/icons/source/icon_text_edit.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
- inkscape:cx="13.881612"
- inkscape:cy="11.594783"
+ inkscape:cx="5.6173015"
+ inkscape:cy="11.506395"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -72,31 +72,16 @@
id="layer1"
transform="translate(0,-1036.3622)">
<rect
- style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4175"
- width="1"
- height="1"
- x="20"
- y="1042.3622" />
- <rect
y="1042.3622"
x="29"
height="1"
width="1"
id="rect4177"
style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
- <rect
- style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4173"
- width="1"
- height="4"
- x="4"
- y="1040.3622" />
<path
- style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- d="m 3,1037.3622 c -1.1045695,0 -2,0.8954 -2,2 l 0,10 c 0,1.1046 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.8954 2,-2 l 0,-10 c 0,-1.1046 -0.895431,-2 -2,-2 z m 0,2 10,0 0,10 -10,0 z"
- id="rect4140"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="sssssssssccccc" />
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 3 1 C 1.8954305 1 1 1.8954 1 3 L 1 13 C 1 14.1046 1.8954305 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 3 3 L 13 3 L 13 13 L 3 13 L 3 3 z M 4 4 L 4 8 L 5 8 L 5 4 L 4 4 z "
+ transform="translate(0,1036.3622)"
+ id="rect4173" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_texture_frame.svg b/tools/editor/icons/source/icon_texture_rect.svg
index afab41de41..88d9b4081f 100644
--- a/tools/editor/icons/source/icon_texture_frame.svg
+++ b/tools/editor/icons/source/icon_texture_rect.svg
@@ -18,7 +18,7 @@
inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
- sodipodi:docname="icon_texture_frame.svg">
+ sodipodi:docname="icon_texture_rect.svg">
<defs
id="defs4" />
<sodipodi:namedview
diff --git a/tools/editor/icons/source/icon_theme.svg b/tools/editor/icons/source/icon_theme.svg
new file mode 100644
index 0000000000..2cacb9755a
--- /dev/null
+++ b/tools/editor/icons/source/icon_theme.svg
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_theme.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4370">
+ <g
+ id="g4372"
+ inkscape:label="Layer 1"
+ transform="matrix(1.6875,0,0,1.4999998,2.9999999,-530.18094)">
+ <path
+ id="path4374"
+ transform="translate(0,1036.3622)"
+ d="M 7,1 6.4355469,3.2578125 A 5.0000172,5.0000172 0 0 0 5.7460938,3.5371094 L 3.7578125,2.34375 2.34375,3.7578125 3.5390625,5.7519531 A 5.0000172,5.0000172 0 0 0 3.2539062,6.4375 L 1,7 1,9 3.2578125,9.5644531 A 5.0000172,5.0000172 0 0 0 3.5371094,10.251953 L 2.34375,12.242188 3.7578125,13.65625 5.7519531,12.460938 A 5.0000172,5.0000172 0 0 0 6.4375,12.746094 L 7,15 9,15 9.5644531,12.742188 a 5.0000172,5.0000172 0 0 0 0.6874999,-0.279297 l 1.990235,1.193359 1.414062,-1.414062 -1.195312,-1.994141 A 5.0000172,5.0000172 0 0 0 12.746094,9.5625 L 15,9 15,7 12.742188,6.4355469 a 5.0000172,5.0000172 0 0 0 -0.279297,-0.6875 L 13.65625,3.7578125 12.242188,2.34375 10.248047,3.5390625 A 5.0000172,5.0000172 0 0 0 9.5625,3.2539062 L 9,1 7,1 Z M 8,6 A 2.0000174,2.0000174 0 0 1 10,8 2.0000174,2.0000174 0 0 1 8,10 2.0000174,2.0000174 0 0 1 6,8 2.0000174,2.0000174 0 0 1 8,6 Z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="10.857726"
+ inkscape:cy="9.3127855"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4370)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161-3"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163-6"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165-1"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tile_set.svg b/tools/editor/icons/source/icon_tile_set.svg
new file mode 100644
index 0000000000..e697f03888
--- /dev/null
+++ b/tools/editor/icons/source/icon_tile_set.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_tile_set.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="7.5612844"
+ inkscape:cy="6.4018109"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 1 1 L 1 3 L 3 3 L 3 1 L 1 1 z M 4 1 L 4 3 L 6 3 L 6 1 L 4 1 z M 7 1 L 7 3 L 9 3 L 9 1 L 7 1 z M 10 1 L 10 3 L 12 3 L 12 1 L 10 1 z M 13 1 L 13 3 L 15 3 L 15 1 L 13 1 z M 1 4 L 1 6 L 3 6 L 3 4 L 1 4 z M 4 4 L 4 6 L 6 6 L 6 4 L 4 4 z M 7 4 L 7 6 L 9 6 L 9 4 L 7 4 z M 10 4 L 10 6 L 12 6 L 12 4 L 10 4 z M 13 4 L 13 6 L 15 6 L 15 4 L 13 4 z M 1 7 L 1 9 L 3 9 L 3 7 L 1 7 z M 4 7 L 4 9 L 6 9 L 6 7 L 4 7 z M 9 8 L 9 9 L 9 14 L 9 15 L 14 15 C 14.552285 15 15 14.552285 15 14 L 15 9 C 15 8.4477153 14.552285 8 14 8 L 14 12 L 13 11 L 12 12 L 12 8 L 9 8 z M 1 10 L 1 12 L 3 12 L 3 10 L 1 10 z M 4 10 L 4 12 L 6 12 L 6 10 L 4 10 z M 1 13 L 1 15 L 3 15 L 3 13 L 1 13 z M 4 13 L 4 15 L 6 15 L 6 13 L 4 13 z "
+ transform="translate(0,1036.3622)"
+ id="rect4161" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_track_add_key.svg b/tools/editor/icons/source/icon_track_add_key.svg
index 96761526a8..f550f922bb 100644
--- a/tools/editor/icons/source/icon_track_add_key.svg
+++ b/tools/editor/icons/source/icon_track_add_key.svg
@@ -29,8 +29,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="45.254834"
- inkscape:cx="6.0361164"
- inkscape:cy="4.9218153"
+ inkscape:cx="10.389243"
+ inkscape:cy="3.816961"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -69,7 +69,7 @@
id="layer1"
transform="translate(0,-1044.3622)">
<path
- style="fill:#a9e100;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ style="fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 3 0 L 3 3 L 0 3 L 0 5 L 3 5 L 3 8 L 5 8 L 5 5 L 8 5 L 8 3 L 5 3 L 5 0 L 3 0 z "
transform="translate(0,1044.3622)"
id="rect4137" />
diff --git a/tools/editor/icons/source/icon_track_add_key_hl.svg b/tools/editor/icons/source/icon_track_add_key_hl.svg
index 79e566dde6..1b45cf8c4a 100644
--- a/tools/editor/icons/source/icon_track_add_key_hl.svg
+++ b/tools/editor/icons/source/icon_track_add_key_hl.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="45.254834"
- inkscape:cx="5.3806528"
- inkscape:cy="6.0126016"
+ inkscape:zoom="32"
+ inkscape:cx="-4.0417082"
+ inkscape:cy="5.5439904"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -69,9 +69,14 @@
id="layer1"
transform="translate(0,-1044.3622)">
<path
- style="fill:#e3fe03;fill-opacity:0.98823529;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ style="fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 3 0 L 3 3 L 0 3 L 0 5 L 3 5 L 3 8 L 5 8 L 5 5 L 8 5 L 8 3 L 5 3 L 5 0 L 3 0 z "
+ id="rect4137"
+ transform="translate(0,1044.3622)" />
+ <path
transform="translate(0,1044.3622)"
- id="rect4137" />
+ id="path4143"
+ d="M 3 0 L 3 3 L 0 3 L 0 5 L 3 5 L 3 8 L 5 8 L 5 5 L 8 5 L 8 3 L 5 3 L 5 0 L 3 0 z "
+ style="fill:#ffffff;fill-opacity:0.42424244;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_viewport.svg b/tools/editor/icons/source/icon_viewport.svg
index fcbe094fca..631260ab33 100644
--- a/tools/editor/icons/source/icon_viewport.svg
+++ b/tools/editor/icons/source/icon_viewport.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="45.254834"
- inkscape:cx="7.693363"
- inkscape:cy="8.1399132"
+ inkscape:zoom="11.313709"
+ inkscape:cx="14.11111"
+ inkscape:cy="8.6614747"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -62,7 +62,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -71,20 +71,6 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1036.3622)">
- <rect
- style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
- id="rect4175"
- width="1"
- height="1"
- x="20"
- y="1042.3622" />
- <rect
- y="1042.3622"
- x="29"
- height="1"
- width="1"
- id="rect4177"
- style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
<path
style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
d="M 3,2 C 2.4695977,2.0000801 1.9609485,2.2108464 1.5859375,2.5859375 1.2108464,2.9609485 1.0000801,3.4695977 1,4 l 0,8 c 8.03e-5,0.530402 0.2108465,1.039051 0.5859375,1.414062 C 1.9609484,13.789153 2.4695976,13.99992 3,14 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,4 C 15,2.8954305 14.104569,2 13,2 Z m 0,1 10,0 c 0.552281,9.6e-6 0.99999,0.4477192 1,1 l 0,8 c -10e-6,0.552281 -0.447719,0.99999 -1,1 L 3,13 C 2.4477192,12.99999 2.0000096,12.552281 2,12 L 2,4 c 9.6e-6,-0.5522808 0.4477192,-0.9999904 1,-1 z"
diff --git a/tools/editor/icons/source/icon_viewport_container.svg b/tools/editor/icons/source/icon_viewport_container.svg
new file mode 100644
index 0000000000..300b8390c4
--- /dev/null
+++ b/tools/editor/icons/source/icon_viewport_container.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_viewport_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="13.216634"
+ inkscape:cy="7.7987238"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z M 3,3 13,3 13,13 3,13 Z M 6,4 C 5.469598,4.0001 4.9609495,4.2108375 4.5859375,4.5859375 4.2108465,4.9609375 4.00008,5.4696 4,6 l 0,4 c 8e-5,0.5304 0.2108475,1.039063 0.5859375,1.414062 C 4.9609485,11.789162 5.469598,11.9999 6,12 l 4,0 c 1.104569,0 2,-0.8954 2,-2 L 12,6 C 12,4.8954 11.104569,4 10,4 Z m 0,1 4,0 c 0.552281,0 0.99999,0.4477 1,1 l 0,4 c -10e-6,0.5523 -0.447719,1 -1,1 L 6,11 C 5.447719,11 5.00001,10.5523 5,10 L 5,6 C 5.00001,5.4477 5.447719,5 6,5 Z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccccccsssscssccssccs" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_viewport_texture.svg b/tools/editor/icons/source/icon_viewport_texture.svg
new file mode 100644
index 0000000000..4cf6532059
--- /dev/null
+++ b/tools/editor/icons/source/icon_viewport_texture.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_viewport_texture.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="18.523635"
+ inkscape:cy="6.064799"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 3 2 C 2.4695977 2.0000801 1.9609485 2.2108464 1.5859375 2.5859375 C 1.2108464 2.9609485 1.0000801 3.4695977 1 4 L 1 12 C 1.0000803 12.530402 1.2108465 13.039051 1.5859375 13.414062 C 1.9609484 13.789154 2.4695976 13.99992 3 14 L 13 14 C 14.104569 14 15 13.104569 15 12 L 15 4 C 15 2.8954305 14.104569 2 13 2 L 3 2 z M 3 3 L 13 3 C 13.552281 3.0000096 13.99999 3.4477192 14 4 L 14 12 C 13.99999 12.552281 13.552281 12.99999 13 13 L 3 13 C 2.4477192 12.99999 2.0000096 12.552281 2 12 L 2 4 C 2.0000096 3.4477192 2.4477192 3.0000096 3 3 z M 9 6 L 9 7 L 8 7 L 8 8 L 6 8 L 6 9 L 5 9 L 5 10 L 4 10 L 4 11 L 6 11 L 8 11 L 10 11 L 12 11 L 12 9 L 11 9 L 11 8 L 11 7 L 10 7 L 10 6 L 9 6 z "
+ transform="translate(0,1036.3622)"
+ id="rect4179" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_warning.svg b/tools/editor/icons/source/icon_warning.svg
index ee89f3ec99..4d39141a58 100644
--- a/tools/editor/icons/source/icon_warning.svg
+++ b/tools/editor/icons/source/icon_warning.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="22.627416"
- inkscape:cx="1.5203658"
- inkscape:cy="5.6414917"
+ inkscape:zoom="45.254832"
+ inkscape:cx="2.2320862"
+ inkscape:cy="6.41947"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -60,7 +60,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -70,11 +70,12 @@
id="layer1"
transform="translate(0,-1044.3622)">
<rect
- style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect4154"
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4142"
width="8"
height="8"
- x="2.220446e-16"
- y="1044.3622" />
+ x="0"
+ y="1044.3622"
+ ry="1" />
</g>
</svg>
diff --git a/tools/editor/icons/source/icon_world.svg b/tools/editor/icons/source/icon_world.svg
new file mode 100644
index 0000000000..b2be396217
--- /dev/null
+++ b/tools/editor/icons/source/icon_world.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_world.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="10.207753"
+ inkscape:cy="6.6325397"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4219"
+ cx="5.9999828"
+ cy="1046.3622"
+ r="4.9999828" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4221"
+ cx="12"
+ cy="1039.3622"
+ r="1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_world_2d.svg b/tools/editor/icons/source/icon_world_2d.svg
new file mode 100644
index 0000000000..cb4427808a
--- /dev/null
+++ b/tools/editor/icons/source/icon_world_2d.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_world_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="17.648364"
+ inkscape:cy="4.8796811"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 2,1037.3613 a 1.0001,1.0001 0 0 0 -1,1 l 0,10 a 1.0001,1.0001 0 0 0 1,1 c 2.3666667,0 3.9746094,0.4629 5.7246094,0.9629 1.75,0.5 3.6420576,1.0371 6.2753906,1.0371 a 1.0001,1.0001 0 0 0 1,-1 l 0,-10 a 1.0001,1.0001 0 0 0 -1,-1 c -2.366667,0 -3.974609,-0.4609 -5.7246094,-0.9609 -1.75,-0.5 -3.6420573,-1.0391 -6.2753906,-1.0391 z m 1,2.0957 c 1.798426,0.1158 3.2574477,0.448 4.7246094,0.8672 1.4977347,0.4279 3.1940466,0.8188 5.2753906,0.9414 l 0,8.002 c -1.79849,-0.1158 -3.2574125,-0.448 -4.7246094,-0.8672 C 6.7776425,1047.9725 5.0813715,1047.5796 3,1047.457 l 0,-8 z"
+ id="path4157"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/inspector_dock.cpp b/tools/editor/inspector_dock.cpp
index 7b06761e53..253f9bcc01 100644
--- a/tools/editor/inspector_dock.cpp
+++ b/tools/editor/inspector_dock.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/inspector_dock.h b/tools/editor/inspector_dock.h
index 40c153e2d4..be6ed5fa87 100644
--- a/tools/editor/inspector_dock.h
+++ b/tools/editor/inspector_dock.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,7 +38,7 @@
#if 0
class InspectorDock : public VBoxContainer
{
- OBJ_TYPE(InspectorDock,VBoxContainer);
+ GDCLASS(InspectorDock,VBoxContainer);
PropertyEditor *property_editor;
diff --git a/tools/editor/io_plugins/SCsub b/tools/editor/io_plugins/SCsub
index 6299fd416c..4bf55189cc 100644
--- a/tools/editor/io_plugins/SCsub
+++ b/tools/editor/io_plugins/SCsub
@@ -2,4 +2,4 @@
Import('env')
Export('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
diff --git a/tools/editor/io_plugins/editor_atlas.cpp b/tools/editor/io_plugins/editor_atlas.cpp
index f69e383fb0..c5f1ee73cf 100644
--- a/tools/editor/io_plugins/editor_atlas.cpp
+++ b/tools/editor/io_plugins/editor_atlas.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_atlas.h"
+
#include "print_string.h"
struct _EditorAtlasWorkRect {
diff --git a/tools/editor/io_plugins/editor_atlas.h b/tools/editor/io_plugins/editor_atlas.h
index 0135e76622..e0cf76576e 100644
--- a/tools/editor/io_plugins/editor_atlas.h
+++ b/tools/editor/io_plugins/editor_atlas.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp b/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
index 757d2ed5d4..222a9d9517 100644
--- a/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
@@ -1,4 +1,33 @@
+/*************************************************************************/
+/* editor_bitmask_import_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#include "editor_bitmask_import_plugin.h"
+
#include "io/image_loader.h"
#include "tools/editor/editor_file_dialog.h"
#include "tools/editor/editor_dir_dialog.h"
@@ -11,7 +40,7 @@
class _EditorBitMaskImportOptions : public Object {
- OBJ_TYPE(_EditorBitMaskImportOptions, Object);
+ GDCLASS(_EditorBitMaskImportOptions, Object);
public:
bool _set(const StringName& p_name, const Variant& p_value) {
@@ -42,7 +71,7 @@ public:
class EditorBitMaskImportDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorBitMaskImportDialog, ConfirmationDialog);
+ GDCLASS(EditorBitMaskImportDialog, ConfirmationDialog);
EditorBitMaskImportPlugin *plugin;
@@ -145,7 +174,7 @@ public:
error_dialog->popup_centered(Size2(200, 100)*EDSCALE);
}
- dst = dst.plus_file(bitmasks[i].get_file().basename() + ".pbm");
+ dst = dst.plus_file(bitmasks[i].get_file().get_basename() + ".pbm");
plugin->import(dst, imd);
}
@@ -162,12 +191,12 @@ public:
static void _bind_methods() {
- ObjectTypeDB::bind_method("_choose_files", &EditorBitMaskImportDialog::_choose_files);
- ObjectTypeDB::bind_method("_choose_save_dir", &EditorBitMaskImportDialog::_choose_save_dir);
- ObjectTypeDB::bind_method("_import", &EditorBitMaskImportDialog::_import);
- ObjectTypeDB::bind_method("_browse", &EditorBitMaskImportDialog::_browse);
- ObjectTypeDB::bind_method("_browse_target", &EditorBitMaskImportDialog::_browse_target);
- // ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
+ ClassDB::bind_method("_choose_files", &EditorBitMaskImportDialog::_choose_files);
+ ClassDB::bind_method("_choose_save_dir", &EditorBitMaskImportDialog::_choose_save_dir);
+ ClassDB::bind_method("_import", &EditorBitMaskImportDialog::_import);
+ ClassDB::bind_method("_browse", &EditorBitMaskImportDialog::_browse);
+ ClassDB::bind_method("_browse_target", &EditorBitMaskImportDialog::_browse_target);
+ //ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
}
EditorBitMaskImportDialog(EditorBitMaskImportPlugin *p_plugin) {
@@ -179,7 +208,7 @@ public:
VBoxContainer *vbc = memnew(VBoxContainer);
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
HBoxContainer *hbc = memnew(HBoxContainer);
@@ -225,7 +254,7 @@ public:
save_select = memnew(EditorDirDialog);
add_child(save_select);
- // save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
+ //save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
save_select->connect("dir_selected", this, "_choose_save_dir");
get_ok()->connect("pressed", this, "_import");
@@ -235,7 +264,7 @@ public:
error_dialog = memnew(ConfirmationDialog);
add_child(error_dialog);
error_dialog->get_ok()->set_text(TTR("Accept"));
- // error_dialog->get_cancel()->hide();
+ //error_dialog->get_cancel()->hide();
set_hide_on_ok(false);
}
@@ -294,7 +323,7 @@ void EditorBitMaskImportPlugin::import_from_drop(const Vector<String>& p_drop, c
ImageLoader::get_recognized_extensions(&valid_extensions);
for(int i=0;i<p_drop.size();i++) {
- String extension=p_drop[i].extension().to_lower();
+ String extension=p_drop[i].get_extension().to_lower();
for (List<String>::Element *E=valid_extensions.front();E;E=E->next()) {
diff --git a/tools/editor/io_plugins/editor_bitmask_import_plugin.h b/tools/editor/io_plugins/editor_bitmask_import_plugin.h
index d9ca33cd97..3a6aababe2 100644
--- a/tools/editor/io_plugins/editor_bitmask_import_plugin.h
+++ b/tools/editor/io_plugins/editor_bitmask_import_plugin.h
@@ -1,3 +1,31 @@
+/*************************************************************************/
+/* editor_bitmask_import_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#ifndef EDITOR_BITMASK_IMPORT_PLUGIN_H
#define EDITOR_BITMASK_IMPORT_PLUGIN_H
@@ -9,7 +37,7 @@ class EditorBitMaskImportDialog;
class EditorBitMaskImportPlugin : public EditorImportPlugin {
- OBJ_TYPE(EditorBitMaskImportPlugin, EditorImportPlugin);
+ GDCLASS(EditorBitMaskImportPlugin, EditorImportPlugin);
EditorBitMaskImportDialog *dialog;
public:
@@ -30,7 +58,7 @@ public:
class EditorBitMaskExportPlugin : public EditorExportPlugin {
- OBJ_TYPE(EditorBitMaskExportPlugin, EditorExportPlugin);
+ GDCLASS(EditorBitMaskExportPlugin, EditorExportPlugin);
public:
diff --git a/tools/editor/io_plugins/editor_export_scene.cpp b/tools/editor/io_plugins/editor_export_scene.cpp
index acbbf8c737..7d19258411 100644
--- a/tools/editor/io_plugins/editor_export_scene.cpp
+++ b/tools/editor/io_plugins/editor_export_scene.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_export_scene.h"
+
#include "io/resource_loader.h"
#include "io/resource_saver.h"
#include "os/dir_access.h"
@@ -42,7 +43,7 @@ Vector<uint8_t> EditorSceneExportPlugin::custom_export(String& p_path,const Ref<
}
- String extension = p_path.extension();
+ String extension = p_path.get_extension();
//step 1 check if scene
@@ -61,7 +62,7 @@ Vector<uint8_t> EditorSceneExportPlugin::custom_export(String& p_path,const Ref<
uint64_t sd=0;
String smd5;
- String gp = Globals::get_singleton()->globalize_path(p_path);
+ String gp = GlobalConfig::get_singleton()->globalize_path(p_path);
String md5=gp.md5_text();
String tmp_path = EditorSettings::get_singleton()->get_settings_path().plus_file("tmp/");
diff --git a/tools/editor/io_plugins/editor_export_scene.h b/tools/editor/io_plugins/editor_export_scene.h
index 2c7fe9a1ab..13493220cb 100644
--- a/tools/editor/io_plugins/editor_export_scene.h
+++ b/tools/editor/io_plugins/editor_export_scene.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,7 +33,7 @@
class EditorSceneExportPlugin : public EditorExportPlugin {
- OBJ_TYPE( EditorSceneExportPlugin, EditorExportPlugin );
+ GDCLASS( EditorSceneExportPlugin, EditorExportPlugin );
public:
virtual Vector<uint8_t> custom_export(String& p_path,const Ref<EditorExportPlatform> &p_platform);
diff --git a/tools/editor/io_plugins/editor_font_import_plugin.cpp b/tools/editor/io_plugins/editor_font_import_plugin.cpp
index df3741f0d4..0deb5cbbfa 100644
--- a/tools/editor/io_plugins/editor_font_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_font_import_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_font_import_plugin.h"
+
#include "scene/gui/dialogs.h"
#include "tools/editor/editor_file_dialog.h"
#include "tools/editor/editor_node.h"
@@ -34,17 +35,16 @@
#include "editor_atlas.h"
#include "io/image_loader.h"
#include "io/resource_saver.h"
-#ifdef FREETYPE_ENABLED
+#ifdef FREETYPE_ENABLED
#include <ft2build.h>
#include FT_FREETYPE_H
-
#endif
class _EditorFontImportOptions : public Object {
- OBJ_TYPE(_EditorFontImportOptions,Object);
+ GDCLASS(_EditorFontImportOptions,Object);
public:
enum FontMode {
@@ -384,7 +384,7 @@ public:
class EditorFontImportDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorFontImportDialog, ConfirmationDialog);
+ GDCLASS(EditorFontImportDialog, ConfirmationDialog);
EditorLineEditFileChooser *source;
@@ -418,7 +418,7 @@ class EditorFontImportDialog : public ConfirmationDialog {
//print_line("pre src path "+source->get_line_edit()->get_text());
//print_line("src path "+src_path);
imd->add_source(src_path);
- imd->set_option("font/size",font_size->get_val());
+ imd->set_option("font/size",font_size->get_value());
return imd;
@@ -439,7 +439,7 @@ class EditorFontImportDialog : public ConfirmationDialog {
test_label->set_text("");
test_label->set_text(test_string->get_text());
- test_label->add_color_override("font_color",test_color->get_color());
+ test_label->add_color_override("font_color",test_color->get_pick_color());
}
void _update() {
@@ -468,7 +468,7 @@ class EditorFontImportDialog : public ConfirmationDialog {
Ref<ImageTexture> tex = font->get_texture(0);
if (tex.is_null())
return;
- FileAccessRef f=FileAccess::open(p_font.basename()+".inc",FileAccess::WRITE);
+ FileAccessRef f=FileAccess::open(p_font.get_basename()+".inc",FileAccess::WRITE);
Vector<CharType> ck = font->get_char_keys();
f->store_line("static const int _builtin_font_height="+itos(font->get_height())+";");
@@ -499,7 +499,7 @@ class EditorFontImportDialog : public ConfirmationDialog {
f->store_line("static const int _builtin_font_img_width="+itos(img.get_width())+";");
f->store_line("static const int _builtin_font_img_height="+itos(img.get_height())+";");
- String fname = p_font.basename()+".sv.png";
+ String fname = p_font.get_basename()+".sv.png";
ResourceSaver::save(fname,tex);
Vector<uint8_t> data=FileAccess::get_file_as_array(fname);
@@ -533,14 +533,14 @@ class EditorFontImportDialog : public ConfirmationDialog {
}
if (dest->get_line_edit()->get_text().get_file()==".fnt") {
- dest->get_line_edit()->set_text(dest->get_line_edit()->get_text().get_base_dir() + "/" + source->get_line_edit()->get_text().get_file().basename() + ".fnt" );
+ dest->get_line_edit()->set_text(dest->get_line_edit()->get_text().get_base_dir() + "/" + source->get_line_edit()->get_text().get_file().get_basename() + ".fnt" );
}
- if (dest->get_line_edit()->get_text().extension() == dest->get_line_edit()->get_text()) {
+ if (dest->get_line_edit()->get_text().get_extension() == dest->get_line_edit()->get_text()) {
dest->get_line_edit()->set_text(dest->get_line_edit()->get_text() + ".fnt");
}
- if (dest->get_line_edit()->get_text().extension().to_lower() != "fnt") {
+ if (dest->get_line_edit()->get_text().get_extension().to_lower() != "fnt") {
error_dialog->set_text(TTR("Invalid file extension.\nPlease use .fnt."));
error_dialog->popup_centered(Size2(200,100));
return;
@@ -572,14 +572,14 @@ class EditorFontImportDialog : public ConfirmationDialog {
static void _bind_methods() {
- ObjectTypeDB::bind_method("_update",&EditorFontImportDialog::_update);
- ObjectTypeDB::bind_method("_update_text",&EditorFontImportDialog::_update_text);
- ObjectTypeDB::bind_method("_update_text2",&EditorFontImportDialog::_update_text2);
- ObjectTypeDB::bind_method("_update_text3",&EditorFontImportDialog::_update_text3);
- ObjectTypeDB::bind_method("_prop_changed",&EditorFontImportDialog::_prop_changed);
- ObjectTypeDB::bind_method("_src_changed",&EditorFontImportDialog::_src_changed);
- ObjectTypeDB::bind_method("_font_size_changed",&EditorFontImportDialog::_font_size_changed);
- ObjectTypeDB::bind_method("_import",&EditorFontImportDialog::_import);
+ ClassDB::bind_method("_update",&EditorFontImportDialog::_update);
+ ClassDB::bind_method("_update_text",&EditorFontImportDialog::_update_text);
+ ClassDB::bind_method("_update_text2",&EditorFontImportDialog::_update_text2);
+ ClassDB::bind_method("_update_text3",&EditorFontImportDialog::_update_text3);
+ ClassDB::bind_method("_prop_changed",&EditorFontImportDialog::_prop_changed);
+ ClassDB::bind_method("_src_changed",&EditorFontImportDialog::_src_changed);
+ ClassDB::bind_method("_font_size_changed",&EditorFontImportDialog::_font_size_changed);
+ ClassDB::bind_method("_import",&EditorFontImportDialog::_import);
}
@@ -619,7 +619,7 @@ public:
}
source->get_line_edit()->set_text(src);
- font_size->set_val(rimd->get_option("font/size"));
+ font_size->set_value(rimd->get_option("font/size"));
}
}
@@ -634,7 +634,7 @@ public:
plugin=p_plugin;
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
HBoxContainer *hbc = memnew( HBoxContainer);
vbc->add_child(hbc);
VBoxContainer *vbl = memnew( VBoxContainer );
@@ -658,17 +658,19 @@ public:
vbl->add_margin_child(TTR("Source Font Size:"),font_size);
font_size->set_min(3);
font_size->set_max(256);
- font_size->set_val(16);
+ font_size->set_value(16);
font_size->connect("value_changed",this,"_font_size_changed");
dest = memnew( EditorLineEditFileChooser );
//
List<String> fl;
Ref<BitmapFont> font= memnew(BitmapFont);
dest->get_file_dialog()->add_filter("*.fnt ; Font" );
- //ResourceSaver::get_recognized_extensions(font,&fl);
- //for(List<String>::Element *E=fl.front();E;E=E->next()) {
- // dest->get_file_dialog()->add_filter("*."+E->get());
- //}
+ /*
+ ResourceSaver::get_recognized_extensions(font,&fl);
+ for(List<String>::Element *E=fl.front();E;E=E->next()) {
+ dest->get_file_dialog()->add_filter("*."+E->get());
+ }
+ */
vbl->add_margin_child(TTR("Dest Resource:"),dest);
HBoxContainer *testhb = memnew( HBoxContainer );
@@ -679,7 +681,7 @@ public:
testhb->add_child(test_string);
test_color = memnew( ColorPickerButton );
- test_color->set_color(get_color("font_color","Label"));
+ test_color->set_pick_color(get_color("font_color","Label"));
test_color->set_h_size_flags(SIZE_EXPAND_FILL);
test_color->set_stretch_ratio(1);
test_color->connect("color_changed",this,"_update_text3");
@@ -689,7 +691,7 @@ public:
vbl->add_margin_child(TTR("Test:")+" ",testhb);
/*
HBoxContainer *upd_hb = memnew( HBoxContainer );
-// vbl->add_child(upd_hb);
+ //vbl->add_child(upd_hb);
upd_hb->add_spacer();
Button *update = memnew( Button);
upd_hb->add_child(update);
@@ -754,7 +756,7 @@ struct _EditorFontData {
int texture;
Image blit;
Point2i blit_ofs;
-// bool printable;
+ //bool printable;
};
@@ -780,13 +782,13 @@ static unsigned char get_SDF_radial(
int x, int y,
int max_radius )
{
- // hideous brute force method
+ //hideous brute force method
float d2 = max_radius*max_radius+1.0;
unsigned char v = fontmap[x+y*w];
for( int radius = 1; (radius <= max_radius) && (radius*radius < d2); ++radius )
{
int line, lo, hi;
- // north
+ //north
line = y - radius;
if( (line >= 0) && (line < h) )
{
@@ -797,7 +799,7 @@ static unsigned char get_SDF_radial(
int idx = line * w + lo;
for( int i = lo; i <= hi; ++i )
{
- // check this pixel
+ //check this pixel
if( fontmap[idx] != v )
{
float nx = i - x;
@@ -808,11 +810,11 @@ static unsigned char get_SDF_radial(
d2 = nd2;
}
}
- // move on
+ //move on
++idx;
}
}
- // south
+ //south
line = y + radius;
if( (line >= 0) && (line < h) )
{
@@ -823,7 +825,7 @@ static unsigned char get_SDF_radial(
int idx = line * w + lo;
for( int i = lo; i <= hi; ++i )
{
- // check this pixel
+ //check this pixel
if( fontmap[idx] != v )
{
float nx = i - x;
@@ -834,11 +836,11 @@ static unsigned char get_SDF_radial(
d2 = nd2;
}
}
- // move on
+ //move on
++idx;
}
}
- // west
+ //west
line = x - radius;
if( (line >= 0) && (line < w) )
{
@@ -849,7 +851,7 @@ static unsigned char get_SDF_radial(
int idx = lo * w + line;
for( int i = lo; i <= hi; ++i )
{
- // check this pixel
+ //check this pixel
if( fontmap[idx] != v )
{
float nx = line - x;
@@ -860,11 +862,11 @@ static unsigned char get_SDF_radial(
d2 = nd2;
}
}
- // move on
+ //move on
idx += w;
}
}
- // east
+ //east
line = x + radius;
if( (line >= 0) && (line < w) )
{
@@ -875,7 +877,7 @@ static unsigned char get_SDF_radial(
int idx = lo * w + line;
for( int i = lo; i <= hi; ++i )
{
- // check this pixel
+ //check this pixel
if( fontmap[idx] != v )
{
float nx = line - x;
@@ -886,7 +888,7 @@ static unsigned char get_SDF_radial(
d2 = nd2;
}
}
- // move on
+ //move on
idx += w;
}
}
@@ -913,7 +915,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
String src_path = EditorImportPlugin::expand_source_path(from->get_source_path(0));
- if (src_path.extension().to_lower()=="fnt") {
+ if (src_path.get_extension().to_lower()=="fnt") {
if (ResourceLoader::load(src_path).is_valid()) {
EditorNode::get_singleton()->show_warning(TTR("Path:")+" "+src_path+"\n"+TTR("This file is already a Godot font file, please supply a BMFont type file instead."));
@@ -981,14 +983,14 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
FT_GlyphSlot slot = face->glyph;
-// error = FT_Set_Charmap(face,ft_encoding_unicode ); /* encoding.. */
+ //error = FT_Set_Charmap(face,ft_encoding_unicode ); /* encoding.. */
/* PRINT CHARACTERS TO INDIVIDUAL BITMAPS */
-// int space_size=5; //size for space, if none found.. 5!
-// int min_valign=500; //some ridiculous number
+ //int space_size=5; //size for space, if none found.. 5!
+ //int min_valign=500; //some ridiculous number
FT_ULong charcode;
FT_UInt gindex;
@@ -1080,10 +1082,10 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if (font_mode==_EditorFontImportOptions::FONT_DISTANCE_FIELD) {
- // oversize the holding buffer so I can smooth it!
+ //oversize the holding buffer so I can smooth it!
int sw = w + scaler * 4;
int sh = h + scaler * 4;
- // do the SDF
+ //do the SDF
int sdfw = sw / scaler;
int sdfh = sh / scaler;
@@ -1139,7 +1141,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if (font_mode==_EditorFontImportOptions::FONT_DISTANCE_FIELD) {
- // oversize the holding buffer so I can smooth it!
+ //oversize the holding buffer so I can smooth it!
int sw = w + scaler * 4;
int sh = h + scaler * 4;
@@ -1330,7 +1332,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if (err==OK) {
for(int i=0;i<height;i++){
- color[i]=img.get_pixel(0,i*img.get_height()/height);
+ //color[i]=img.get_pixel(0,i*img.get_height()/height);
}
} else {
@@ -1380,10 +1382,10 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
int ow=font_data_list[i]->width;
int oh=font_data_list[i]->height;
- DVector<uint8_t> pixels;
+ PoolVector<uint8_t> pixels;
pixels.resize(s.x*s.y*4);
- DVector<uint8_t>::Write w = pixels.write();
+ PoolVector<uint8_t>::Write w = pixels.write();
//print_line("val: "+itos(font_data_list[i]->valign));
for(int y=0;y<s.height;y++) {
@@ -1471,7 +1473,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
sum+=w2[ofs_l];
}
- wa[ofs]=Math::pow(float(sum/(r*2+1))/255.0,tr)*255.0;
+ wa[ofs]=Math::pow(float(sum/(r*2+1))/255.0f,tr)*255.0f;
}
}
@@ -1512,9 +1514,9 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
}
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
- Image img(s.width,s.height,0,Image::FORMAT_RGBA,pixels);
+ Image img(s.width,s.height,0,Image::FORMAT_RGBA8,pixels);
font_data_list[i]->blit=img;
font_data_list[i]->blit_ofs=o;
@@ -1537,7 +1539,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
res_size.y=nearest_power_of_2(res_size.y);
print_line("Atlas size: "+res_size);
- Image atlas(res_size.x,res_size.y,0,Image::FORMAT_RGBA);
+ Image atlas(res_size.x,res_size.y,0,Image::FORMAT_RGBA8);
for(int i=0;i<font_data_list.size();i++) {
@@ -1552,10 +1554,10 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if (from->has_option("advanced/premultiply_alpha") && bool(from->get_option("advanced/premultiply_alpha"))) {
- DVector<uint8_t> data = atlas.get_data();
+ PoolVector<uint8_t> data = atlas.get_data();
int dl = data.size();
{
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
for(int i=0;i<dl;i+=4) {
@@ -1565,12 +1567,12 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
}
}
- atlas=Image(res_size.x,res_size.y,0,Image::FORMAT_RGBA,data);
+ atlas=Image(res_size.x,res_size.y,0,Image::FORMAT_RGBA8,data);
}
if (from->has_option("color/monochrome") && bool(from->get_option("color/monochrome"))) {
- atlas.convert(Image::FORMAT_GRAYSCALE_ALPHA);
+ atlas.convert(Image::FORMAT_LA8);
}
@@ -1578,8 +1580,8 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
//debug the texture
Ref<ImageTexture> atlast = memnew( ImageTexture );
atlast->create_from_image(atlas);
-// atlast->create_from_image(font_data_list[5]->blit);
- TextureFrame *tf = memnew( TextureFrame );
+ //atlast->create_from_image(font_data_list[5]->blit);
+ TextureRect *tf = memnew( TextureRect );
tf->set_texture(atlast);
dialog->add_child(tf);
}
@@ -1682,12 +1684,12 @@ Error EditorFontImportPlugin::import(const String& p_path, const Ref<ResourceImp
void EditorFontImportPlugin::import_from_drop(const Vector<String>& p_drop, const String &p_dest_path) {
for(int i=0;i<p_drop.size();i++) {
- String ext = p_drop[i].extension().to_lower();
+ String ext = p_drop[i].get_extension().to_lower();
String file = p_drop[i].get_file();
if (ext=="ttf" || ext=="otf" || ext=="fnt") {
import_dialog();
- dialog->set_source_and_dest(p_drop[i],p_dest_path.plus_file(file.basename()+".fnt"));
+ dialog->set_source_and_dest(p_drop[i],p_dest_path.plus_file(file.get_basename()+".fnt"));
break;
}
}
diff --git a/tools/editor/io_plugins/editor_font_import_plugin.h b/tools/editor/io_plugins/editor_font_import_plugin.h
index 25914e6f83..73c699c090 100644
--- a/tools/editor/io_plugins/editor_font_import_plugin.h
+++ b/tools/editor/io_plugins/editor_font_import_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,7 +37,7 @@ class EditorFontImportDialog;
class EditorFontImportPlugin : public EditorImportPlugin {
- OBJ_TYPE(EditorFontImportPlugin,EditorImportPlugin);
+ GDCLASS(EditorFontImportPlugin,EditorImportPlugin);
EditorFontImportDialog *dialog;
public:
diff --git a/tools/editor/io_plugins/editor_import_collada.cpp b/tools/editor/io_plugins/editor_import_collada.cpp
index 1130e2be30..a910b9c3ab 100644
--- a/tools/editor/io_plugins/editor_import_collada.cpp
+++ b/tools/editor/io_plugins/editor_import_collada.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_import_collada.h"
+
#include "collada/collada.h"
#include "scene/3d/spatial.h"
#include "scene/3d/skeleton.h"
@@ -85,11 +86,11 @@ struct ColladaImport {
Error _create_scene(Collada::Node *p_node, Spatial *p_parent);
Error _create_resources(Collada::Node *p_node);
Error _create_material(const String& p_material);
- Error _create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,const Map<String,Collada::NodeGeometry::Material>& p_material_map,const Collada::MeshData &meshdata,const Transform& p_local_xform,const Vector<int> &bone_remap, const Collada::SkinControllerData *p_skin_data, const Collada::MorphControllerData *p_morph_data,Vector<Ref<Mesh> > p_morph_meshes=Vector<Ref<Mesh> >());
+ Error _create_mesh_surfaces(bool p_optimize, Ref<Mesh>& p_mesh, const Map<String,Collada::NodeGeometry::Material>& p_material_map, const Collada::MeshData &meshdata, const Transform& p_local_xform, const Vector<int> &bone_remap, const Collada::SkinControllerData *p_skin_data, const Collada::MorphControllerData *p_morph_data, Vector<Ref<Mesh> > p_morph_meshes=Vector<Ref<Mesh> >(), bool p_for_morph=false);
Error load(const String& p_path, int p_flags, bool p_force_make_tangents=false);
void _fix_param_animation_tracks();
- void create_animation(int p_clip,bool p_make_tracks_in_all_bones);
- void create_animations(bool p_make_tracks_in_all_bones);
+ void create_animation(int p_clip,bool p_make_tracks_in_all_bones, bool p_import_value_tracks);
+ void create_animations(bool p_make_tracks_in_all_bones, bool p_import_value_tracks);
Set<String> tracks_in_clips;
Vector<String> missing_textures;
@@ -236,20 +237,22 @@ Error ColladaImport::_create_scene(Collada::Node *p_node, Spatial *p_parent) {
return OK;
//well, it's an ambient light..
Light *l = memnew( DirectionalLight );
-// l->set_color(Light::COLOR_AMBIENT,ld.color);
- l->set_color(Light::COLOR_DIFFUSE,Color(0,0,0));
- l->set_color(Light::COLOR_SPECULAR,Color(0,0,0));
+ //l->set_color(Light::COLOR_AMBIENT,ld.color);
+ //l->set_color(Light::COLOR_DIFFUSE,Color(0,0,0));
+ //l->set_color(Light::COLOR_SPECULAR,Color(0,0,0));
node = l;
} else if (ld.mode==Collada::LightData::MODE_DIRECTIONAL) {
//well, it's an ambient light..
Light *l = memnew( DirectionalLight );
- //if (found_ambient) //use it here
- // l->set_color(Light::COLOR_AMBIENT,ambient);
+ /*
+ if (found_ambient) //use it here
+ l->set_color(Light::COLOR_AMBIENT,ambient);
l->set_color(Light::COLOR_DIFFUSE,ld.color);
l->set_color(Light::COLOR_SPECULAR,Color(1,1,1));
+ */
node = l;
} else {
@@ -259,14 +262,14 @@ Error ColladaImport::_create_scene(Collada::Node *p_node, Spatial *p_parent) {
l=memnew( OmniLight );
else {
l=memnew( SpotLight );
- l->set_parameter(Light::PARAM_SPOT_ANGLE,ld.spot_angle);
- l->set_parameter(Light::PARAM_SPOT_ATTENUATION,ld.spot_exp);
+ //l->set_parameter(Light::PARAM_SPOT_ANGLE,ld.spot_angle);
+ //l->set_parameter(Light::PARAM_SPOT_ATTENUATION,ld.spot_exp);
}
//
- l->set_color(Light::COLOR_DIFFUSE,ld.color);
- l->set_color(Light::COLOR_SPECULAR,Color(1,1,1));
- l->approximate_opengl_attenuation(ld.constant_att,ld.linear_att,ld.quad_att);
+ //l->set_color(Light::COLOR_DIFFUSE,ld.color);
+ //l->set_color(Light::COLOR_SPECULAR,Color(1,1,1));
+ //l->approximate_opengl_attenuation(ld.constant_att,ld.linear_att,ld.quad_att);
node=l;
}
@@ -377,7 +380,7 @@ Error ColladaImport::_create_material(const String& p_target) {
ERR_FAIL_COND_V(!collada.state.effect_map.has(src_mat.instance_effect),ERR_INVALID_PARAMETER);
Collada::Effect &effect=collada.state.effect_map[src_mat.instance_effect];
- Ref<FixedMaterial> material= memnew( FixedMaterial );
+ Ref<FixedSpatialMaterial> material= memnew( FixedSpatialMaterial );
if (src_mat.name!="")
material->set_name(src_mat.name);
@@ -394,14 +397,15 @@ Error ColladaImport::_create_material(const String& p_target) {
Ref<Texture> texture = ResourceLoader::load(texfile,"Texture");
if (texture.is_valid()) {
- material->set_texture(FixedMaterial::PARAM_DIFFUSE,texture);
- material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,1));
+ material->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,texture);
+ material->set_albedo(Color(1,1,1,1));
+ //material->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,Color(1,1,1,1));
} else {
missing_textures.push_back(texfile.get_file());
}
}
} else {
- material->set_parameter(FixedMaterial::PARAM_DIFFUSE,effect.diffuse.color);
+ //material->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,effect.diffuse.color);
}
// SPECULAR
@@ -413,16 +417,18 @@ Error ColladaImport::_create_material(const String& p_target) {
Ref<Texture> texture = ResourceLoader::load(texfile,"Texture");
if (texture.is_valid()) {
+ material->set_texture(FixedSpatialMaterial::TEXTURE_SPECULAR,texture);
+ material->set_specular(Color(1,1,1,1));
- material->set_texture(FixedMaterial::PARAM_SPECULAR,texture);
- material->set_parameter(FixedMaterial::PARAM_SPECULAR,Color(1,1,1,1));
+ //material->set_texture(FixedSpatialMaterial::PARAM_SPECULAR,texture);
+ //material->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR,Color(1,1,1,1));
} else {
missing_textures.push_back(texfile.get_file());
}
}
} else {
- material->set_parameter(FixedMaterial::PARAM_SPECULAR,effect.specular.color);
+ //material->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR,effect.specular.color);
}
// EMISSION
@@ -435,15 +441,17 @@ Error ColladaImport::_create_material(const String& p_target) {
Ref<Texture> texture = ResourceLoader::load(texfile,"Texture");
if (texture.is_valid()) {
- material->set_texture(FixedMaterial::PARAM_EMISSION,texture);
- material->set_parameter(FixedMaterial::PARAM_EMISSION,Color(1,1,1,1));
+ material->set_texture(FixedSpatialMaterial::TEXTURE_EMISSION,texture);
+ material->set_emission(Color(1,1,1,1));
+
+ //material->set_parameter(FixedSpatialMaterial::PARAM_EMISSION,Color(1,1,1,1));
}else {
- missing_textures.push_back(texfile.get_file());
+ //missing_textures.push_back(texfile.get_file());
}
}
} else {
- material->set_parameter(FixedMaterial::PARAM_EMISSION,effect.emission.color);
+ //material->set_parameter(FixedSpatialMaterial::PARAM_EMISSION,effect.emission.color);
}
// NORMAL
@@ -455,19 +463,23 @@ Error ColladaImport::_create_material(const String& p_target) {
Ref<Texture> texture = ResourceLoader::load(texfile,"Texture");
if (texture.is_valid()) {
+ material->set_texture(FixedSpatialMaterial::TEXTURE_NORMAL,texture);
+ //material->set_emission(Color(1,1,1,1));
- material->set_texture(FixedMaterial::PARAM_NORMAL,texture);
+ //material->set_texture(FixedSpatialMaterial::PARAM_NORMAL,texture);
}else {
- missing_textures.push_back(texfile.get_file());
+ //missing_textures.push_back(texfile.get_file());
}
}
}
- material->set_parameter(FixedMaterial::PARAM_SPECULAR_EXP,effect.shininess);
- material->set_flag(Material::FLAG_DOUBLE_SIDED,effect.double_sided);
- material->set_flag(Material::FLAG_UNSHADED,effect.unshaded);
+ //material->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR_EXP,effect.shininess);
+ if (effect.double_sided) {
+ material->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
+ }
+ material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,effect.unshaded);
@@ -476,15 +488,15 @@ Error ColladaImport::_create_material(const String& p_target) {
}
-static void _generate_normals(const DVector<int>& p_indices,const DVector<Vector3>& p_vertices,DVector<Vector3>&r_normals) {
+static void _generate_normals(const PoolVector<int>& p_indices,const PoolVector<Vector3>& p_vertices,PoolVector<Vector3>&r_normals) {
r_normals.resize(p_vertices.size());
- DVector<Vector3>::Write narrayw = r_normals.write();
+ PoolVector<Vector3>::Write narrayw = r_normals.write();
int iacount=p_indices.size()/3;
- DVector<int>::Read index_arrayr = p_indices.read();
- DVector<Vector3>::Read vertex_arrayr = p_vertices.read();
+ PoolVector<int>::Read index_arrayr = p_indices.read();
+ PoolVector<Vector3>::Read vertex_arrayr = p_vertices.read();
for(int idx=0;idx<iacount;idx++) {
@@ -510,7 +522,7 @@ static void _generate_normals(const DVector<int>& p_indices,const DVector<Vector
}
-static void _generate_tangents_and_binormals(const DVector<int>& p_indices,const DVector<Vector3>& p_vertices,const DVector<Vector3>& p_uvs,const DVector<Vector3>& p_normals,DVector<real_t>&r_tangents) {
+static void _generate_tangents_and_binormals(const PoolVector<int>& p_indices,const PoolVector<Vector3>& p_vertices,const PoolVector<Vector3>& p_uvs,const PoolVector<Vector3>& p_normals,PoolVector<real_t>&r_tangents) {
int vlen=p_vertices.size();
@@ -522,10 +534,10 @@ static void _generate_tangents_and_binormals(const DVector<int>& p_indices,const
int iacount=p_indices.size()/3;
- DVector<int>::Read index_arrayr = p_indices.read();
- DVector<Vector3>::Read vertex_arrayr = p_vertices.read();
- DVector<Vector3>::Read narrayr = p_normals.read();
- DVector<Vector3>::Read uvarrayr = p_uvs.read();
+ PoolVector<int>::Read index_arrayr = p_indices.read();
+ PoolVector<Vector3>::Read vertex_arrayr = p_vertices.read();
+ PoolVector<Vector3>::Read narrayr = p_normals.read();
+ PoolVector<Vector3>::Read uvarrayr = p_uvs.read();
for(int idx=0;idx<iacount;idx++) {
@@ -579,7 +591,7 @@ static void _generate_tangents_and_binormals(const DVector<int>& p_indices,const
}
r_tangents.resize(vlen*4);
- DVector<real_t>::Write tarrayw = r_tangents.write();
+ PoolVector<real_t>::Write tarrayw = r_tangents.write();
for(int idx=0;idx<vlen;idx++) {
Vector3 tangent = tangents[idx];
@@ -597,7 +609,7 @@ static void _generate_tangents_and_binormals(const DVector<int>& p_indices,const
}
}
-Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,const Map<String,Collada::NodeGeometry::Material>& p_material_map,const Collada::MeshData &meshdata,const Transform& p_local_xform,const Vector<int> &bone_remap, const Collada::SkinControllerData *skin_controller, const Collada::MorphControllerData *p_morph_data,Vector<Ref<Mesh> > p_morph_meshes) {
+Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,const Map<String,Collada::NodeGeometry::Material>& p_material_map,const Collada::MeshData &meshdata,const Transform& p_local_xform,const Vector<int> &bone_remap, const Collada::SkinControllerData *skin_controller, const Collada::MorphControllerData *p_morph_data,Vector<Ref<Mesh> > p_morph_meshes,bool p_for_morph) {
bool local_xform_mirror=p_local_xform.basis.determinant() < 0;
@@ -615,12 +627,12 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
ERR_FAIL_COND_V( !collada.state.mesh_data_map.has(target), ERR_INVALID_DATA );
String name = collada.state.mesh_data_map[target].name;
- p_mesh->add_morph_target(name);
+ p_mesh->add_blend_shape(name);
}
if (p_morph_data->mode=="RELATIVE")
- p_mesh->set_morph_target_mode(Mesh::MORPH_MODE_RELATIVE);
+ p_mesh->set_blend_shape_mode(Mesh::BLEND_SHAPE_MODE_RELATIVE);
else if (p_morph_data->mode=="NORMALIZED")
- p_mesh->set_morph_target_mode(Mesh::MORPH_MODE_NORMALIZED);
+ p_mesh->set_blend_shape_mode(Mesh::BLEND_SHAPE_MODE_NORMALIZED);
}
@@ -1022,9 +1034,9 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
}
- DVector<int> index_array;
+ PoolVector<int> index_array;
index_array.resize(indices_list.size());
- DVector<int>::Write index_arrayw = index_array.write();
+ PoolVector<int>::Write index_arrayw = index_array.write();
int iidx=0;
for(List<int>::Element *F=indices_list.front();F;F=F->next()) {
@@ -1032,7 +1044,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
index_arrayw[iidx++]=F->get();
}
- index_arrayw=DVector<int>::Write();
+ index_arrayw=PoolVector<int>::Write();
/*****************/
@@ -1042,7 +1054,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
{
- Ref<FixedMaterial> material;
+ Ref<FixedSpatialMaterial> material;
//find material
Mesh::PrimitiveType primitive=Mesh::PRIMITIVE_TRIANGLES;
@@ -1066,14 +1078,14 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
- DVector<Vector3> final_vertex_array;
- DVector<Vector3> final_normal_array;
- DVector<float> final_tangent_array;
- DVector<Color> final_color_array;
- DVector<Vector3> final_uv_array;
- DVector<Vector3> final_uv2_array;
- DVector<float> final_bone_array;
- DVector<float> final_weight_array;
+ PoolVector<Vector3> final_vertex_array;
+ PoolVector<Vector3> final_normal_array;
+ PoolVector<float> final_tangent_array;
+ PoolVector<Color> final_color_array;
+ PoolVector<Vector3> final_uv_array;
+ PoolVector<Vector3> final_uv2_array;
+ PoolVector<int> final_bone_array;
+ PoolVector<float> final_weight_array;
uint32_t final_format=0;
@@ -1108,65 +1120,67 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
int vlen = vertex_array.size();
{ //vertices
- DVector<Vector3> varray;
+ PoolVector<Vector3> varray;
varray.resize(vertex_array.size());
- DVector<Vector3>::Write varrayw = varray.write();
+ PoolVector<Vector3>::Write varrayw = varray.write();
for(int k=0;k<vlen;k++)
varrayw[k]=vertex_array[k].vertex;
- varrayw = DVector<Vector3>::Write();
+ varrayw = PoolVector<Vector3>::Write();
final_vertex_array=varray;
}
if (uv_src) { //compute uv first, may be needed for computing tangent/bionrmal
- DVector<Vector3> uvarray;
+ PoolVector<Vector3> uvarray;
uvarray.resize(vertex_array.size());
- DVector<Vector3>::Write uvarrayw = uvarray.write();
+ PoolVector<Vector3>::Write uvarrayw = uvarray.write();
for(int k=0;k<vlen;k++) {
uvarrayw[k]=vertex_array[k].uv;
}
- uvarrayw = DVector<Vector3>::Write();
+ uvarrayw = PoolVector<Vector3>::Write();
final_uv_array=uvarray;
}
if (uv2_src) { //compute uv first, may be needed for computing tangent/bionrmal
- DVector<Vector3> uv2array;
+ PoolVector<Vector3> uv2array;
uv2array.resize(vertex_array.size());
- DVector<Vector3>::Write uv2arrayw = uv2array.write();
+ PoolVector<Vector3>::Write uv2arrayw = uv2array.write();
for(int k=0;k<vlen;k++) {
uv2arrayw[k]=vertex_array[k].uv2;
}
- uv2arrayw = DVector<Vector3>::Write();
+ uv2arrayw = PoolVector<Vector3>::Write();
final_uv2_array=uv2array;
}
if (normal_src) {
- DVector<Vector3> narray;
+ PoolVector<Vector3> narray;
narray.resize(vertex_array.size());
- DVector<Vector3>::Write narrayw = narray.write();
+ PoolVector<Vector3>::Write narrayw = narray.write();
for(int k=0;k<vlen;k++) {
narrayw[k]=vertex_array[k].normal;
}
- narrayw = DVector<Vector3>::Write();
+ narrayw = PoolVector<Vector3>::Write();
final_normal_array=narray;
- //DVector<Vector3> altnaray;
- //_generate_normals(index_array,final_vertex_array,altnaray);
+ /*
+ PoolVector<Vector3> altnaray;
+ _generate_normals(index_array,final_vertex_array,altnaray);
- //for(int i=0;i<altnaray.size();i++)
- // print_line(rtos(altnaray[i].dot(final_normal_array[i])));
+ for(int i=0;i<altnaray.size();i++)
+ print_line(rtos(altnaray[i].dot(final_normal_array[i])));
+ */
} else if (primitive==Mesh::PRIMITIVE_TRIANGLES) {
//generate normals (even if unused later)
@@ -1180,9 +1194,9 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
if (final_normal_array.size() && uv_src && binormal_src && tangent_src && !force_make_tangents) {
- DVector<real_t> tarray;
+ PoolVector<real_t> tarray;
tarray.resize(vertex_array.size()*4);
- DVector<real_t>::Write tarrayw = tarray.write();
+ PoolVector<real_t>::Write tarrayw = tarray.write();
for(int k=0;k<vlen;k++) {
@@ -1193,10 +1207,10 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
}
- tarrayw = DVector<real_t>::Write();
+ tarrayw = PoolVector<real_t>::Write();
final_tangent_array=tarray;
- } else if (final_normal_array.size() && primitive==Mesh::PRIMITIVE_TRIANGLES && final_uv_array.size() && (force_make_tangents || (material.is_valid() && material->get_texture(FixedMaterial::PARAM_NORMAL).is_valid()))){
+ } else if (final_normal_array.size() && primitive==Mesh::PRIMITIVE_TRIANGLES && final_uv_array.size() && (force_make_tangents || (material.is_valid()))){
//if this uses triangles, there are uvs and the material is using a normalmap, generate tangents and binormals, because they WILL be needed
//generate binormals/tangents
_generate_tangents_and_binormals(index_array,final_vertex_array,final_uv_array,final_normal_array,final_tangent_array);
@@ -1208,27 +1222,27 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
if (color_src) {
- DVector<Color> colorarray;
+ PoolVector<Color> colorarray;
colorarray.resize(vertex_array.size());
- DVector<Color>::Write colorarrayw = colorarray.write();
+ PoolVector<Color>::Write colorarrayw = colorarray.write();
for(int k=0;k<vlen;k++) {
colorarrayw[k]=vertex_array[k].color;
}
- colorarrayw = DVector<Color>::Write();
+ colorarrayw = PoolVector<Color>::Write();
final_color_array=colorarray;
}
if (has_weights) {
- DVector<float> weightarray;
- DVector<float> bonearray;
+ PoolVector<float> weightarray;
+ PoolVector<int> bonearray;
weightarray.resize(vertex_array.size()*4);
- DVector<float>::Write weightarrayw = weightarray.write();
+ PoolVector<float>::Write weightarrayw = weightarray.write();
bonearray.resize(vertex_array.size()*4);
- DVector<float>::Write bonearrayw = bonearray.write();
+ PoolVector<int>::Write bonearrayw = bonearray.write();
for(int k=0;k<vlen;k++) {
float sum=0;
@@ -1237,7 +1251,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
if (l<vertex_array[k].weights.size()) {
weightarrayw[k*VS::ARRAY_WEIGHTS_SIZE+l]=vertex_array[k].weights[l].weight;
sum+=weightarrayw[k*VS::ARRAY_WEIGHTS_SIZE+l];
- bonearrayw[k*VS::ARRAY_WEIGHTS_SIZE+l]=vertex_array[k].weights[l].bone_idx;
+ bonearrayw[k*VS::ARRAY_WEIGHTS_SIZE+l]=int(vertex_array[k].weights[l].bone_idx);
//COLLADA_PRINT(itos(k)+": "+rtos(bonearrayw[k*VS::ARRAY_WEIGHTS_SIZE+l])+":"+rtos(weightarray[k*VS::ARRAY_WEIGHTS_SIZE+l]));
} else {
@@ -1248,13 +1262,15 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
}
-// if (sum<0.8)
-// COLLADA_PRINT("ERROR SUMMING INDEX "+itos(k)+" had weights: "+itos(vertex_array[k].weights.size()));
+ /*
+ if (sum<0.8)
+ COLLADA_PRINT("ERROR SUMMING INDEX "+itos(k)+" had weights: "+itos(vertex_array[k].weights.size()));
+ */
}
- weightarrayw = DVector<float>::Write();
- bonearrayw = DVector<float>::Write();
+ weightarrayw = PoolVector<float>::Write();
+ bonearrayw = PoolVector<int>::Write();
final_weight_array = weightarray;
final_bone_array = bonearray;
@@ -1317,7 +1333,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
// morph anything but "POSITIONS" seem to exit. Because of this, normals and binormals/tangents have to be regenerated here,
// which may result in inaccurate (but most of the time good enough) results.
- DVector<Vector3> vertices;
+ PoolVector<Vector3> vertices;
vertices.resize(vlen);
ERR_FAIL_COND_V( md.vertices.size() != 1, ERR_INVALID_DATA);
@@ -1336,7 +1352,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
//read vertices from morph target
- DVector<Vector3>::Write vertw = vertices.write();
+ PoolVector<Vector3>::Write vertw = vertices.write();
for(int m_i=0;m_i<m->array.size()/stride;m_i++) {
@@ -1372,9 +1388,9 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
//vertices are in place, now generate everything else
- vertw = DVector<Vector3>::Write();
- DVector<Vector3> normals;
- DVector<float> tangents;
+ vertw = PoolVector<Vector3>::Write();
+ PoolVector<Vector3> normals;
+ PoolVector<float> tangents;
print_line("vertex source id: "+vertex_src_id);
if(md.vertices[vertex_src_id].sources.has("NORMAL")){
//has normals
@@ -1393,7 +1409,7 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
//read normals from morph target
- DVector<Vector3>::Write vertw = normals.write();
+ PoolVector<Vector3>::Write vertw = normals.write();
for(int m_i=0;m_i<m->array.size()/stride;m_i++) {
@@ -1459,16 +1475,22 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
#endif
for(int mi=0;mi<p_morph_meshes.size();mi++) {
- // print_line("want surface "+itos(mi)+" has "+itos(p_morph_meshes[mi]->get_surface_count()));
+ //print_line("want surface "+itos(mi)+" has "+itos(p_morph_meshes[mi]->get_surface_count()));
Array a = p_morph_meshes[mi]->surface_get_arrays(surface);
- a[Mesh::ARRAY_BONES]=Variant();
- a[Mesh::ARRAY_WEIGHTS]=Variant();
+ //add valid weight and bone arrays if they exist, TODO check if they are unique to shape (generally not)
+
+ if (final_weight_array.size())
+ a[Mesh::ARRAY_WEIGHTS]=final_weight_array;
+ if (final_bone_array.size())
+ a[Mesh::ARRAY_BONES]=final_bone_array;
+
a[Mesh::ARRAY_INDEX]=Variant();
//a.resize(Mesh::ARRAY_MAX); //no need for index
mr.push_back(a);
}
- p_mesh->add_surface(Mesh::PRIMITIVE_TRIANGLES,d,mr);
+
+ p_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES,d,mr,p_for_morph?0:Mesh::ARRAY_COMPRESS_DEFAULT);
if (material.is_valid()) {
p_mesh->surface_set_material(surface, material);
@@ -1692,7 +1714,7 @@ Error ColladaImport::_create_resources(Collada::Node *p_node) {
if (collada.state.mesh_data_map.has(meshid)) {
Ref<Mesh> mesh=Ref<Mesh>(memnew( Mesh ));
const Collada::MeshData &meshdata = collada.state.mesh_data_map[meshid];
- Error err = _create_mesh_surfaces(false,mesh,ng->material_map,meshdata,apply_xform,bone_remap,skin,NULL);
+ Error err = _create_mesh_surfaces(false,mesh,ng->material_map,meshdata,apply_xform,bone_remap,skin,NULL,Vector<Ref<Mesh> >(),true);
ERR_FAIL_COND_V(err,err);
morphs.push_back(mesh);
@@ -1898,7 +1920,7 @@ void ColladaImport::_fix_param_animation_tracks() {
}
-void ColladaImport::create_animations(bool p_make_tracks_in_all_bones) {
+void ColladaImport::create_animations(bool p_make_tracks_in_all_bones, bool p_import_value_tracks) {
_fix_param_animation_tracks();
@@ -1943,14 +1965,14 @@ void ColladaImport::create_animations(bool p_make_tracks_in_all_bones) {
}
- create_animation(-1,p_make_tracks_in_all_bones);
+ create_animation(-1,p_make_tracks_in_all_bones, p_import_value_tracks);
//print_line("clipcount: "+itos(collada.state.animation_clips.size()));
for(int i=0;i<collada.state.animation_clips.size();i++)
- create_animation(i,p_make_tracks_in_all_bones);
+ create_animation(i, p_make_tracks_in_all_bones, p_import_value_tracks);
}
-void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones) {
+void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones, bool p_import_value_tracks) {
Ref<Animation> animation = Ref<Animation>( memnew( Animation ));
@@ -2251,64 +2273,68 @@ void ColladaImport::create_animation(int p_clip, bool p_make_tracks_in_all_bones
+ if (p_import_value_tracks) {
+ for (int i = 0; i < valid_animated_properties.size(); i++) {
- for(int i=0;i<valid_animated_properties.size();i++) {
+ int ti = valid_animated_properties[i];
- int ti = valid_animated_properties[i];
+ if (p_clip == -1) {
- if (p_clip==-1) {
+ if (track_filter.has(ti))
+ continue;
+ }
+ else {
- if (track_filter.has(ti))
- continue;
- } else {
+ if (!track_filter.has(ti))
+ continue;
- if (!track_filter.has(ti))
- continue;
+ }
- }
+ Collada::AnimationTrack &at = collada.state.animation_tracks[ti];
- Collada::AnimationTrack &at = collada.state.animation_tracks[ ti ];
+ // take snapshots
+ if (!collada.state.scene_map.has(at.target))
+ continue;
- // take snapshots
- if (!collada.state.scene_map.has(at.target))
- continue;
+ NodeMap &nm = node_map[at.target];
+ String path = scene->get_path_to(nm.node);
- NodeMap &nm = node_map[at.target];
- String path = scene->get_path_to(nm.node);
+ animation->add_track(Animation::TYPE_VALUE);
+ int track = animation->get_track_count() - 1;
- animation->add_track(Animation::TYPE_VALUE);
- int track = animation->get_track_count() -1;
+ path = path + ":" + at.param;
+ animation->track_set_path(track, path);
+ animation->track_set_imported(track, true); //helps merging later
- path = path +":"+at.param;
- animation->track_set_path( track , path );
- animation->track_set_imported( track , true ); //helps merging later
+ for (int i = 0; i < at.keys.size(); i++) {
- for(int i=0;i<at.keys.size();i++) {
+ float time = at.keys[i].time;
+ Variant value;
+ Vector<float> data = at.keys[i].data;
+ if (data.size() == 1) {
+ //push a float
+ value = data[0];
- float time = at.keys[i].time;
- Variant value;
- Vector<float> data = at.keys[i].data;
- if (data.size()==1) {
- //push a float
- value=data[0];
+ }
+ else if (data.size() == 16) {
+ //matrix
+ print_line("value keys for matrices not supported");
+ }
+ else {
- } else if (data.size()==16) {
- //matrix
- print_line("value keys for matrices not supported");
- } else {
+ print_line("don't know what to do with this amount of value keys: " + itos(data.size()));
+ }
- print_line("don't know what to do with this amount of value keys: "+itos(data.size()));
+ animation->track_insert_key(track, time, value);
}
- animation->track_insert_key(track,time,value);
- }
-
- tracks_found=true;
+ tracks_found = true;
+ }
}
@@ -2356,9 +2382,11 @@ Node* EditorSceneImporterCollada::import_scene(const String& p_path, uint32_t p_
if (state.missing_textures.size()) {
- //for(int i=0;i<state.missing_textures.size();i++) {
-// EditorNode::add_io_error("Texture Not Found: "+state.missing_textures[i]);
-// }
+ /*
+ for(int i=0;i<state.missing_textures.size();i++) {
+ EditorNode::add_io_error("Texture Not Found: "+state.missing_textures[i]);
+ }
+ */
if (r_missing_deps) {
@@ -2373,7 +2401,7 @@ Node* EditorSceneImporterCollada::import_scene(const String& p_path, uint32_t p_
if (p_flags&IMPORT_ANIMATION) {
- state.create_animations(p_flags&IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS);
+ state.create_animations(p_flags&IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS,p_flags&EditorSceneImporter::IMPORT_ANIMATION_KEEP_VALUE_TRACKS);
AnimationPlayer *ap = memnew( AnimationPlayer );
for(int i=0;i<state.animations.size();i++) {
String name;
@@ -2410,7 +2438,7 @@ Ref<Animation> EditorSceneImporterCollada::import_animation(const String& p_path
ERR_FAIL_COND_V(err!=OK,RES());
- state.create_animations(p_flags&EditorSceneImporter::IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS);
+ state.create_animations(p_flags&EditorSceneImporter::IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS,p_flags&EditorSceneImporter::IMPORT_ANIMATION_KEEP_VALUE_TRACKS);
if (state.scene)
memdelete(state.scene);
@@ -2419,7 +2447,7 @@ Ref<Animation> EditorSceneImporterCollada::import_animation(const String& p_path
Ref<Animation> anim=state.animations[0];
anim=state.animations[0];
print_line("Anim Load OK");
- String base = p_path.basename().to_lower();
+ String base = p_path.get_basename().to_lower();
if (p_flags&IMPORT_ANIMATION_DETECT_LOOP) {
if (base.begins_with("loop") || base.ends_with("loop") || base.begins_with("cycle") || base.ends_with("cycle")) {
diff --git a/tools/editor/io_plugins/editor_import_collada.h b/tools/editor/io_plugins/editor_import_collada.h
index de45dc38f4..f6642778ed 100644
--- a/tools/editor/io_plugins/editor_import_collada.h
+++ b/tools/editor/io_plugins/editor_import_collada.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,7 +35,7 @@
class EditorSceneImporterCollada : public EditorSceneImporter {
- OBJ_TYPE(EditorSceneImporterCollada,EditorSceneImporter );
+ GDCLASS(EditorSceneImporterCollada,EditorSceneImporter );
public:
virtual uint32_t get_import_flags() const;
diff --git a/tools/editor/io_plugins/editor_mesh_import_plugin.cpp b/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
index da608292c1..d07a21fc7d 100644
--- a/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,7 +32,7 @@
#include "tools/editor/editor_dir_dialog.h"
#include "tools/editor/editor_node.h"
#include "tools/editor/property_editor.h"
-#include "scene/resources/sample.h"
+//#include "scene/resources/sample.h"
#include "io/resource_saver.h"
#include "os/file_access.h"
#include "io/marshalls.h"
@@ -40,7 +40,7 @@
class _EditorMeshImportOptions : public Object {
- OBJ_TYPE(_EditorMeshImportOptions,Object);
+ GDCLASS(_EditorMeshImportOptions,Object);
public:
@@ -148,7 +148,7 @@ public:
class EditorMeshImportDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorMeshImportDialog,ConfirmationDialog);
+ GDCLASS(EditorMeshImportDialog,ConfirmationDialog);
EditorMeshImportPlugin *plugin;
@@ -259,7 +259,7 @@ public:
imd->add_source(EditorImportPlugin::validate_source_path(meshes[i]));
- String file_path = dst.plus_file(meshes[i].get_file().basename()+".msh");
+ String file_path = dst.plus_file(meshes[i].get_file().get_basename()+".msh");
plugin->import(file_path,imd);
}
@@ -278,11 +278,11 @@ public:
static void _bind_methods() {
- ObjectTypeDB::bind_method("_choose_files",&EditorMeshImportDialog::_choose_files);
- ObjectTypeDB::bind_method("_choose_save_dir",&EditorMeshImportDialog::_choose_save_dir);
- ObjectTypeDB::bind_method("_import",&EditorMeshImportDialog::_import);
- ObjectTypeDB::bind_method("_browse",&EditorMeshImportDialog::_browse);
- ObjectTypeDB::bind_method("_browse_target",&EditorMeshImportDialog::_browse_target);
+ ClassDB::bind_method("_choose_files",&EditorMeshImportDialog::_choose_files);
+ ClassDB::bind_method("_choose_save_dir",&EditorMeshImportDialog::_choose_save_dir);
+ ClassDB::bind_method("_import",&EditorMeshImportDialog::_import);
+ ClassDB::bind_method("_browse",&EditorMeshImportDialog::_browse);
+ ClassDB::bind_method("_browse_target",&EditorMeshImportDialog::_browse_target);
}
EditorMeshImportDialog(EditorMeshImportPlugin *p_plugin) {
@@ -294,7 +294,7 @@ public:
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
HBoxContainer *hbc = memnew( HBoxContainer );
vbc->add_margin_child(TTR("Source Mesh(es):"),hbc);
@@ -568,7 +568,7 @@ void EditorMeshImportPlugin::import_from_drop(const Vector<String>& p_drop, cons
Vector<String> files;
for(int i=0;i<p_drop.size();i++) {
- String ext = p_drop[i].extension().to_lower();
+ String ext = p_drop[i].get_extension().to_lower();
String file = p_drop[i].get_file();
if (ext=="obj") {
diff --git a/tools/editor/io_plugins/editor_mesh_import_plugin.h b/tools/editor/io_plugins/editor_mesh_import_plugin.h
index d200603e6a..1f15fee3a7 100644
--- a/tools/editor/io_plugins/editor_mesh_import_plugin.h
+++ b/tools/editor/io_plugins/editor_mesh_import_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,7 +38,7 @@ class EditorMeshImportDialog;
class EditorMeshImportPlugin : public EditorImportPlugin {
- OBJ_TYPE(EditorMeshImportPlugin,EditorImportPlugin);
+ GDCLASS(EditorMeshImportPlugin,EditorImportPlugin);
EditorMeshImportDialog *dialog;
diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.cpp b/tools/editor/io_plugins/editor_sample_import_plugin.cpp
index 7dc74e58dd..631291ec1b 100644
--- a/tools/editor/io_plugins/editor_sample_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_sample_import_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,19 +27,21 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_sample_import_plugin.h"
+
#include "tools/editor/editor_file_dialog.h"
#include "tools/editor/editor_dir_dialog.h"
#include "tools/editor/editor_node.h"
#include "tools/editor/property_editor.h"
-#include "scene/resources/sample.h"
#include "io/resource_saver.h"
#include "os/file_access.h"
#include "io/marshalls.h"
#include "tools/editor/editor_settings.h"
+#if 0
+
class _EditorSampleImportOptions : public Object {
- OBJ_TYPE(_EditorSampleImportOptions,Object);
+ GDCLASS(_EditorSampleImportOptions,Object);
public:
enum CompressMode {
@@ -166,7 +168,7 @@ public:
class EditorSampleImportDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorSampleImportDialog,ConfirmationDialog);
+ GDCLASS(EditorSampleImportDialog,ConfirmationDialog);
EditorSampleImportPlugin *plugin;
@@ -296,7 +298,7 @@ public:
error_dialog->popup_centered(Size2(200,100)*EDSCALE);
}
- dst = dst.plus_file(samples[i].get_file().basename()+".smp");
+ dst = dst.plus_file(samples[i].get_file().get_basename()+".smp");
plugin->import(dst,imd);
}
@@ -318,12 +320,12 @@ public:
static void _bind_methods() {
- ObjectTypeDB::bind_method("_choose_files",&EditorSampleImportDialog::_choose_files);
- ObjectTypeDB::bind_method("_choose_save_dir",&EditorSampleImportDialog::_choose_save_dir);
- ObjectTypeDB::bind_method("_import",&EditorSampleImportDialog::_import);
- ObjectTypeDB::bind_method("_browse",&EditorSampleImportDialog::_browse);
- ObjectTypeDB::bind_method("_browse_target",&EditorSampleImportDialog::_browse_target);
- // ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
+ ClassDB::bind_method("_choose_files",&EditorSampleImportDialog::_choose_files);
+ ClassDB::bind_method("_choose_save_dir",&EditorSampleImportDialog::_choose_save_dir);
+ ClassDB::bind_method("_import",&EditorSampleImportDialog::_import);
+ ClassDB::bind_method("_browse",&EditorSampleImportDialog::_browse);
+ ClassDB::bind_method("_browse_target",&EditorSampleImportDialog::_browse_target);
+ //ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
}
EditorSampleImportDialog(EditorSampleImportPlugin *p_plugin) {
@@ -335,7 +337,7 @@ public:
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
HBoxContainer *hbc = memnew( HBoxContainer );
@@ -373,7 +375,7 @@ public:
save_select = memnew( EditorDirDialog );
add_child(save_select);
- // save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
+ //save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
save_select->connect("dir_selected", this,"_choose_save_dir");
get_ok()->connect("pressed", this,"_import");
@@ -383,7 +385,7 @@ public:
error_dialog = memnew ( ConfirmationDialog );
add_child(error_dialog);
error_dialog->get_ok()->set_text(TTR("Accept"));
- // error_dialog->get_cancel()->hide();
+ //error_dialog->get_cancel()->hide();
set_hide_on_ok(false);
options = memnew( _EditorSampleImportOptions );
@@ -443,8 +445,8 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI
data.resize(len*chans);
{
- DVector<uint8_t> src_data = smp->get_data();
- DVector<uint8_t>::Read sr = src_data.read();
+ PoolVector<uint8_t> src_data = smp->get_data();
+ PoolVector<uint8_t>::Read sr = src_data.read();
for(int i=0;i<len*chans;i++) {
@@ -539,7 +541,7 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI
int first=0;
int last=(len*chans)-1;
bool found=false;
- float limit = Math::db2linear(-30);
+ float limit = Math::db2linear((float)-30);
for(int i=0;i<data.size();i++) {
float amp = Math::abs(data[i]);
@@ -602,7 +604,7 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI
}
- DVector<uint8_t> dst_data;
+ PoolVector<uint8_t> dst_data;
Sample::Format dst_format;
if ( compression == _EditorSampleImportOptions::COMPRESS_MODE_RAM) {
@@ -629,8 +631,8 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI
right[i]=data[i*2+1];
}
- DVector<uint8_t> bleft;
- DVector<uint8_t> bright;
+ PoolVector<uint8_t> bleft;
+ PoolVector<uint8_t> bright;
_compress_ima_adpcm(left,bleft);
_compress_ima_adpcm(right,bright);
@@ -638,9 +640,9 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI
int dl = bleft.size();
dst_data.resize( dl *2 );
- DVector<uint8_t>::Write w=dst_data.write();
- DVector<uint8_t>::Read rl=bleft.read();
- DVector<uint8_t>::Read rr=bright.read();
+ PoolVector<uint8_t>::Write w=dst_data.write();
+ PoolVector<uint8_t>::Read rl=bleft.read();
+ PoolVector<uint8_t>::Read rr=bright.read();
for(int i=0;i<dl;i++) {
w[i*2+0]=rl[i];
@@ -648,14 +650,14 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI
}
}
-// print_line("compressing ima-adpcm, resulting buffersize is "+itos(dst_data.size())+" from "+itos(data.size()));
+ //print_line("compressing ima-adpcm, resulting buffersize is "+itos(dst_data.size())+" from "+itos(data.size()));
} else {
dst_format=is16?Sample::FORMAT_PCM16:Sample::FORMAT_PCM8;
dst_data.resize( data.size() * (is16?2:1));
{
- DVector<uint8_t>::Write w = dst_data.write();
+ PoolVector<uint8_t>::Write w = dst_data.write();
int ds=data.size();
for(int i=0;i<ds;i++) {
@@ -700,7 +702,7 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI
}
-void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,DVector<uint8_t>& dst_data) {
+void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,PoolVector<uint8_t>& dst_data) {
/*p_sample_data->data = (void*)malloc(len);
@@ -730,7 +732,7 @@ void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,D
datalen++;
dst_data.resize(datalen/2+4);
- DVector<uint8_t>::Write w = dst_data.write();
+ PoolVector<uint8_t>::Write w = dst_data.write();
int i,step_idx=0,prev=0;
@@ -758,12 +760,14 @@ void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,D
xm_sample=CLAMP(in[i]*32767.0,-32768,32767);
- //if (xm_sample==32767 || xm_sample==-32768)
- // printf("clippy!\n",xm_sample);
+ /*
+ if (xm_sample==32767 || xm_sample==-32768)
+ printf("clippy!\n",xm_sample);
+ */
}
- // xm_sample=xm_sample+xm_prev;
- // xm_prev=xm_sample;
+ //xm_sample=xm_sample+xm_prev;
+ //xm_prev=xm_sample;
diff = (int)xm_sample - prev ;
@@ -828,7 +832,7 @@ void EditorSampleImportPlugin::import_from_drop(const Vector<String>& p_drop, co
Vector<String> files;
for(int i=0;i<p_drop.size();i++) {
- String ext = p_drop[i].extension().to_lower();
+ String ext = p_drop[i].get_extension().to_lower();
if (ext=="wav") {
@@ -887,7 +891,7 @@ Vector<uint8_t> EditorSampleExportPlugin::custom_export(String& p_path,const Ref
- if (EditorImportExport::get_singleton()->sample_get_action()==EditorImportExport::SAMPLE_ACTION_NONE || p_path.extension().to_lower()!="wav") {
+ if (EditorImportExport::get_singleton()->sample_get_action()==EditorImportExport::SAMPLE_ACTION_NONE || p_path.get_extension().to_lower()!="wav") {
return Vector<uint8_t>();
}
@@ -911,7 +915,7 @@ Vector<uint8_t> EditorSampleExportPlugin::custom_export(String& p_path,const Ref
ERR_FAIL_COND_V(err!=OK,Vector<uint8_t>());
- p_path=p_path.basename()+".converted.smp";
+ p_path=p_path.get_basename()+".converted.smp";
return FileAccess::get_file_as_array(savepath);
}
@@ -921,3 +925,5 @@ Vector<uint8_t> EditorSampleExportPlugin::custom_export(String& p_path,const Ref
EditorSampleExportPlugin::EditorSampleExportPlugin() {
}
+
+#endif
diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.h b/tools/editor/io_plugins/editor_sample_import_plugin.h
index a2686ebe4f..8e02d0e11d 100644
--- a/tools/editor/io_plugins/editor_sample_import_plugin.h
+++ b/tools/editor/io_plugins/editor_sample_import_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,6 +29,7 @@
#ifndef EDITOR_SAMPLE_IMPORT_PLUGIN_H
#define EDITOR_SAMPLE_IMPORT_PLUGIN_H
+#if 0
#include "tools/editor/editor_import_export.h"
#include "scene/resources/font.h"
@@ -37,10 +38,10 @@ class EditorSampleImportDialog;
class EditorSampleImportPlugin : public EditorImportPlugin {
- OBJ_TYPE(EditorSampleImportPlugin,EditorImportPlugin);
+ GDCLASS(EditorSampleImportPlugin,EditorImportPlugin);
EditorSampleImportDialog *dialog;
- void _compress_ima_adpcm(const Vector<float>& p_data,DVector<uint8_t>& dst_data);
+ void _compress_ima_adpcm(const Vector<float>& p_data,PoolVector<uint8_t>& dst_data);
public:
static EditorSampleImportPlugin *singleton;
@@ -59,7 +60,7 @@ public:
class EditorSampleExportPlugin : public EditorExportPlugin {
- OBJ_TYPE( EditorSampleExportPlugin, EditorExportPlugin);
+ GDCLASS( EditorSampleExportPlugin, EditorExportPlugin);
public:
@@ -70,3 +71,4 @@ public:
};
#endif // EDITOR_SAMPLE_IMPORT_PLUGIN_H
+#endif
diff --git a/tools/editor/io_plugins/editor_scene_import_plugin.cpp b/tools/editor/io_plugins/editor_scene_import_plugin.cpp
index 56af35c6db..ce6c49fcba 100644
--- a/tools/editor/io_plugins/editor_scene_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_scene_import_plugin.h"
+
#include "globals.h"
#include "tools/editor/editor_node.h"
#include "scene/resources/packed_scene.h"
@@ -82,7 +83,7 @@ EditorScenePostImport::EditorScenePostImport() {
class EditorImportAnimationOptions : public VBoxContainer {
- OBJ_TYPE( EditorImportAnimationOptions, VBoxContainer );
+ GDCLASS( EditorImportAnimationOptions, VBoxContainer );
@@ -147,7 +148,7 @@ public:
class EditorSceneImportDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorSceneImportDialog,ConfirmationDialog);
+ GDCLASS(EditorSceneImportDialog,ConfirmationDialog);
struct FlagInfo {
@@ -374,10 +375,10 @@ void EditorImportAnimationOptions::_item_edited() {
void EditorImportAnimationOptions::_bind_methods() {
- ObjectTypeDB::bind_method("_changed",&EditorImportAnimationOptions::_changed);
- ObjectTypeDB::bind_method("_item_edited",&EditorImportAnimationOptions::_item_edited);
- ObjectTypeDB::bind_method("_button_action",&EditorImportAnimationOptions::_button_action);
-// ObjectTypeDB::bind_method("_changedp",&EditorImportAnimationOptions::_changedp);
+ ClassDB::bind_method("_changed",&EditorImportAnimationOptions::_changed);
+ ClassDB::bind_method("_item_edited",&EditorImportAnimationOptions::_item_edited);
+ ClassDB::bind_method("_button_action",&EditorImportAnimationOptions::_button_action);
+ //ClassDB::bind_method("_changedp",&EditorImportAnimationOptions::_changedp);
ADD_SIGNAL(MethodInfo("changed"));
}
@@ -390,7 +391,7 @@ void EditorImportAnimationOptions::_notification(int p_what) {
flags->connect("item_edited",this,"_changed");
clips_tree->connect("item_edited",this,"_item_edited");
clips_tree->connect("button_pressed",this,"_button_action",varray(),CONNECT_DEFERRED);
-// format->connect("item_selected",this,"_changedp");
+ //format->connect("item_selected",this,"_changedp");
}
}
@@ -659,7 +660,7 @@ void EditorSceneImportDialog::_choose_file(const String& p_path) {
import_path->set_text(p_path);
if (root_node_name->get_text().size()==0){
- root_node_name->set_text(import_path->get_text().get_file().basename());
+ root_node_name->set_text(import_path->get_text().get_file().get_basename());
}
}
@@ -670,9 +671,9 @@ void EditorSceneImportDialog::_choose_save_file(const String& p_path) {
void EditorSceneImportDialog::_choose_script(const String& p_path) {
- String p = Globals::get_singleton()->localize_path(p_path);
+ String p = GlobalConfig::get_singleton()->localize_path(p_path);
if (!p.is_resource_file())
- p=Globals::get_singleton()->get_resource_path().path_to(p_path.get_base_dir())+p_path.get_file();
+ p=GlobalConfig::get_singleton()->get_resource_path().path_to(p_path.get_base_dir())+p_path.get_file();
script_path->set_text(p);
}
@@ -725,7 +726,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
if (texture_action->get_selected()==0)
dst_path=save_path->get_text();//.get_base_dir();
else
- dst_path=Globals::get_singleton()->get("import/shared_textures");
+ dst_path=GlobalConfig::get_singleton()->get("import/shared_textures");
uint32_t flags=0;
@@ -763,7 +764,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
// Scenes should always be imported as binary format since vertex data is large and would take
// up a lot of space and time to load if imported as text format (GH-5778)
- String save_file = save_path->get_text().plus_file(import_path->get_text().get_file().basename()+".scn");
+ String save_file = save_path->get_text().plus_file(import_path->get_text().get_file().get_basename()+".scn");
print_line("Saving to: "+save_file);
@@ -794,7 +795,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
rim->set_option("root_type",root_type->get_text());
}
if (root_node_name->get_text().size()==0) {
- root_node_name->set_text(import_path->get_text().get_file().basename());
+ root_node_name->set_text(import_path->get_text().get_file().get_basename());
}
rim->set_option("root_name",root_node_name->get_text());
@@ -894,9 +895,9 @@ void EditorSceneImportDialog::_browse() {
void EditorSceneImportDialog::_browse_target() {
+ save_select->popup_centered_ratio();
if (save_path->get_text()!="")
save_select->set_current_path(save_path->get_text());
- save_select->popup_centered_ratio();
}
@@ -1058,19 +1059,19 @@ void EditorSceneImportDialog::_set_root_type() {
void EditorSceneImportDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_choose_file",&EditorSceneImportDialog::_choose_file);
- ObjectTypeDB::bind_method("_choose_save_file",&EditorSceneImportDialog::_choose_save_file);
- ObjectTypeDB::bind_method("_choose_script",&EditorSceneImportDialog::_choose_script);
- ObjectTypeDB::bind_method("_import",&EditorSceneImportDialog::_import,DEFVAL(false));
- ObjectTypeDB::bind_method("_browse",&EditorSceneImportDialog::_browse);
- ObjectTypeDB::bind_method("_browse_target",&EditorSceneImportDialog::_browse_target);
- ObjectTypeDB::bind_method("_browse_script",&EditorSceneImportDialog::_browse_script);
- ObjectTypeDB::bind_method("_dialog_hid",&EditorSceneImportDialog::_dialog_hid);
- ObjectTypeDB::bind_method("_import_confirm",&EditorSceneImportDialog::_import_confirm);
- ObjectTypeDB::bind_method("_open_and_import",&EditorSceneImportDialog::_open_and_import);
- ObjectTypeDB::bind_method("_root_default_pressed",&EditorSceneImportDialog::_root_default_pressed);
- ObjectTypeDB::bind_method("_root_type_pressed",&EditorSceneImportDialog::_root_type_pressed);
- ObjectTypeDB::bind_method("_set_root_type",&EditorSceneImportDialog::_set_root_type);
+ ClassDB::bind_method("_choose_file",&EditorSceneImportDialog::_choose_file);
+ ClassDB::bind_method("_choose_save_file",&EditorSceneImportDialog::_choose_save_file);
+ ClassDB::bind_method("_choose_script",&EditorSceneImportDialog::_choose_script);
+ ClassDB::bind_method("_import",&EditorSceneImportDialog::_import,DEFVAL(false));
+ ClassDB::bind_method("_browse",&EditorSceneImportDialog::_browse);
+ ClassDB::bind_method("_browse_target",&EditorSceneImportDialog::_browse_target);
+ ClassDB::bind_method("_browse_script",&EditorSceneImportDialog::_browse_script);
+ ClassDB::bind_method("_dialog_hid",&EditorSceneImportDialog::_dialog_hid);
+ ClassDB::bind_method("_import_confirm",&EditorSceneImportDialog::_import_confirm);
+ ClassDB::bind_method("_open_and_import",&EditorSceneImportDialog::_open_and_import);
+ ClassDB::bind_method("_root_default_pressed",&EditorSceneImportDialog::_root_default_pressed);
+ ClassDB::bind_method("_root_type_pressed",&EditorSceneImportDialog::_root_type_pressed);
+ ClassDB::bind_method("_set_root_type",&EditorSceneImportDialog::_set_root_type);
ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
@@ -1115,7 +1116,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce
set_title(TTR("Import 3D Scene"));
HBoxContainer *import_hb = memnew( HBoxContainer );
add_child(import_hb);
- set_child_rect(import_hb);
+ //set_child_rect(import_hb);
VBoxContainer *vbc = memnew( VBoxContainer );
import_hb->add_child(vbc);
@@ -1237,7 +1238,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce
error_dialog = memnew ( ConfirmationDialog );
add_child(error_dialog);
error_dialog->get_ok()->set_text(TTR("Accept"));
-// error_dialog->get_cancel()->hide();
+ //error_dialog->get_cancel()->hide();
HBoxContainer *custom_root_hb = memnew( HBoxContainer );
@@ -1275,7 +1276,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce
set_hide_on_ok(false);
GLOBAL_DEF("import/shared_textures","res://");
- Globals::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR));
+ GlobalConfig::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR));
import_hb->add_constant_override("separation",30);
@@ -1302,7 +1303,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce
add_child(confirm_import);
VBoxContainer *cvb = memnew( VBoxContainer );
confirm_import->add_child(cvb);
- confirm_import->set_child_rect(cvb);
+ //confirm_import->set_child_rect(cvb);
PanelContainer *pc = memnew( PanelContainer );
pc->add_style_override("panel",get_stylebox("normal","TextEdit"));
@@ -1394,7 +1395,7 @@ void EditorSceneImportPlugin::_find_resources(const Variant& p_var, Map<Ref<Imag
Ref<Resource> res = p_var;
if (res.is_valid()) {
- if (res->is_type("Texture") && !image_map.has(res)) {
+ if (res->is_class("Texture") && !image_map.has(res)) {
image_map.insert(res,TEXTURE_ROLE_DEFAULT);
@@ -1407,7 +1408,7 @@ void EditorSceneImportPlugin::_find_resources(const Variant& p_var, Map<Ref<Imag
for(List<PropertyInfo>::Element *E=pl.front();E;E=E->next()) {
if (E->get().type==Variant::OBJECT || E->get().type==Variant::ARRAY || E->get().type==Variant::DICTIONARY) {
- if (E->get().type==Variant::OBJECT && res->cast_to<FixedMaterial>() && (E->get().name=="textures/diffuse" || E->get().name=="textures/detail" || E->get().name=="textures/emission")) {
+ if (E->get().type==Variant::OBJECT && res->cast_to<FixedSpatialMaterial>() && (E->get().name=="textures/diffuse" || E->get().name=="textures/detail" || E->get().name=="textures/emission")) {
Ref<ImageTexture> tex =res->get(E->get().name);
if (tex.is_valid()) {
@@ -1415,14 +1416,16 @@ void EditorSceneImportPlugin::_find_resources(const Variant& p_var, Map<Ref<Imag
image_map.insert(tex,TEXTURE_ROLE_DIFFUSE);
}
- } else if (E->get().type==Variant::OBJECT && res->cast_to<FixedMaterial>() && (E->get().name=="textures/normal")) {
+ } else if (E->get().type==Variant::OBJECT && res->cast_to<FixedSpatialMaterial>() && (E->get().name=="textures/normal")) {
Ref<ImageTexture> tex =res->get(E->get().name);
if (tex.is_valid()) {
image_map.insert(tex,TEXTURE_ROLE_NORMALMAP);
+ /*
if (p_flags&SCENE_FLAG_CONVERT_NORMALMAPS_TO_XY)
- res->cast_to<FixedMaterial>()->set_fixed_flag(FixedMaterial::FLAG_USE_XY_NORMALMAP,true);
+ res->cast_to<FixedSpatialMaterial>()->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_XY_NORMALMAP,true);
+ */
}
@@ -1529,12 +1532,12 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
Ref<Mesh> m = mi->get_mesh();
for(int i=0;i<m->get_surface_count();i++) {
- Ref<FixedMaterial> fm = m->surface_get_material(i);
+ Ref<FixedSpatialMaterial> fm = m->surface_get_material(i);
if (fm.is_valid()) {
- fm->set_flag(Material::FLAG_UNSHADED,true);
- fm->set_flag(Material::FLAG_DOUBLE_SIDED,true);
- fm->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
- fm->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true);
+ //fm->set_flag(Material::FLAG_UNSHADED,true);
+ //fm->set_flag(Material::FLAG_DOUBLE_SIDED,true);
+ //fm->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
+ //fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true);
}
}
}
@@ -1552,23 +1555,23 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
for(int i=0;i<m->get_surface_count();i++) {
- Ref<FixedMaterial> mat = m->surface_get_material(i);
+ Ref<FixedSpatialMaterial> mat = m->surface_get_material(i);
if (!mat.is_valid())
continue;
if (p_flags&SCENE_FLAG_DETECT_ALPHA && _teststr(mat->get_name(),"alpha")) {
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true);
- mat->set_name(_fixstr(mat->get_name(),"alpha"));
+ //mat->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true);
+ //mat->set_name(_fixstr(mat->get_name(),"alpha"));
}
if (p_flags&SCENE_FLAG_DETECT_VCOLOR && _teststr(mat->get_name(),"vcol")) {
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY,true);
- mat->set_name(_fixstr(mat->get_name(),"vcol"));
+ //mat->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_COLOR_ARRAY,true);
+ //mat->set_name(_fixstr(mat->get_name(),"vcol"));
}
if (p_flags&SCENE_FLAG_SET_LIGHTMAP_TO_UV2_IF_EXISTS && m->surface_get_format(i)&Mesh::ARRAY_FORMAT_TEX_UV2) {
- mat->set_flag(Material::FLAG_LIGHTMAP_ON_UV2,true);
+ //mat->set_flag(Material::FLAG_LIGHTMAP_ON_UV2,true);
}
}
@@ -1627,23 +1630,23 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
float dist = d.to_double();
mi->set_flag(GeometryInstance::FLAG_BILLBOARD,true);
mi->set_flag(GeometryInstance::FLAG_BILLBOARD_FIX_Y,true);
- mi->set_draw_range_begin(dist);
- mi->set_draw_range_end(100000);
+ //mi->set_draw_range_begin(dist);
+ //mi->set_draw_range_end(100000);
- mip->set_draw_range_begin(0);
- mip->set_draw_range_end(dist);
+ //mip->set_draw_range_begin(0);
+ //mip->set_draw_range_end(dist);
if (mi->get_mesh().is_valid()) {
Ref<Mesh> m = mi->get_mesh();
for(int i=0;i<m->get_surface_count();i++) {
- Ref<FixedMaterial> fm = m->surface_get_material(i);
+ Ref<FixedSpatialMaterial> fm = m->surface_get_material(i);
if (fm.is_valid()) {
- fm->set_flag(Material::FLAG_UNSHADED,true);
- fm->set_flag(Material::FLAG_DOUBLE_SIDED,true);
- fm->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
- fm->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true);
+ //fm->set_flag(Material::FLAG_UNSHADED,true);
+ //fm->set_flag(Material::FLAG_DOUBLE_SIDED,true);
+ //fm->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
+ //fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true);
}
}
}
@@ -1675,23 +1678,23 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
d=d.substr(1,d.length());
if (d.length() && d[0]>='0' && d[0]<='9') {
float dist = d.to_double();
- mi->set_draw_range_begin(dist);
- mi->set_draw_range_end(100000);
+ /// mi->set_draw_range_begin(dist);
+ // mi->set_draw_range_end(100000);
- mip->set_draw_range_begin(0);
- mip->set_draw_range_end(dist);
+ // mip->set_draw_range_begin(0);
+ // mip->set_draw_range_end(dist);
/*if (mi->get_mesh().is_valid()) {
Ref<Mesh> m = mi->get_mesh();
for(int i=0;i<m->get_surface_count();i++) {
- Ref<FixedMaterial> fm = m->surface_get_material(i);
+ Ref<FixedSpatialMaterial> fm = m->surface_get_material(i);
if (fm.is_valid()) {
fm->set_flag(Material::FLAG_UNSHADED,true);
fm->set_flag(Material::FLAG_DOUBLE_SIDED,true);
fm->set_hint(Material::HINT_NO_DEPTH_DRAW,true);
- fm->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true);
+ fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true);
}
}
}*/
@@ -1707,7 +1710,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
String str=name;
int layer = str.substr(str.find("lm")+3,str.length()).to_int();
- mi->set_baked_light_texture_id(layer);
+ //mi->set_baked_light_texture_id(layer);
}
if (p_flags&SCENE_FLAG_CREATE_COLLISIONS && _teststr(name,"colonly")) {
@@ -1773,7 +1776,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
// get mesh instance and bounding box
MeshInstance *mi = p_node->cast_to<MeshInstance>();
- AABB aabb = mi->get_aabb();
+ Rect3 aabb = mi->get_aabb();
// create a new rigid body collision node
RigidBody * rigid_body = memnew( RigidBody );
@@ -1788,7 +1791,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
Node * mesh = p_node->duplicate();
mesh->set_name(_fixstr(name,"rigid"));
// reset the xform matrix of the duplicated node so it can inherit parent node xform
- mesh->cast_to<Spatial>()->set_transform(Transform(Matrix3()));
+ mesh->cast_to<Spatial>()->set_transform(Transform(Basis()));
// reparent the new mesh node to the rigid body collision node
p_node->add_child(mesh);
mesh->set_owner(p_node->get_owner());
@@ -1897,14 +1900,14 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
return p_node;
MeshInstance *mi = p_node->cast_to<MeshInstance>();
- DVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID);
+ PoolVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID);
BSP_Tree bsptree(faces);
Ref<RoomBounds> area = memnew( RoomBounds );
- area->set_bounds(faces);
- area->set_geometry_hint(faces);
+ //area->set_bounds(faces);
+ //area->set_geometry_hint(faces);
Room * room = memnew( Room );
@@ -1932,7 +1935,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
memdelete(p_node);
p_node=room;
- room->compute_room_from_subtree();
+ //room->compute_room_from_subtree();
} else if (p_flags&SCENE_FLAG_CREATE_PORTALS &&_teststr(name,"portal") && p_node->cast_to<MeshInstance>()) {
@@ -1940,7 +1943,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
return p_node;
MeshInstance *mi = p_node->cast_to<MeshInstance>();
- DVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID);
+ PoolVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID);
ERR_FAIL_COND_V(faces.size()==0,NULL);
//step 1 compute the plane
@@ -2059,18 +2062,18 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
for(int i=0;i<mesh->get_surface_count();i++) {
- Ref<FixedMaterial> fm = mesh->surface_get_material(i);
+ Ref<FixedSpatialMaterial> fm = mesh->surface_get_material(i);
if (fm.is_valid()) {
String name = fm->get_name();
- if (_teststr(name,"alpha")) {
- fm->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true);
+ /* if (_teststr(name,"alpha")) {
+ fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA,true);
name=_fixstr(name,"alpha");
}
if (_teststr(name,"vcol")) {
- fm->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY,true);
+ fm->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_COLOR_ARRAY,true);
name=_fixstr(name,"vcol");
- }
+ }*/
fm->set_name(name);
}
}
@@ -2124,7 +2127,7 @@ Error EditorSceneImportPlugin::import1(const Ref<ResourceImportMetadata>& p_from
String src_path=EditorImportPlugin::expand_source_path(from->get_source_path(0));
Ref<EditorSceneImporter> importer;
- String ext=src_path.extension().to_lower();
+ String ext=src_path.get_extension().to_lower();
EditorProgress progress("import",TTR("Import Scene"),104);
@@ -2164,14 +2167,18 @@ Error EditorSceneImportPlugin::import1(const Ref<ResourceImportMetadata>& p_from
uint32_t import_flags=0;
if (animation_flags&EditorSceneAnimationImportPlugin::ANIMATION_DETECT_LOOP)
import_flags|=EditorSceneImporter::IMPORT_ANIMATION_DETECT_LOOP;
+ if (animation_flags&EditorSceneAnimationImportPlugin::ANIMATION_KEEP_VALUE_TRACKS)
+ import_flags |= EditorSceneImporter::IMPORT_ANIMATION_KEEP_VALUE_TRACKS;
if (animation_flags&EditorSceneAnimationImportPlugin::ANIMATION_OPTIMIZE)
import_flags|=EditorSceneImporter::IMPORT_ANIMATION_OPTIMIZE;
if (animation_flags&EditorSceneAnimationImportPlugin::ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS)
import_flags|=EditorSceneImporter::IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS;
if (scene_flags&SCENE_FLAG_IMPORT_ANIMATIONS)
import_flags|=EditorSceneImporter::IMPORT_ANIMATION;
- //if (scene_flags&SCENE_FLAG_FAIL_ON_MISSING_IMAGES)
- // import_flags|=EditorSceneImporter::IMPORT_FAIL_ON_MISSING_DEPENDENCIES;
+ /*
+ if (scene_flags&SCENE_FLAG_FAIL_ON_MISSING_IMAGES)
+ import_flags|=EditorSceneImporter::IMPORT_FAIL_ON_MISSING_DEPENDENCIES;
+ */
if (scene_flags&SCENE_FLAG_GENERATE_TANGENT_ARRAYS)
import_flags|=EditorSceneImporter::IMPORT_GENERATE_TANGENT_ARRAYS;
@@ -2187,7 +2194,7 @@ Error EditorSceneImportPlugin::import1(const Ref<ResourceImportMetadata>& p_from
if (from->has_option("root_type")) {
String type = from->get_option("root_type");
- Object *base = ObjectTypeDB::instance(type);
+ Object *base = ClassDB::instance(type);
Node *base_node = NULL;
if (base)
base_node=base->cast_to<Node>();
@@ -2799,7 +2806,7 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
String path = texture->get_path();
String fname= path.get_file();
- String target_path = Globals::get_singleton()->localize_path(target_res_path.plus_file(fname));
+ String target_path = GlobalConfig::get_singleton()->localize_path(target_res_path.plus_file(fname));
progress.step(TTR("Import Image:")+" "+fname,3+(idx)*100/imagemap.size());
idx++;
@@ -2819,7 +2826,7 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
{
- target_path=target_path.basename()+".tex";
+ target_path=target_path.get_basename()+".tex";
Ref<ResourceImportMetadata> imd = memnew( ResourceImportMetadata );
@@ -2934,7 +2941,7 @@ void EditorSceneImportPlugin::import_from_drop(const Vector<String>& p_drop,cons
//bool warn_compatible=false;
for(int i=0;i<p_drop.size();i++) {
- String extension = p_drop[i].extension().to_lower();
+ String extension = p_drop[i].get_extension().to_lower();
for(List<String>::Element *E=extensions.front();E;E=E->next()) {
diff --git a/tools/editor/io_plugins/editor_scene_import_plugin.h b/tools/editor/io_plugins/editor_scene_import_plugin.h
index c31d3a33d3..61153e3654 100644
--- a/tools/editor/io_plugins/editor_scene_import_plugin.h
+++ b/tools/editor/io_plugins/editor_scene_import_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -51,7 +51,7 @@ class EditorSceneImportDialog;
class EditorSceneImporter : public Reference {
- OBJ_TYPE(EditorSceneImporter,Reference );
+ GDCLASS(EditorSceneImporter,Reference );
public:
enum ImportFlags {
@@ -60,6 +60,7 @@ public:
IMPORT_ANIMATION_DETECT_LOOP=4,
IMPORT_ANIMATION_OPTIMIZE=8,
IMPORT_ANIMATION_FORCE_ALL_TRACKS_IN_ALL_CLIPS=16,
+ IMPORT_ANIMATION_KEEP_VALUE_TRACKS=32,
IMPORT_GENERATE_TANGENT_ARRAYS=256,
IMPORT_FAIL_ON_MISSING_DEPENDENCIES=512
@@ -82,7 +83,7 @@ public:
class EditorScenePostImport : public Reference {
- OBJ_TYPE(EditorScenePostImport,Reference );
+ GDCLASS(EditorScenePostImport,Reference );
protected:
static void _bind_methods();
@@ -95,7 +96,7 @@ public:
class EditorSceneImportPlugin : public EditorImportPlugin {
- OBJ_TYPE(EditorSceneImportPlugin,EditorImportPlugin);
+ GDCLASS(EditorSceneImportPlugin,EditorImportPlugin);
EditorSceneImportDialog *dialog;
@@ -173,7 +174,7 @@ public:
class EditorSceneAnimationImportPlugin : public EditorImportPlugin {
- OBJ_TYPE(EditorSceneAnimationImportPlugin,EditorImportPlugin);
+ GDCLASS(EditorSceneAnimationImportPlugin,EditorImportPlugin);
public:
diff --git a/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp b/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
index ac3c4637c2..af12d85650 100644
--- a/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
+++ b/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,13 +27,14 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_scene_importer_fbxconv.h"
+
#include "os/file_access.h"
#include "os/os.h"
#include "tools/editor/editor_settings.h"
#include "scene/3d/mesh_instance.h"
#include "scene/animation/animation_player.h"
-
+#if 0
String EditorSceneImporterFBXConv::_id(const String& p_id) const {
return p_id.replace(":","_").replace("/","_");
@@ -336,7 +337,7 @@ void EditorSceneImporterFBXConv::_add_surface(State& state,Ref<Mesh>& m,const Di
int idx = m->get_surface_count();
Array array = state.surface_cache[id].array;
- DVector<float> indices = array[Mesh::ARRAY_BONES];
+ PoolVector<float> indices = array[Mesh::ARRAY_BONES];
if (indices.size() && part.has("bones")) {
@@ -361,7 +362,7 @@ void EditorSceneImporterFBXConv::_add_surface(State& state,Ref<Mesh>& m,const Di
int ilen=indices.size();
{
- DVector<float>::Write iw=indices.write();
+ PoolVector<float>::Write iw=indices.write();
for(int j=0;j<ilen;j++) {
int b = iw[j];
ERR_CONTINUE(!index_map.has(b));
@@ -482,29 +483,29 @@ void EditorSceneImporterFBXConv::_parse_materials(State& state) {
ERR_CONTINUE(!material.has("id"));
String id = _id(material["id"]);
- Ref<FixedMaterial> mat = memnew( FixedMaterial );
+ Ref<FixedSpatialMaterial> mat = memnew( FixedSpatialMaterial );
if (material.has("diffuse")) {
- mat->set_parameter(FixedMaterial::PARAM_DIFFUSE,_get_color(material["diffuse"]));
+ mat->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,_get_color(material["diffuse"]));
}
if (material.has("specular")) {
- mat->set_parameter(FixedMaterial::PARAM_SPECULAR,_get_color(material["specular"]));
+ mat->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR,_get_color(material["specular"]));
}
if (material.has("emissive")) {
- mat->set_parameter(FixedMaterial::PARAM_EMISSION,_get_color(material["emissive"]));
+ mat->set_parameter(FixedSpatialMaterial::PARAM_EMISSION,_get_color(material["emissive"]));
}
if (material.has("shininess")) {
float exp = material["shininess"];
- mat->set_parameter(FixedMaterial::PARAM_SPECULAR_EXP,exp);
+ mat->set_parameter(FixedSpatialMaterial::PARAM_SPECULAR_EXP,exp);
}
if (material.has("opacity")) {
- Color c = mat->get_parameter(FixedMaterial::PARAM_DIFFUSE);
+ Color c = mat->get_parameter(FixedSpatialMaterial::PARAM_DIFFUSE);
c.a=material["opacity"];
- mat->set_parameter(FixedMaterial::PARAM_DIFFUSE,c);
+ mat->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,c);
}
@@ -536,15 +537,15 @@ void EditorSceneImporterFBXConv::_parse_materials(State& state) {
String type=texture["type"];
if (type=="DIFFUSE")
- mat->set_texture(FixedMaterial::PARAM_DIFFUSE,tex);
+ mat->set_texture(FixedSpatialMaterial::PARAM_DIFFUSE,tex);
else if (type=="SPECULAR")
- mat->set_texture(FixedMaterial::PARAM_SPECULAR,tex);
+ mat->set_texture(FixedSpatialMaterial::PARAM_SPECULAR,tex);
else if (type=="SHININESS")
- mat->set_texture(FixedMaterial::PARAM_SPECULAR_EXP,tex);
+ mat->set_texture(FixedSpatialMaterial::PARAM_SPECULAR_EXP,tex);
else if (type=="NORMAL")
- mat->set_texture(FixedMaterial::PARAM_NORMAL,tex);
+ mat->set_texture(FixedSpatialMaterial::PARAM_NORMAL,tex);
else if (type=="EMISSIVE")
- mat->set_texture(FixedMaterial::PARAM_EMISSION,tex);
+ mat->set_texture(FixedSpatialMaterial::PARAM_EMISSION,tex);
}
}
@@ -680,11 +681,11 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
case Mesh::ARRAY_VERTEX:
case Mesh::ARRAY_NORMAL: {
- DVector<Vector3> vtx;
+ PoolVector<Vector3> vtx;
vtx.resize(array.size());
{
int len=array.size();
- DVector<Vector3>::Write w = vtx.write();
+ PoolVector<Vector3>::Write w = vtx.write();
for(int l=0;l<len;l++) {
int pos = array[l];
@@ -701,12 +702,12 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
if (binormal_ofs<0)
break;
- DVector<float> tangents;
+ PoolVector<float> tangents;
tangents.resize(array.size()*4);
{
int len=array.size();
- DVector<float>::Write w = tangents.write();
+ PoolVector<float>::Write w = tangents.write();
for(int l=0;l<len;l++) {
int pos = array[l];
@@ -736,11 +737,11 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
} break;
case Mesh::ARRAY_COLOR: {
- DVector<Color> cols;
+ PoolVector<Color> cols;
cols.resize(array.size());
{
int len=array.size();
- DVector<Color>::Write w = cols.write();
+ PoolVector<Color>::Write w = cols.write();
for(int l=0;l<len;l++) {
int pos = array[l];
@@ -756,11 +757,11 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
case Mesh::ARRAY_TEX_UV:
case Mesh::ARRAY_TEX_UV2: {
- DVector<Vector2> uvs;
+ PoolVector<Vector2> uvs;
uvs.resize(array.size());
{
int len=array.size();
- DVector<Vector2>::Write w = uvs.write();
+ PoolVector<Vector2>::Write w = uvs.write();
for(int l=0;l<len;l++) {
int pos = array[l];
@@ -775,14 +776,14 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
case Mesh::ARRAY_BONES:
case Mesh::ARRAY_WEIGHTS: {
- DVector<float> arr;
+ PoolVector<float> arr;
arr.resize(array.size()*4);
int po=k==Mesh::ARRAY_WEIGHTS?1:0;
lofs=ofs[Mesh::ARRAY_BONES];
{
int len=array.size();
- DVector<float>::Write w = arr.write();
+ PoolVector<float>::Write w = arr.write();
for(int l=0;l<len;l++) {
int pos = array[l];
@@ -801,12 +802,12 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
} break;
case Mesh::ARRAY_INDEX: {
- DVector<int> arr;
+ PoolVector<int> arr;
arr.resize(indices.size());
{
int len=indices.size();
- DVector<int>::Write w = arr.write();
+ PoolVector<int>::Write w = arr.write();
for(int l=0;l<len;l++) {
w[l]=iarray[ indices[l] ];
@@ -838,10 +839,10 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
}
if (pt==Mesh::PRIMITIVE_TRIANGLES) {
- DVector<int> ia=arrays[Mesh::ARRAY_INDEX];
+ PoolVector<int> ia=arrays[Mesh::ARRAY_INDEX];
int len=ia.size();
{
- DVector<int>::Write w=ia.write();
+ PoolVector<int>::Write w=ia.write();
for(int l=0;l<len;l+=3) {
SWAP(w[l+1],w[l+2]);
}
@@ -1132,3 +1133,4 @@ EditorSceneImporterFBXConv::EditorSceneImporterFBXConv() {
#endif
}
+#endif
diff --git a/tools/editor/io_plugins/editor_scene_importer_fbxconv.h b/tools/editor/io_plugins/editor_scene_importer_fbxconv.h
index b0cbc07ba3..1bf96ba0e5 100644
--- a/tools/editor/io_plugins/editor_scene_importer_fbxconv.h
+++ b/tools/editor/io_plugins/editor_scene_importer_fbxconv.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,10 +32,11 @@
#include "tools/editor/io_plugins/editor_scene_import_plugin.h"
#include "scene/3d/skeleton.h"
+#if 0
class EditorSceneImporterFBXConv : public EditorSceneImporter {
- OBJ_TYPE(EditorSceneImporterFBXConv,EditorSceneImporter );
+ GDCLASS(EditorSceneImporterFBXConv,EditorSceneImporter );
struct BoneInfo {
@@ -107,3 +108,4 @@ public:
};
#endif // EDITOR_SCENE_IMPORTER_FBXCONV_H
+#endif
diff --git a/tools/editor/io_plugins/editor_texture_import_plugin.cpp b/tools/editor/io_plugins/editor_texture_import_plugin.cpp
index 2935ea8fe2..8e1bcb8e4b 100644
--- a/tools/editor/io_plugins/editor_texture_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_texture_import_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_texture_import_plugin.h"
+
#include "io/image_loader.h"
#include "tools/editor/editor_node.h"
#include "io/resource_saver.h"
@@ -106,12 +107,12 @@ void EditorImportTextureOptions::set_flags(uint32_t p_flags){
void EditorImportTextureOptions::set_quality(float p_quality) {
- quality->set_val(p_quality);
+ quality->set_value(p_quality);
}
float EditorImportTextureOptions::get_quality() const {
- return quality->get_val();
+ return quality->get_value();
}
@@ -148,8 +149,8 @@ void EditorImportTextureOptions::_changed() {
void EditorImportTextureOptions::_bind_methods() {
- ObjectTypeDB::bind_method("_changed",&EditorImportTextureOptions::_changed);
- ObjectTypeDB::bind_method("_changedp",&EditorImportTextureOptions::_changedp);
+ ClassDB::bind_method("_changed",&EditorImportTextureOptions::_changed);
+ ClassDB::bind_method("_changedp",&EditorImportTextureOptions::_changedp);
ADD_SIGNAL(MethodInfo("changed"));
}
@@ -200,7 +201,7 @@ EditorImportTextureOptions::EditorImportTextureOptions() {
hs->set_min(0);
hs->set_max(1.0);
hs->set_step(0.01);
- hs->set_val(0.7);
+ hs->set_value(0.7);
quality=hs;
quality_vb->add_margin_child(TTR("Texture Compression Quality (WebP):"),quality_hb);
@@ -236,7 +237,7 @@ EditorImportTextureOptions::EditorImportTextureOptions() {
class EditorTextureImportDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorTextureImportDialog,ConfirmationDialog);
+ GDCLASS(EditorTextureImportDialog,ConfirmationDialog);
@@ -344,7 +345,7 @@ void EditorTextureImportDialog::_choose_save_dir(const String& p_path) {
void EditorTextureImportDialog::_import() {
-// ImportMonitorBlock imb;
+ //ImportMonitorBlock imb;
Vector<String> files=import_path->get_text().split(",");
@@ -396,7 +397,7 @@ void EditorTextureImportDialog::_import() {
imd->set_option("flags",texture_options->get_flags());
imd->set_option("quality",texture_options->get_quality());
imd->set_option("atlas",true);
- imd->set_option("atlas_size",int(size->get_val()));
+ imd->set_option("atlas_size",int(size->get_value()));
imd->set_option("large",false);
imd->set_option("crop",crop_source->is_pressed());
imd->set_option("mode",mode);
@@ -430,7 +431,7 @@ void EditorTextureImportDialog::_import() {
imd->set_option("quality",texture_options->get_quality());
imd->set_option("atlas",false);
imd->set_option("large",true);
- imd->set_option("large_cell_size",int(size->get_val()));
+ imd->set_option("large_cell_size",int(size->get_value()));
imd->set_option("crop",crop_source->is_pressed());
imd->set_option("mode",mode);
@@ -448,7 +449,7 @@ void EditorTextureImportDialog::_import() {
for(int i=0;i<files.size();i++) {
String dst_file = dst_path.plus_file(files[i].get_file());
- dst_file=dst_file.basename()+".tex";
+ dst_file=dst_file.get_basename()+".tex";
Ref<ResourceImportMetadata> imd = memnew( ResourceImportMetadata );
//imd->set_editor();
imd->add_source(EditorImportPlugin::validate_source_path(files[i]));
@@ -539,7 +540,7 @@ void EditorTextureImportDialog::_notification(int p_what) {
List<String> extensions;
ImageLoader::get_recognized_extensions(&extensions);
- // ResourceLoader::get_recognized_extensions_for_type("PackedTexture",&extensions);
+ //ResourceLoader::get_recognized_extensions_for_type("PackedTexture",&extensions);
file_select->clear_filters();
for(int i=0;i<extensions.size();i++) {
@@ -569,7 +570,7 @@ void EditorTextureImportDialog::_mode_changed(int p_mode) {
if (p_mode==EditorTextureImportPlugin::MODE_ATLAS) {
size_label->set_text(TTR("Max Texture Size:"));
- size->set_val(2048);
+ size->set_value(2048);
crop_source->show();
size_label->show();
size->show();
@@ -587,7 +588,7 @@ void EditorTextureImportDialog::_mode_changed(int p_mode) {
if (p_mode==EditorTextureImportPlugin::MODE_LARGE) {
size_label->set_text(TTR("Cell Size:"));
- size->set_val(256);
+ size->set_value(256);
size_label->show();
size->show();
@@ -636,14 +637,14 @@ void EditorTextureImportDialog::_mode_changed(int p_mode) {
void EditorTextureImportDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_choose_files",&EditorTextureImportDialog::_choose_files);
- ObjectTypeDB::bind_method("_choose_file",&EditorTextureImportDialog::_choose_file);
- ObjectTypeDB::bind_method("_choose_save_dir",&EditorTextureImportDialog::_choose_save_dir);
- ObjectTypeDB::bind_method("_import",&EditorTextureImportDialog::_import);
- ObjectTypeDB::bind_method("_browse",&EditorTextureImportDialog::_browse);
- ObjectTypeDB::bind_method("_browse_target",&EditorTextureImportDialog::_browse_target);
- ObjectTypeDB::bind_method("_mode_changed",&EditorTextureImportDialog::_mode_changed);
-// ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
+ ClassDB::bind_method("_choose_files",&EditorTextureImportDialog::_choose_files);
+ ClassDB::bind_method("_choose_file",&EditorTextureImportDialog::_choose_file);
+ ClassDB::bind_method("_choose_save_dir",&EditorTextureImportDialog::_choose_save_dir);
+ ClassDB::bind_method("_import",&EditorTextureImportDialog::_import);
+ ClassDB::bind_method("_browse",&EditorTextureImportDialog::_browse);
+ ClassDB::bind_method("_browse_target",&EditorTextureImportDialog::_browse_target);
+ ClassDB::bind_method("_mode_changed",&EditorTextureImportDialog::_mode_changed);
+ //ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
}
EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin* p_plugin) {
@@ -657,14 +658,14 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
mode_hb = memnew( HBoxContainer );
add_child(mode_hb);
- set_child_rect(mode_hb);
+ //set_child_rect(mode_hb);
VBoxContainer *vbcg = memnew( VBoxContainer);
mode_hb->add_child(vbcg);
mode_hb->add_constant_override("separation",15);
- ButtonGroup *bg = memnew( ButtonGroup );
+ VBoxContainer *bg = memnew( VBoxContainer );
vbcg->add_margin_child("Import Mode",bg);
for(int i=0;i<EditorTextureImportPlugin::MODE_MAX;i++) {
@@ -727,7 +728,7 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
size->set_max(16384);
- size->set_val(256);
+ size->set_value(256);
size_mc=vbc->add_margin_child(TTR("Cell Size:"),size);
size_label=vbc->get_child(size_mc->get_index()-1)->cast_to<Label>();
@@ -760,32 +761,34 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
save_select = memnew( EditorDirDialog );
add_child(save_select);
-// save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
+ //save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
save_select->connect("dir_selected", this,"_choose_save_dir");
get_ok()->connect("pressed", this,"_import");
get_ok()->set_text(TTR("Import"));
//move stuff up
- //for(int i=0;i<4;i++)
- // vbc->move_child( vbc->get_child( vbc->get_child_count() -1), 0);
+ /*
+ for(int i=0;i<4;i++)
+ vbc->move_child( vbc->get_child( vbc->get_child_count() -1), 0);
+ */
error_dialog = memnew ( ConfirmationDialog );
add_child(error_dialog);
error_dialog->get_ok()->set_text(TTR("Accept"));
-// error_dialog->get_cancel()->hide();
+ //error_dialog->get_cancel()->hide();
set_hide_on_ok(false);
- texture_options = memnew( EditorImportTextureOptions );;
+ texture_options = memnew( EditorImportTextureOptions );
vbc->add_child(texture_options);
texture_options->set_v_size_flags(SIZE_EXPAND_FILL);
_mode_changed(EditorTextureImportPlugin::MODE_TEXTURE_3D);
-// GLOBAL_DEF("import/shared_textures","res://");
-// Globals::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR));
+ //GLOBAL_DEF("import/shared_textures","res://");
+ //Globals::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR));
}
@@ -843,33 +846,27 @@ void EditorTextureImportPlugin::compress_image(EditorExportPlatform::ImageCompre
//do absolutely nothing
- } break;
- case EditorExportPlatform::IMAGE_COMPRESSION_INDEXED: {
-
- //quantize
- image.quantize();
-
- } break;
+ } break;
case EditorExportPlatform::IMAGE_COMPRESSION_BC: {
// for maximum compatibility, BC shall always use mipmaps and be PO2
image.resize_to_po2();
- if (image.get_mipmaps()==0)
+ if (!image.has_mipmaps())
image.generate_mipmaps();
- image.compress(Image::COMPRESS_BC);
+ image.compress(Image::COMPRESS_S3TC);
/*
if (has_alpha) {
if (flags&IMAGE_FLAG_ALPHA_BIT) {
- image.convert(Image::FORMAT_BC3);
+ image.convert(Image::FORMAT_DXT5);
} else {
- image.convert(Image::FORMAT_BC2);
+ image.convert(Image::FORMAT_DXT3);
}
} else {
- image.convert(Image::FORMAT_BC1);
+ image.convert(Image::FORMAT_DXT1);
}*/
@@ -880,24 +877,24 @@ void EditorTextureImportPlugin::compress_image(EditorExportPlatform::ImageCompre
// for maximum compatibility (hi apple!), PVRT shall always
// use mipmaps, be PO2 and square
- if (image.get_mipmaps()==0)
+ if (!image.has_mipmaps())
image.generate_mipmaps();
image.resize_to_po2(true);
if (p_smaller) {
image.compress(Image::COMPRESS_PVRTC2);
- //image.convert(has_alpha ? Image::FORMAT_PVRTC2_ALPHA : Image::FORMAT_PVRTC2);
+ //image.convert(has_alpha ? Image::FORMAT_PVRTC2A : Image::FORMAT_PVRTC2);
} else {
image.compress(Image::COMPRESS_PVRTC4);
- //image.convert(has_alpha ? Image::FORMAT_PVRTC4_ALPHA : Image::FORMAT_PVRTC4);
+ //image.convert(has_alpha ? Image::FORMAT_PVRTC4A : Image::FORMAT_PVRTC4);
}
} break;
case EditorExportPlatform::IMAGE_COMPRESSION_ETC1: {
image.resize_to_po2(); //square or not?
- if (image.get_mipmaps()==0)
+ if (!image.has_mipmaps())
image.generate_mipmaps();
if (!image.detect_alpha()) {
//ETC1 is only opaque
@@ -930,18 +927,18 @@ Error EditorTextureImportPlugin::_process_texture_data(Ref<ImageTexture> &textur
ERR_FAIL_COND_V(image.empty(),ERR_INVALID_DATA);
bool has_alpha=image.detect_alpha();
- if (!has_alpha && image.get_format()==Image::FORMAT_RGBA) {
+ if (!has_alpha && image.get_format()==Image::FORMAT_RGBA8) {
- image.convert(Image::FORMAT_RGB);
+ image.convert(Image::FORMAT_RGB8);
}
- if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) {
+ if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) {
image.fix_alpha_edges();
}
- if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_PREMULT_ALPHA) {
+ if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_PREMULT_ALPHA) {
image.premultiply_alpha();
}
@@ -950,10 +947,12 @@ Error EditorTextureImportPlugin::_process_texture_data(Ref<ImageTexture> &textur
image.normalmap_to_xy();
}
- //if ((image.get_format()==Image::FORMAT_RGB || image.get_format()==Image::FORMAT_RGBA) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) {
+ /*
+ if ((image.get_format()==Image::FORMAT_RGB8 || image.get_format()==Image::FORMAT_RGBA8) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) {
- // image.srgb_to_linear();
- //}
+ image.srgb_to_linear();
+ }
+ */
if (shrink>1) {
@@ -989,18 +988,18 @@ Error EditorTextureImportPlugin::_process_texture_data(Ref<ImageTexture> &textur
bool has_alpha=image.detect_alpha();
- if (!has_alpha && image.get_format()==Image::FORMAT_RGBA) {
+ if (!has_alpha && image.get_format()==Image::FORMAT_RGBA8) {
- image.convert(Image::FORMAT_RGB);
+ image.convert(Image::FORMAT_RGB8);
}
- if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) {
+ if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) {
image.fix_alpha_edges();
}
- if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_PREMULT_ALPHA) {
+ if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_PREMULT_ALPHA) {
image.premultiply_alpha();
}
@@ -1009,11 +1008,13 @@ Error EditorTextureImportPlugin::_process_texture_data(Ref<ImageTexture> &textur
image.normalmap_to_xy();
}
- //if ((image.get_format()==Image::FORMAT_RGB || image.get_format()==Image::FORMAT_RGBA) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) {
-//
- // print_line("CONVERT BECAUSE: "+itos(flags));
- // image.srgb_to_linear();
- //}
+ /*
+ if ((image.get_format()==Image::FORMAT_RGB8 || image.get_format()==Image::FORMAT_RGBA8) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) {
+
+ print_line("CONVERT BECAUSE: "+itos(flags));
+ image.srgb_to_linear();
+ }
+ */
int orig_w=image.get_width();
int orig_h=image.get_height();
@@ -1200,14 +1201,14 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
Image src = tsources[i];
if (alpha) {
- src.convert(Image::FORMAT_RGBA);
+ src.convert(Image::FORMAT_RGBA8);
} else {
- src.convert(Image::FORMAT_RGB);
+ src.convert(Image::FORMAT_RGB8);
}
- DVector<uint8_t> data = src.get_data();
+ PoolVector<uint8_t> data = src.get_data();
MD5_CTX md5;
- DVector<uint8_t>::Read r=data.read();
+ PoolVector<uint8_t>::Read r=data.read();
MD5Init(&md5);
int len=data.size();
for(int j=0;j<len;j++) {
@@ -1280,7 +1281,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
atlas_h=nearest_power_of_2(dst_size.height);
}
Image atlas;
- atlas.create(atlas_w,atlas_h,0,alpha?Image::FORMAT_RGBA:Image::FORMAT_RGB);
+ atlas.create(atlas_w,atlas_h,0,alpha?Image::FORMAT_RGBA8:Image::FORMAT_RGB8);
atlases.resize(from->get_source_count());
@@ -1313,9 +1314,9 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
String spath = from->get_source_path(E->get()).get_file();
if (p_external) {
- apath = p_path.get_base_dir().plus_file(spath.basename()+"."+from->get_source_path(E->get()).md5_text()+".atex");
+ apath = p_path.get_base_dir().plus_file(spath.get_basename()+"."+from->get_source_path(E->get()).md5_text()+".atex");
} else {
- apath = p_path.get_base_dir().plus_file(spath.basename()+".atex");
+ apath = p_path.get_base_dir().plus_file(spath.get_basename()+".atex");
}
Ref<AtlasTexture> at;
@@ -1378,7 +1379,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
if (p_external) {
//used by exporter
- Array rects(true);
+ Array rects;
for(int i=0;i<atlases.size();i++) {
rects.push_back(atlases[i]->get_region());
rects.push_back(atlases[i]->get_margin());
@@ -1411,18 +1412,18 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
ERR_FAIL_COND_V(image.empty(),ERR_INVALID_DATA);
bool has_alpha=image.detect_alpha();
- if (!has_alpha && image.get_format()==Image::FORMAT_RGBA) {
+ if (!has_alpha && image.get_format()==Image::FORMAT_RGBA8) {
- image.convert(Image::FORMAT_RGB);
+ image.convert(Image::FORMAT_RGB8);
}
- if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) {
+ if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) {
image.fix_alpha_edges();
}
- if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_PREMULT_ALPHA) {
+ if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_PREMULT_ALPHA) {
image.premultiply_alpha();
}
@@ -1431,10 +1432,12 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
image.normalmap_to_xy();
}
- //if ((image.get_format()==Image::FORMAT_RGB || image.get_format()==Image::FORMAT_RGBA) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) {
+ /*
+ if ((image.get_format()==Image::FORMAT_RGB8 || image.get_format()==Image::FORMAT_RGBA8) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) {
- // image.srgb_to_linear();
- //}
+ image.srgb_to_linear();
+ }
+ */
if (shrink>1) {
@@ -1470,18 +1473,18 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
bool has_alpha=image.detect_alpha();
- if (!has_alpha && image.get_format()==Image::FORMAT_RGBA) {
+ if (!has_alpha && image.get_format()==Image::FORMAT_RGBA8) {
- image.convert(Image::FORMAT_RGB);
+ image.convert(Image::FORMAT_RGB8);
}
- if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) {
+ if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_FIX_BORDER_ALPHA) {
image.fix_alpha_edges();
}
- if (image.get_format()==Image::FORMAT_RGBA && flags&IMAGE_FLAG_PREMULT_ALPHA) {
+ if (image.get_format()==Image::FORMAT_RGBA8 && flags&IMAGE_FLAG_PREMULT_ALPHA) {
image.premultiply_alpha();
}
@@ -1490,11 +1493,13 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
image.normalmap_to_xy();
}
- //if ((image.get_format()==Image::FORMAT_RGB || image.get_format()==Image::FORMAT_RGBA) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) {
-//
- // print_line("CONVERT BECAUSE: "+itos(flags));
- // image.srgb_to_linear();
- //}
+ /*
+ if ((image.get_format()==Image::FORMAT_RGB8 || image.get_format()==Image::FORMAT_RGBA8) && flags&IMAGE_FLAG_CONVERT_TO_LINEAR) {
+
+ print_line("CONVERT BECAUSE: "+itos(flags));
+ image.srgb_to_linear();
+ }
+ */
int orig_w=image.get_width();
int orig_h=image.get_height();
@@ -1603,7 +1608,7 @@ Vector<uint8_t> EditorTextureImportPlugin::custom_export(const String& p_path, c
rimd->set_option("shrink",group_shrink);
rimd->add_source(validated_path,FileAccess::get_md5(p_path));
- } else if (EditorImportExport::get_singleton()->get_image_formats().has(p_path.extension().to_lower()) && EditorImportExport::get_singleton()->get_export_image_action()!=EditorImportExport::IMAGE_ACTION_NONE) {
+ } else if (EditorImportExport::get_singleton()->get_image_formats().has(p_path.get_extension().to_lower()) && EditorImportExport::get_singleton()->get_export_image_action()!=EditorImportExport::IMAGE_ACTION_NONE) {
//handled by general image export settings
rimd = Ref<ResourceImportMetadata>( memnew( ResourceImportMetadata ) );
@@ -1645,7 +1650,7 @@ Vector<uint8_t> EditorTextureImportPlugin::custom_export(const String& p_path, c
uint8_t f4[4];
encode_uint32(flags,&f4[0]);
MD5Init(&ctx);
- String gp = Globals::get_singleton()->globalize_path(p_path);
+ String gp = GlobalConfig::get_singleton()->globalize_path(p_path);
CharString cs = gp.utf8();
MD5Update(&ctx,(unsigned char*)cs.get_data(),cs.length());
MD5Update(&ctx,f4,4);
@@ -1749,7 +1754,7 @@ void EditorTextureImportPlugin::import_from_drop(const Vector<String>& p_drop,co
ImageLoader::get_recognized_extensions(&valid_extensions);
for(int i=0;i<p_drop.size();i++) {
- String extension=p_drop[i].extension().to_lower();
+ String extension=p_drop[i].get_extension().to_lower();
for (List<String>::Element *E=valid_extensions.front();E;E=E->next()) {
@@ -1857,21 +1862,21 @@ EditorTextureImportPlugin::EditorTextureImportPlugin(EditorNode *p_editor) {
if (pl.is_valid()) {
Vector<uint8_t> ce = pl->custom_export(p_path,p_platform);
if (ce.size()) {
- p_path=p_path.basename()+".converted.tex";
+ p_path=p_path.get_basename()+".converted.tex";
return ce;
}
}
} else if (EditorImportExport::get_singleton()->get_export_image_action()!=EditorImportExport::IMAGE_ACTION_NONE){
- String xt = p_path.extension().to_lower();
+ String xt = p_path.get_extension().to_lower();
if (EditorImportExport::get_singleton()->get_image_formats().has(xt)) { //should check for more I guess?
Ref<EditorImportPlugin> pl = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture");
if (pl.is_valid()) {
Vector<uint8_t> ce = pl->custom_export(p_path,p_platform);
if (ce.size()) {
- p_path=p_path.basename()+".converted.tex";
+ p_path=p_path.get_basename()+".converted.tex";
return ce;
}
}
diff --git a/tools/editor/io_plugins/editor_texture_import_plugin.h b/tools/editor/io_plugins/editor_texture_import_plugin.h
index 22c10a1a3a..b2117f1475 100644
--- a/tools/editor/io_plugins/editor_texture_import_plugin.h
+++ b/tools/editor/io_plugins/editor_texture_import_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -49,7 +49,7 @@ class EditorTextureImportDialog;
class EditorTextureImportPlugin : public EditorImportPlugin {
- OBJ_TYPE(EditorTextureImportPlugin,EditorImportPlugin);
+ GDCLASS(EditorTextureImportPlugin,EditorImportPlugin);
public:
@@ -119,7 +119,7 @@ public:
class EditorTextureExportPlugin : public EditorExportPlugin {
- OBJ_TYPE( EditorTextureExportPlugin, EditorExportPlugin);
+ GDCLASS( EditorTextureExportPlugin, EditorExportPlugin);
public:
@@ -130,7 +130,7 @@ public:
class EditorImportTextureOptions : public VBoxContainer {
- OBJ_TYPE( EditorImportTextureOptions, VBoxContainer );
+ GDCLASS( EditorImportTextureOptions, VBoxContainer );
OptionButton *format;
diff --git a/tools/editor/io_plugins/editor_translation_import_plugin.cpp b/tools/editor/io_plugins/editor_translation_import_plugin.cpp
index 9ee3e98486..7079120feb 100644
--- a/tools/editor/io_plugins/editor_translation_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_translation_import_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,11 +27,12 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_translation_import_plugin.h"
+
#include "scene/gui/file_dialog.h"
#include "tools/editor/editor_dir_dialog.h"
#include "tools/editor/editor_node.h"
#include "tools/editor/property_editor.h"
-#include "scene/resources/sample.h"
+//#include "scene/resources/sample.h"
#include "io/resource_saver.h"
#include "os/file_access.h"
#include "translation.h"
@@ -41,7 +42,7 @@
class EditorTranslationImportDialog : public ConfirmationDialog {
- OBJ_TYPE(EditorTranslationImportDialog,ConfirmationDialog);
+ GDCLASS(EditorTranslationImportDialog,ConfirmationDialog);
EditorTranslationImportPlugin *plugin;
@@ -255,7 +256,7 @@ public:
imd->set_option("skip_first",ignore_first->is_pressed());
imd->set_option("compress",compress->is_pressed());
- String savefile = save_path->get_text().plus_file(import_path->get_text().get_file().basename()+"."+locale+".xl");
+ String savefile = save_path->get_text().plus_file(import_path->get_text().get_file().get_basename()+"."+locale+".xl");
Error err = plugin->import(savefile,imd);
if (err!=OK) {
error_dialog->set_text(TTR("Couldn't import!"));
@@ -282,12 +283,12 @@ public:
static void _bind_methods() {
- ObjectTypeDB::bind_method("_choose_file",&EditorTranslationImportDialog::_choose_file);
- ObjectTypeDB::bind_method("_choose_save_dir",&EditorTranslationImportDialog::_choose_save_dir);
- ObjectTypeDB::bind_method("_import",&EditorTranslationImportDialog::_import);
- ObjectTypeDB::bind_method("_browse",&EditorTranslationImportDialog::_browse);
- ObjectTypeDB::bind_method("_browse_target",&EditorTranslationImportDialog::_browse_target);
- // ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
+ ClassDB::bind_method("_choose_file",&EditorTranslationImportDialog::_choose_file);
+ ClassDB::bind_method("_choose_save_dir",&EditorTranslationImportDialog::_choose_save_dir);
+ ClassDB::bind_method("_import",&EditorTranslationImportDialog::_import);
+ ClassDB::bind_method("_browse",&EditorTranslationImportDialog::_browse);
+ ClassDB::bind_method("_browse_target",&EditorTranslationImportDialog::_browse_target);
+ //ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
}
EditorTranslationImportDialog(EditorTranslationImportPlugin *p_plugin) {
@@ -299,7 +300,7 @@ public:
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
@@ -356,7 +357,7 @@ public:
save_select = memnew( EditorDirDialog );
add_child(save_select);
- // save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
+ //save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
save_select->connect("dir_selected", this,"_choose_save_dir");
get_ok()->connect("pressed", this,"_import");
@@ -366,7 +367,7 @@ public:
error_dialog = memnew ( ConfirmationDialog );
add_child(error_dialog);
error_dialog->get_ok()->set_text(TTR("Accept"));
- // error_dialog->get_cancel()->hide();
+ //error_dialog->get_cancel()->hide();
set_hide_on_ok(false);
@@ -400,7 +401,7 @@ void EditorTranslationImportPlugin::import_from_drop(const Vector<String>& p_dro
for(int i=0;i<p_drop.size();i++) {
- String ext = p_drop[i].extension().to_lower();
+ String ext = p_drop[i].get_extension().to_lower();
if (ext=="csv") {
diff --git a/tools/editor/io_plugins/editor_translation_import_plugin.h b/tools/editor/io_plugins/editor_translation_import_plugin.h
index 532f2cedcc..38727bd778 100644
--- a/tools/editor/io_plugins/editor_translation_import_plugin.h
+++ b/tools/editor/io_plugins/editor_translation_import_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,7 +37,7 @@ class EditorTranslationImportDialog;
class EditorTranslationImportPlugin : public EditorImportPlugin {
- OBJ_TYPE(EditorTranslationImportPlugin,EditorImportPlugin);
+ GDCLASS(EditorTranslationImportPlugin,EditorImportPlugin);
EditorTranslationImportDialog *dialog;
public:
diff --git a/tools/editor/multi_node_edit.cpp b/tools/editor/multi_node_edit.cpp
index e4ceaf4a8b..97a996fe48 100644
--- a/tools/editor/multi_node_edit.cpp
+++ b/tools/editor/multi_node_edit.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "multi_node_edit.h"
+
#include "editor_node.h"
bool MultiNodeEdit::_set(const StringName& p_name, const Variant& p_value){
diff --git a/tools/editor/multi_node_edit.h b/tools/editor/multi_node_edit.h
index fd50dc5bf4..290c529d48 100644
--- a/tools/editor/multi_node_edit.h
+++ b/tools/editor/multi_node_edit.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,7 +33,7 @@
class MultiNodeEdit : public Reference {
- OBJ_TYPE(MultiNodeEdit,Reference);
+ GDCLASS(MultiNodeEdit,Reference);
List<NodePath> nodes;
struct PLData {
diff --git a/tools/editor/node_dock.cpp b/tools/editor/node_dock.cpp
index fb5a50e633..3d906cf960 100644
--- a/tools/editor/node_dock.cpp
+++ b/tools/editor/node_dock.cpp
@@ -1,4 +1,33 @@
+/*************************************************************************/
+/* node_dock.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#include "node_dock.h"
+
#include "editor_node.h"
void NodeDock::show_groups() {
@@ -20,8 +49,8 @@ void NodeDock::show_connections(){
void NodeDock::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("show_groups"),&NodeDock::show_groups);
- ObjectTypeDB::bind_method(_MD("show_connections"),&NodeDock::show_connections);
+ ClassDB::bind_method(_MD("show_groups"),&NodeDock::show_groups);
+ ClassDB::bind_method(_MD("show_connections"),&NodeDock::show_connections);
}
void NodeDock::_notification(int p_what) {
diff --git a/tools/editor/node_dock.h b/tools/editor/node_dock.h
index 02312b90b5..df41ecf5bd 100644
--- a/tools/editor/node_dock.h
+++ b/tools/editor/node_dock.h
@@ -1,3 +1,31 @@
+/*************************************************************************/
+/* node_dock.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#ifndef NODE_DOCK_H
#define NODE_DOCK_H
@@ -6,7 +34,7 @@
class NodeDock : public VBoxContainer {
- OBJ_TYPE(NodeDock,VBoxContainer);
+ GDCLASS(NodeDock,VBoxContainer);
ToolButton *connections_button;
ToolButton *groups_button;
diff --git a/tools/editor/output_strings.cpp b/tools/editor/output_strings.cpp
index a6126466c4..cb43bb9230 100644
--- a/tools/editor/output_strings.cpp
+++ b/tools/editor/output_strings.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -68,7 +68,7 @@ void OutputStrings::_notification(int p_what) {
if (following) {
updating=true;
- v_scroll->set_val( v_scroll->get_max() - v_scroll->get_page() );
+ v_scroll->set_value( v_scroll->get_max() - v_scroll->get_page() );
updating=false;
}
@@ -82,11 +82,11 @@ void OutputStrings::_notification(int p_what) {
Ref<Texture> icon_error = get_icon("Error","EditorIcons");
Ref<Texture> icon_warning = get_icon("Warning","EditorIcons");
- // int lines = (size_height-(int)margin.y) / font_height;
+ //int lines = (size_height-(int)margin.y) / font_height;
Point2 ofs=tree_st->get_offset();
- LineMap::Element *E = line_map.find(v_scroll->get_val());
- float h_ofs = (int)h_scroll->get_val();
+ LineMap::Element *E = line_map.find(v_scroll->get_value());
+ float h_ofs = (int)h_scroll->get_value();
Point2 icon_ofs=Point2(0,(font_height-(int)icon_error->get_height())/2);
while( E && ofs.y < (size_height-(int)margin.y) ) {
@@ -194,8 +194,8 @@ void OutputStrings::add_line(const String& p_text, const Variant& p_meta, const
void OutputStrings::_bind_methods() {
- ObjectTypeDB::bind_method("_vscroll_changed",&OutputStrings::_vscroll_changed);
- ObjectTypeDB::bind_method("_hscroll_changed",&OutputStrings::_hscroll_changed);
+ ClassDB::bind_method("_vscroll_changed",&OutputStrings::_vscroll_changed);
+ ClassDB::bind_method("_hscroll_changed",&OutputStrings::_hscroll_changed);
}
OutputStrings::OutputStrings() {
diff --git a/tools/editor/output_strings.h b/tools/editor/output_strings.h
index 29c6ea799f..cc721ef652 100644
--- a/tools/editor/output_strings.h
+++ b/tools/editor/output_strings.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,7 +36,7 @@
class OutputStrings : public Control {
- OBJ_TYPE( OutputStrings, Control );
+ GDCLASS( OutputStrings, Control );
public:
enum LineType {
diff --git a/tools/editor/pane_drag.cpp b/tools/editor/pane_drag.cpp
index 8e8c2941ec..122abd37b9 100644
--- a/tools/editor/pane_drag.cpp
+++ b/tools/editor/pane_drag.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,7 +29,7 @@
#include "pane_drag.h"
-void PaneDrag::_input_event(const InputEvent& p_input) {
+void PaneDrag::_gui_input(const InputEvent& p_input) {
if (p_input.type==InputEvent::MOUSE_MOTION && p_input.mouse_motion.button_mask&BUTTON_MASK_LEFT) {
@@ -64,7 +64,7 @@ Size2 PaneDrag::get_minimum_size() const {
void PaneDrag::_bind_methods() {
- ObjectTypeDB::bind_method("_input_event",&PaneDrag::_input_event);
+ ClassDB::bind_method("_gui_input",&PaneDrag::_gui_input);
ADD_SIGNAL(MethodInfo("dragged",PropertyInfo(Variant::VECTOR2,"amount")));
}
diff --git a/tools/editor/pane_drag.h b/tools/editor/pane_drag.h
index 24f2ef7ed8..8796fc2594 100644
--- a/tools/editor/pane_drag.h
+++ b/tools/editor/pane_drag.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -33,14 +33,14 @@
class PaneDrag : public Control {
- OBJ_TYPE( PaneDrag, Control );
+ GDCLASS( PaneDrag, Control );
bool mouse_over;
protected:
- void _input_event(const InputEvent& p_input);
+ void _gui_input(const InputEvent& p_input);
void _notification(int p_what);
virtual Size2 get_minimum_size() const;
static void _bind_methods();
diff --git a/tools/editor/plugins/SCsub b/tools/editor/plugins/SCsub
index 6299fd416c..4bf55189cc 100644
--- a/tools/editor/plugins/SCsub
+++ b/tools/editor/plugins/SCsub
@@ -2,4 +2,4 @@
Import('env')
Export('env')
-env.add_source_files(env.tool_sources,"*.cpp")
+env.add_source_files(env.tool_sources, "*.cpp")
diff --git a/tools/editor/plugins/animation_player_editor_plugin.cpp b/tools/editor/plugins/animation_player_editor_plugin.cpp
index d6d452dd72..b3d16bb660 100644
--- a/tools/editor/plugins/animation_player_editor_plugin.cpp
+++ b/tools/editor/plugins/animation_player_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "animation_player_editor_plugin.h"
+
#include "globals.h"
#include "io/resource_loader.h"
#include "io/resource_saver.h"
@@ -50,7 +51,7 @@ void AnimationPlayerEditor::_node_removed(Node *p_node) {
}
}
-void AnimationPlayerEditor::_input_event(InputEvent p_event) {
+void AnimationPlayerEditor::_gui_input(InputEvent p_event) {
}
@@ -77,14 +78,14 @@ void AnimationPlayerEditor::_notification(int p_what) {
}
}
}
- frame->set_val(player->get_current_animation_pos());
+ frame->set_value(player->get_current_animation_pos());
key_editor->set_anim_pos(player->get_current_animation_pos());
EditorNode::get_singleton()->get_property_editor()->refresh();
} else if (last_active) {
//need the last frame after it stopped
- frame->set_val(player->get_current_animation_pos());
+ frame->set_value(player->get_current_animation_pos());
}
last_active=player->is_playing();
@@ -94,14 +95,14 @@ void AnimationPlayerEditor::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
-// editor->connect("hide_animation_player_editors",this,"_hide_anim_editors");
+ //editor->connect("hide_animation_player_editors",this,"_hide_anim_editors");
add_anim->set_icon( get_icon("New","EditorIcons") );
rename_anim->set_icon( get_icon("Rename","EditorIcons") );
duplicate_anim->set_icon( get_icon("Duplicate","EditorIcons") );
autoplay->set_icon( get_icon("AutoPlay","EditorIcons") );
load_anim->set_icon( get_icon("Folder","EditorIcons") );
save_anim->set_icon(get_icon("Save", "EditorIcons"));
- save_anim->get_popup()->connect("item_pressed", this, "_animation_save_menu");
+ save_anim->get_popup()->connect("id_pressed", this, "_animation_save_menu");
remove_anim->set_icon( get_icon("Remove","EditorIcons") );
blend_anim->set_icon( get_icon("Blend","EditorIcons") );
@@ -115,7 +116,7 @@ void AnimationPlayerEditor::_notification(int p_what) {
resource_edit_anim->set_icon( get_icon("EditResource","EditorIcons") );
pin->set_icon(get_icon("Pin","EditorIcons") );
tool_anim->set_icon(get_icon("Tools","EditorIcons"));
- tool_anim->get_popup()->connect("item_pressed",this,"_animation_tool_menu");
+ tool_anim->get_popup()->connect("id_pressed",this,"_animation_tool_menu");
blend_editor.next->connect("item_selected", this, "_blend_editor_next_changed");
@@ -375,12 +376,14 @@ void AnimationPlayerEditor::_animation_load() {
void AnimationPlayerEditor::_animation_save_in_path(const Ref<Resource>& p_resource, const String& p_path) {
int flg = 0;
- if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources"))
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources"))
flg |= ResourceSaver::FLAG_COMPRESS;
- //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative"))
- // flg |= ResourceSaver::FLAG_RELATIVE_PATHS;
+ /*
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/save_paths_as_relative"))
+ flg |= ResourceSaver::FLAG_RELATIVE_PATHS;
+ */
- String path = Globals::get_singleton()->localize_path(p_path);
+ String path = GlobalConfig::get_singleton()->localize_path(p_path);
Error err = ResourceSaver::save(path, p_resource, flg | ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS);
if (err != OK) {
@@ -388,7 +391,7 @@ void AnimationPlayerEditor::_animation_save_in_path(const Ref<Resource>& p_resou
accept->popup_centered_minsize();
return;
}
- // EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type());
+ //EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type());
((Resource*)p_resource.ptr())->set_path(path);
editor->emit_signal("resource_saved", p_resource);
@@ -421,7 +424,7 @@ void AnimationPlayerEditor::_animation_save_as(const Ref<Resource>& p_resource)
if (p_resource->get_path() != "") {
file->set_current_path(p_resource->get_path());
if (extensions.size()) {
- String ext = p_resource->get_path().extension().to_lower();
+ String ext = p_resource->get_path().get_extension().to_lower();
if (extensions.find(ext) == NULL) {
file->set_current_path(p_resource->get_path().replacen("." + ext, "." + extensions.front()->get()));
}
@@ -431,7 +434,12 @@ void AnimationPlayerEditor::_animation_save_as(const Ref<Resource>& p_resource)
String existing;
if (extensions.size()) {
- existing = "new_" + p_resource->get_type().to_lower() + "." + extensions.front()->get().to_lower();
+ if( p_resource->get_name() != "" ) {
+ existing = p_resource->get_name() + "." + extensions.front()->get().to_lower();
+ }
+ else {
+ existing = "new_" + p_resource->get_class().to_lower() + "." + extensions.front()->get().to_lower();
+ }
}
file->set_current_path(existing);
@@ -648,8 +656,8 @@ Dictionary AnimationPlayerEditor::get_state() const {
Dictionary d;
- d["visible"]=is_visible();
- if (EditorNode::get_singleton()->get_edited_scene() && is_visible() && player) {
+ d["visible"]=is_visible_in_tree();
+ if (EditorNode::get_singleton()->get_edited_scene() && is_visible_in_tree() && player) {
d["player"]=EditorNode::get_singleton()->get_edited_scene()->get_path_to(player);
d["animation"]=player->get_current_animation();
@@ -672,7 +680,7 @@ void AnimationPlayerEditor::set_state(const Dictionary& p_state) {
show();
set_process(true);
ensure_visibility();
-// EditorNode::get_singleton()->animation_panel_make_visible(true);
+ //EditorNode::get_singleton()->animation_panel_make_visible(true);
if (p_state.has("animation")) {
String anim = p_state["animation"];
@@ -723,7 +731,7 @@ void AnimationPlayerEditor::_dialog_action(String p_file) {
Ref<Resource> res = ResourceLoader::load(p_file, "Animation");
ERR_FAIL_COND(res.is_null());
- ERR_FAIL_COND(!res->is_type("Animation"));
+ ERR_FAIL_COND(!res->is_class("Animation"));
if (p_file.find_last("/") != -1) {
p_file = p_file.substr(p_file.find_last("/") + 1, p_file.length());
@@ -768,7 +776,7 @@ void AnimationPlayerEditor::_dialog_action(String p_file) {
void AnimationPlayerEditor::_scale_changed(const String& p_scale) {
- player->set_speed(p_scale.to_double());
+ player->set_speed_scale(p_scale.to_double());
}
void AnimationPlayerEditor::_update_animation() {
@@ -790,7 +798,7 @@ void AnimationPlayerEditor::_update_animation() {
stop->set_pressed(true);
}
- scale->set_text( String::num(player->get_speed(),2) );
+ scale->set_text( String::num(player->get_speed_scale(),2) );
String current=player->get_current_animation();
for (int i=0;i<animation->get_item_count();i++) {
@@ -897,7 +905,7 @@ void AnimationPlayerEditor::edit(AnimationPlayer *p_player) {
} else {
key_editor->show_select_node_warning(true);
-// hide();
+ //hide();
}
@@ -999,10 +1007,10 @@ void AnimationPlayerEditor::_seek_value_changed(float p_value,bool p_set) {
void AnimationPlayerEditor::_animation_player_changed(Object *p_pl) {
- if (player==p_pl && is_visible()) {
+ if (player==p_pl && is_visible_in_tree()) {
_update_player();
- if (blend_editor.dialog->is_visible())
+ if (blend_editor.dialog->is_visible_in_tree())
_animation_blend(); //update
}
}
@@ -1011,7 +1019,7 @@ void AnimationPlayerEditor::_animation_player_changed(Object *p_pl) {
void AnimationPlayerEditor::_list_changed() {
- if(is_visible())
+ if(is_visible_in_tree())
_update_player();
}
#if 0
@@ -1099,7 +1107,7 @@ void AnimationPlayerEditor::_animation_key_editor_anim_step_changed(float p_len)
void AnimationPlayerEditor::_animation_key_editor_seek(float p_pos,bool p_drag) {
- if (!is_visible())
+ if (!is_visible_in_tree())
return;
if (!player)
return;
@@ -1108,7 +1116,7 @@ void AnimationPlayerEditor::_animation_key_editor_seek(float p_pos,bool p_drag)
return;
updating=true;
- frame->set_val(p_pos);
+ frame->set_value(p_pos);
updating=false;
_seek_value_changed(p_pos,!p_drag);
@@ -1128,7 +1136,7 @@ void AnimationPlayerEditor::_hide_anim_editors() {
key_editor->set_animation(Ref<Animation>());
key_editor->set_root(NULL);
key_editor->show_select_node_warning(true);
-// editor->animation_editor_make_visible(false);
+ //editor->animation_editor_make_visible(false);
}
@@ -1220,7 +1228,7 @@ void AnimationPlayerEditor::_animation_save_menu(int p_option) {
void AnimationPlayerEditor::_unhandled_key_input(const InputEvent& p_ev) {
- if (is_visible() && p_ev.type==InputEvent::KEY && p_ev.key.pressed && !p_ev.key.echo && !p_ev.key.mod.alt && !p_ev.key.mod.control && !p_ev.key.mod.meta) {
+ if (is_visible_in_tree() && p_ev.type==InputEvent::KEY && p_ev.key.pressed && !p_ev.key.echo && !p_ev.key.mod.alt && !p_ev.key.mod.control && !p_ev.key.mod.meta) {
switch(p_ev.key.scancode) {
@@ -1245,42 +1253,42 @@ void AnimationPlayerEditor::_unhandled_key_input(const InputEvent& p_ev) {
void AnimationPlayerEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_input_event"),&AnimationPlayerEditor::_input_event);
- ObjectTypeDB::bind_method(_MD("_node_removed"),&AnimationPlayerEditor::_node_removed);
- ObjectTypeDB::bind_method(_MD("_play_pressed"),&AnimationPlayerEditor::_play_pressed);
- ObjectTypeDB::bind_method(_MD("_play_from_pressed"),&AnimationPlayerEditor::_play_from_pressed);
- ObjectTypeDB::bind_method(_MD("_play_bw_pressed"),&AnimationPlayerEditor::_play_bw_pressed);
- ObjectTypeDB::bind_method(_MD("_play_bw_from_pressed"),&AnimationPlayerEditor::_play_bw_from_pressed);
- ObjectTypeDB::bind_method(_MD("_stop_pressed"),&AnimationPlayerEditor::_stop_pressed);
- ObjectTypeDB::bind_method(_MD("_autoplay_pressed"),&AnimationPlayerEditor::_autoplay_pressed);
- ObjectTypeDB::bind_method(_MD("_pause_pressed"),&AnimationPlayerEditor::_pause_pressed);
- ObjectTypeDB::bind_method(_MD("_animation_selected"),&AnimationPlayerEditor::_animation_selected);
- ObjectTypeDB::bind_method(_MD("_animation_name_edited"),&AnimationPlayerEditor::_animation_name_edited);
- ObjectTypeDB::bind_method(_MD("_animation_new"),&AnimationPlayerEditor::_animation_new);
- ObjectTypeDB::bind_method(_MD("_animation_rename"),&AnimationPlayerEditor::_animation_rename);
- ObjectTypeDB::bind_method(_MD("_animation_load"),&AnimationPlayerEditor::_animation_load);
- ObjectTypeDB::bind_method(_MD("_animation_remove"),&AnimationPlayerEditor::_animation_remove);
- ObjectTypeDB::bind_method(_MD("_animation_blend"),&AnimationPlayerEditor::_animation_blend);
- ObjectTypeDB::bind_method(_MD("_animation_edit"),&AnimationPlayerEditor::_animation_edit);
- ObjectTypeDB::bind_method(_MD("_animation_resource_edit"),&AnimationPlayerEditor::_animation_resource_edit);
- ObjectTypeDB::bind_method(_MD("_dialog_action"),&AnimationPlayerEditor::_dialog_action);
- ObjectTypeDB::bind_method(_MD("_seek_value_changed"),&AnimationPlayerEditor::_seek_value_changed,DEFVAL(true));
- ObjectTypeDB::bind_method(_MD("_animation_player_changed"),&AnimationPlayerEditor::_animation_player_changed);
- ObjectTypeDB::bind_method(_MD("_blend_edited"),&AnimationPlayerEditor::_blend_edited);
-// ObjectTypeDB::bind_method(_MD("_seek_frame_changed"),&AnimationPlayerEditor::_seek_frame_changed);
- ObjectTypeDB::bind_method(_MD("_scale_changed"),&AnimationPlayerEditor::_scale_changed);
- //ObjectTypeDB::bind_method(_MD("_editor_store_all"),&AnimationPlayerEditor::_editor_store_all);
+ ClassDB::bind_method(_MD("_gui_input"),&AnimationPlayerEditor::_gui_input);
+ ClassDB::bind_method(_MD("_node_removed"),&AnimationPlayerEditor::_node_removed);
+ ClassDB::bind_method(_MD("_play_pressed"),&AnimationPlayerEditor::_play_pressed);
+ ClassDB::bind_method(_MD("_play_from_pressed"),&AnimationPlayerEditor::_play_from_pressed);
+ ClassDB::bind_method(_MD("_play_bw_pressed"),&AnimationPlayerEditor::_play_bw_pressed);
+ ClassDB::bind_method(_MD("_play_bw_from_pressed"),&AnimationPlayerEditor::_play_bw_from_pressed);
+ ClassDB::bind_method(_MD("_stop_pressed"),&AnimationPlayerEditor::_stop_pressed);
+ ClassDB::bind_method(_MD("_autoplay_pressed"),&AnimationPlayerEditor::_autoplay_pressed);
+ ClassDB::bind_method(_MD("_pause_pressed"),&AnimationPlayerEditor::_pause_pressed);
+ ClassDB::bind_method(_MD("_animation_selected"),&AnimationPlayerEditor::_animation_selected);
+ ClassDB::bind_method(_MD("_animation_name_edited"),&AnimationPlayerEditor::_animation_name_edited);
+ ClassDB::bind_method(_MD("_animation_new"),&AnimationPlayerEditor::_animation_new);
+ ClassDB::bind_method(_MD("_animation_rename"),&AnimationPlayerEditor::_animation_rename);
+ ClassDB::bind_method(_MD("_animation_load"),&AnimationPlayerEditor::_animation_load);
+ ClassDB::bind_method(_MD("_animation_remove"),&AnimationPlayerEditor::_animation_remove);
+ ClassDB::bind_method(_MD("_animation_blend"),&AnimationPlayerEditor::_animation_blend);
+ ClassDB::bind_method(_MD("_animation_edit"),&AnimationPlayerEditor::_animation_edit);
+ ClassDB::bind_method(_MD("_animation_resource_edit"),&AnimationPlayerEditor::_animation_resource_edit);
+ ClassDB::bind_method(_MD("_dialog_action"),&AnimationPlayerEditor::_dialog_action);
+ ClassDB::bind_method(_MD("_seek_value_changed"),&AnimationPlayerEditor::_seek_value_changed,DEFVAL(true));
+ ClassDB::bind_method(_MD("_animation_player_changed"),&AnimationPlayerEditor::_animation_player_changed);
+ ClassDB::bind_method(_MD("_blend_edited"),&AnimationPlayerEditor::_blend_edited);
+ //ClassDB::bind_method(_MD("_seek_frame_changed"),&AnimationPlayerEditor::_seek_frame_changed);
+ ClassDB::bind_method(_MD("_scale_changed"),&AnimationPlayerEditor::_scale_changed);
+ //ClassDB::bind_method(_MD("_editor_store_all"),&AnimationPlayerEditor::_editor_store_all);
///jectTypeDB::bind_method(_MD("_editor_load_all"),&AnimationPlayerEditor::_editor_load_all);
- ObjectTypeDB::bind_method(_MD("_list_changed"),&AnimationPlayerEditor::_list_changed);
- ObjectTypeDB::bind_method(_MD("_animation_key_editor_seek"),&AnimationPlayerEditor::_animation_key_editor_seek);
- ObjectTypeDB::bind_method(_MD("_animation_key_editor_anim_len_changed"),&AnimationPlayerEditor::_animation_key_editor_anim_len_changed);
- ObjectTypeDB::bind_method(_MD("_animation_key_editor_anim_step_changed"),&AnimationPlayerEditor::_animation_key_editor_anim_step_changed);
- ObjectTypeDB::bind_method(_MD("_hide_anim_editors"),&AnimationPlayerEditor::_hide_anim_editors);
- ObjectTypeDB::bind_method(_MD("_animation_duplicate"),&AnimationPlayerEditor::_animation_duplicate);
- ObjectTypeDB::bind_method(_MD("_blend_editor_next_changed"),&AnimationPlayerEditor::_blend_editor_next_changed);
- ObjectTypeDB::bind_method(_MD("_unhandled_key_input"),&AnimationPlayerEditor::_unhandled_key_input);
- ObjectTypeDB::bind_method(_MD("_animation_tool_menu"),&AnimationPlayerEditor::_animation_tool_menu);
- ObjectTypeDB::bind_method(_MD("_animation_save_menu"), &AnimationPlayerEditor::_animation_save_menu);
+ ClassDB::bind_method(_MD("_list_changed"),&AnimationPlayerEditor::_list_changed);
+ ClassDB::bind_method(_MD("_animation_key_editor_seek"),&AnimationPlayerEditor::_animation_key_editor_seek);
+ ClassDB::bind_method(_MD("_animation_key_editor_anim_len_changed"),&AnimationPlayerEditor::_animation_key_editor_anim_len_changed);
+ ClassDB::bind_method(_MD("_animation_key_editor_anim_step_changed"),&AnimationPlayerEditor::_animation_key_editor_anim_step_changed);
+ ClassDB::bind_method(_MD("_hide_anim_editors"),&AnimationPlayerEditor::_hide_anim_editors);
+ ClassDB::bind_method(_MD("_animation_duplicate"),&AnimationPlayerEditor::_animation_duplicate);
+ ClassDB::bind_method(_MD("_blend_editor_next_changed"),&AnimationPlayerEditor::_blend_editor_next_changed);
+ ClassDB::bind_method(_MD("_unhandled_key_input"),&AnimationPlayerEditor::_unhandled_key_input);
+ ClassDB::bind_method(_MD("_animation_tool_menu"),&AnimationPlayerEditor::_animation_tool_menu);
+ ClassDB::bind_method(_MD("_animation_save_menu"), &AnimationPlayerEditor::_animation_save_menu);
@@ -1477,7 +1485,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
blend_editor.dialog->set_hide_on_ok(true);
VBoxContainer *blend_vb = memnew( VBoxContainer);
blend_editor.dialog->add_child(blend_vb);
- blend_editor.dialog->set_child_rect(blend_vb);
+ //blend_editor.dialog->set_child_rect(blend_vb);
blend_editor.tree = memnew( Tree );
blend_editor.tree->set_columns(2);
blend_vb->add_margin_child(TTR("Blend Times:"),blend_editor.tree,true);
@@ -1542,7 +1550,7 @@ void AnimationPlayerEditorPlugin::edit(Object *p_object) {
bool AnimationPlayerEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("AnimationPlayer");
+ return p_object->is_class("AnimationPlayer");
}
void AnimationPlayerEditorPlugin::make_visible(bool p_visible) {
@@ -1552,11 +1560,11 @@ void AnimationPlayerEditorPlugin::make_visible(bool p_visible) {
editor->make_bottom_panel_item_visible(anim_editor);
anim_editor->set_process(true);
anim_editor->ensure_visibility();
-// editor->animation_panel_make_visible(true);
+ //editor->animation_panel_make_visible(true);
} else {
-// anim_editor->hide();
-// anim_editor->set_idle_process(false);
+ //anim_editor->hide();
+ //anim_editor->set_idle_process(false);
}
}
diff --git a/tools/editor/plugins/animation_player_editor_plugin.h b/tools/editor/plugins/animation_player_editor_plugin.h
index b0c930b66e..840c39ba49 100644
--- a/tools/editor/plugins/animation_player_editor_plugin.h
+++ b/tools/editor/plugins/animation_player_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -44,7 +44,7 @@
class AnimationKeyEditor;
class AnimationPlayerEditor : public VBoxContainer {
- OBJ_TYPE(AnimationPlayerEditor, VBoxContainer );
+ GDCLASS(AnimationPlayerEditor, VBoxContainer );
EditorNode *editor;
AnimationPlayer *player;
@@ -73,7 +73,7 @@ class AnimationPlayerEditor : public VBoxContainer {
Button *play_bw;
Button *play_bw_from;
-// Button *pause;
+ //Button *pause;
Button *add_anim;
Button *autoplay;
Button *rename_anim;
@@ -171,7 +171,7 @@ class AnimationPlayerEditor : public VBoxContainer {
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
void _node_removed(Node *p_node);
static void _bind_methods();
public:
@@ -193,7 +193,7 @@ public:
class AnimationPlayerEditorPlugin : public EditorPlugin {
- OBJ_TYPE( AnimationPlayerEditorPlugin, EditorPlugin );
+ GDCLASS( AnimationPlayerEditorPlugin, EditorPlugin );
AnimationPlayerEditor *anim_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/animation_tree_editor_plugin.cpp b/tools/editor/plugins/animation_tree_editor_plugin.cpp
index 24914e4bc5..1ed52d2df6 100644
--- a/tools/editor/plugins/animation_tree_editor_plugin.cpp
+++ b/tools/editor/plugins/animation_tree_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -183,20 +183,20 @@ void AnimationTreeEditor::_edit_dialog_changed() {
case AnimationTreePlayer::NODE_MIX:
- anim_tree->mix_node_set_amount(edited_node,edit_scroll[0]->get_val());
+ anim_tree->mix_node_set_amount(edited_node,edit_scroll[0]->get_value());
break;
case AnimationTreePlayer::NODE_BLEND2:
- anim_tree->blend2_node_set_amount(edited_node,edit_scroll[0]->get_val());
+ anim_tree->blend2_node_set_amount(edited_node,edit_scroll[0]->get_value());
break;
case AnimationTreePlayer::NODE_BLEND3:
- anim_tree->blend3_node_set_amount(edited_node,edit_scroll[0]->get_val());
+ anim_tree->blend3_node_set_amount(edited_node,edit_scroll[0]->get_value());
break;
case AnimationTreePlayer::NODE_BLEND4:
- anim_tree->blend4_node_set_amount(edited_node,Point2(edit_scroll[0]->get_val(),edit_scroll[1]->get_val()));
+ anim_tree->blend4_node_set_amount(edited_node,Point2(edit_scroll[0]->get_value(),edit_scroll[1]->get_value()));
break;
@@ -261,11 +261,11 @@ void AnimationTreeEditor::_popup_edit_dialog() {
}
edit_option->hide();
- edit_button->hide();;
+ edit_button->hide();
filter_button->hide();
- edit_check->hide();;
+ edit_check->hide();
- Point2 pos = anim_tree->node_get_pos(edited_node)-Point2(h_scroll->get_val(),v_scroll->get_val());
+ Point2 pos = anim_tree->node_get_pos(edited_node)-Point2(h_scroll->get_value(),v_scroll->get_value());
Ref<StyleBox> style = get_stylebox("panel","PopupMenu");
Size2 size = get_node_size(edited_node);
Point2 popup_pos( pos.x+style->get_margin(MARGIN_LEFT), pos.y+size.y-style->get_margin(MARGIN_BOTTOM));
@@ -380,7 +380,7 @@ void AnimationTreeEditor::_popup_edit_dialog() {
edit_label[0]->show();
edit_scroll[0]->set_min(0);
edit_scroll[0]->set_max(1);
- edit_scroll[0]->set_val(anim_tree->mix_node_get_amount(edited_node));
+ edit_scroll[0]->set_value(anim_tree->mix_node_get_amount(edited_node));
edit_scroll[0]->set_begin(Point2(15,25));
edit_scroll[0]->show();
edit_dialog->set_size(Size2(150,50));
@@ -392,7 +392,7 @@ void AnimationTreeEditor::_popup_edit_dialog() {
edit_label[0]->show();
edit_scroll[0]->set_min(0);
edit_scroll[0]->set_max(1);
- edit_scroll[0]->set_val(anim_tree->blend2_node_get_amount(edited_node));
+ edit_scroll[0]->set_value(anim_tree->blend2_node_get_amount(edited_node));
edit_scroll[0]->set_begin(Point2(15,25));
edit_scroll[0]->show();
filter_button->set_begin(Point2(10,47));
@@ -407,7 +407,7 @@ void AnimationTreeEditor::_popup_edit_dialog() {
edit_label[0]->show();
edit_scroll[0]->set_min(-1);
edit_scroll[0]->set_max(1);
- edit_scroll[0]->set_val(anim_tree->blend3_node_get_amount(edited_node));
+ edit_scroll[0]->set_value(anim_tree->blend3_node_get_amount(edited_node));
edit_scroll[0]->set_begin(Point2(15,25));
edit_scroll[0]->show();
edit_dialog->set_size(Size2(150,50));
@@ -420,7 +420,7 @@ void AnimationTreeEditor::_popup_edit_dialog() {
edit_label[0]->show();
edit_scroll[0]->set_min(0);
edit_scroll[0]->set_max(1);
- edit_scroll[0]->set_val(anim_tree->blend4_node_get_amount(edited_node).x);
+ edit_scroll[0]->set_value(anim_tree->blend4_node_get_amount(edited_node).x);
edit_scroll[0]->set_begin(Point2(15,25));
edit_scroll[0]->show();
edit_label[1]->set_text(TTR("Blend 1:"));
@@ -428,7 +428,7 @@ void AnimationTreeEditor::_popup_edit_dialog() {
edit_label[1]->show();
edit_scroll[1]->set_min(0);
edit_scroll[1]->set_max(1);
- edit_scroll[1]->set_val(anim_tree->blend4_node_get_amount(edited_node).y);
+ edit_scroll[1]->set_value(anim_tree->blend4_node_get_amount(edited_node).y);
edit_scroll[1]->set_begin(Point2(15,75));
edit_scroll[1]->show();
edit_dialog->set_size(Size2(150,100));
@@ -450,7 +450,7 @@ void AnimationTreeEditor::_popup_edit_dialog() {
edit_label[1]->show();
edit_option->set_begin(Point2(15,75));
- edit_option->clear();;
+ edit_option->clear();
for(int i=0;i<anim_tree->transition_node_get_input_count(edited_node);i++) {
edit_option->add_item(itos(i),i);
@@ -500,7 +500,7 @@ void AnimationTreeEditor::_draw_node(const StringName& p_node) {
}
- pos-=Point2(h_scroll->get_val(),v_scroll->get_val());
+ pos-=Point2(h_scroll->get_value(),v_scroll->get_value());
style->draw(ci,Rect2(pos,size));
@@ -621,9 +621,9 @@ void AnimationTreeEditor::_draw_node(const StringName& p_node) {
#if 0
void AnimationTreeEditor::_node_param_changed() {
-// anim_tree->node_set_param( click_node,property_editor->get_variant() );
-// update();
-// _write_anim_tree_graph();
+ //anim_tree->node_set_param( click_node,property_editor->get_variant() );
+ //update();
+ //_write_anim_tree_graph();
}
#endif
@@ -644,7 +644,7 @@ AnimationTreeEditor::ClickType AnimationTreeEditor::_locate_click(const Point2&
Point2 pos = anim_tree->node_get_pos(node);
Size2 size = get_node_size(node);
- pos-=Point2(h_scroll->get_val(),v_scroll->get_val());
+ pos-=Point2(h_scroll->get_value(),v_scroll->get_value());
if (!Rect2(pos,size).has_point(p_click))
continue;
@@ -709,7 +709,7 @@ Point2 AnimationTreeEditor::_get_slot_pos(const StringName& p_node,bool p_input,
}
- pos-=Point2(h_scroll->get_val(),v_scroll->get_val());
+ pos-=Point2(h_scroll->get_value(),v_scroll->get_value());
float w = size.width-style->get_minimum_size().width;
@@ -759,7 +759,7 @@ void AnimationTreeEditor::_node_edit_property(const StringName& p_node) {
}
#endif
-void AnimationTreeEditor::_input_event(InputEvent p_event) {
+void AnimationTreeEditor::_gui_input(InputEvent p_event) {
switch(p_event.type) {
@@ -792,7 +792,7 @@ void AnimationTreeEditor::_input_event(InputEvent p_event) {
renaming_edit=false;
_popup_edit_dialog();
//open editor
- // _node_edit_property(click_node);
+ //_node_edit_property(click_node);
} break;
default:{}
}
@@ -856,12 +856,12 @@ void AnimationTreeEditor::_input_event(InputEvent p_event) {
if (dst_click_type==CLICK_INPUT_SLOT && click_type==CLICK_OUTPUT_SLOT) {
- anim_tree->connect(click_node,id,slot);
+ anim_tree->connect_nodes(click_node,id,slot);
}
if (click_type==CLICK_INPUT_SLOT && dst_click_type==CLICK_OUTPUT_SLOT) {
- anim_tree->connect(id,click_node,click_slot);
+ anim_tree->connect_nodes(id,click_node,click_slot);
}
} break;
@@ -892,8 +892,8 @@ void AnimationTreeEditor::_input_event(InputEvent p_event) {
}
if ((p_event.mouse_motion.button_mask&4 || Input::get_singleton()->is_key_pressed(KEY_SPACE))) {
- h_scroll->set_val( h_scroll->get_val() - p_event.mouse_motion.relative_x );
- v_scroll->set_val( v_scroll->get_val() - p_event.mouse_motion.relative_y );
+ h_scroll->set_value( h_scroll->get_value() - p_event.mouse_motion.relative_x );
+ v_scroll->set_value( v_scroll->get_value() - p_event.mouse_motion.relative_y );
update();
}
@@ -947,7 +947,6 @@ void AnimationTreeEditor::_notification(int p_what) {
_update_scrollbars();
//VisualServer::get_singleton()->canvas_item_add_rect(get_canvas_item(),Rect2(Point2(),get_size()),Color(0,0,0,1));
get_stylebox("bg","Tree")->draw(get_canvas_item(),Rect2(Point2(),get_size()));
- VisualServer::get_singleton()->canvas_item_set_clip(get_canvas_item(),true);
for(List<StringName>::Element *E=order.front();E;E=E->next()) {
@@ -1026,7 +1025,7 @@ void AnimationTreeEditor::_update_scrollbars() {
v_scroll->show();
v_scroll->set_max(min.height);
v_scroll->set_page(size.height - hmin.height);
- offset.y=v_scroll->get_val();
+ offset.y=v_scroll->get_value();
}
if (min.width < size.width - vmin.width) {
@@ -1038,14 +1037,14 @@ void AnimationTreeEditor::_update_scrollbars() {
h_scroll->show();
h_scroll->set_max(min.width);
h_scroll->set_page(size.width - vmin.width);
- offset.x=h_scroll->get_val();
+ offset.x=h_scroll->get_value();
}
}
void AnimationTreeEditor::_scroll_moved(float) {
- offset.x=h_scroll->get_val();
- offset.y=v_scroll->get_val();
+ offset.x=h_scroll->get_value();
+ offset.y=v_scroll->get_value();
update();
}
@@ -1058,7 +1057,7 @@ void AnimationTreeEditor::_node_menu_item(int p_item) {
if (rclick_type==CLICK_INPUT_SLOT) {
- anim_tree->disconnect(rclick_node,rclick_slot);
+ anim_tree->disconnect_nodes(rclick_node,rclick_slot);
update();
}
@@ -1073,7 +1072,7 @@ void AnimationTreeEditor::_node_menu_item(int p_item) {
const AnimationTreePlayer::Connection &c=E->get();
if( c.dst_node==rclick_node) {
- anim_tree->disconnect(c.dst_node,c.dst_input);
+ anim_tree->disconnect_nodes(c.dst_node,c.dst_input);
}
}
update();
@@ -1323,23 +1322,23 @@ void AnimationTreeEditor::_edit_filters() {
void AnimationTreeEditor::_bind_methods() {
- ObjectTypeDB::bind_method( "_add_menu_item", &AnimationTreeEditor::_add_menu_item );
- ObjectTypeDB::bind_method( "_node_menu_item", &AnimationTreeEditor::_node_menu_item );
- ObjectTypeDB::bind_method( "_input_event", &AnimationTreeEditor::_input_event );
-// ObjectTypeDB::bind_method( "_node_param_changed", &AnimationTreeEditor::_node_param_changed );
- ObjectTypeDB::bind_method( "_scroll_moved", &AnimationTreeEditor::_scroll_moved );
- ObjectTypeDB::bind_method( "_edit_dialog_changeds", &AnimationTreeEditor::_edit_dialog_changeds );
- ObjectTypeDB::bind_method( "_edit_dialog_changede", &AnimationTreeEditor::_edit_dialog_changede );
- ObjectTypeDB::bind_method( "_edit_dialog_changedf", &AnimationTreeEditor::_edit_dialog_changedf );
- ObjectTypeDB::bind_method( "_edit_dialog_changed", &AnimationTreeEditor::_edit_dialog_changed );
- ObjectTypeDB::bind_method( "_edit_dialog_animation_changed", &AnimationTreeEditor::_edit_dialog_animation_changed );
- ObjectTypeDB::bind_method( "_edit_dialog_edit_animation", &AnimationTreeEditor::_edit_dialog_edit_animation );
- ObjectTypeDB::bind_method( "_play_toggled", &AnimationTreeEditor::_play_toggled );
- ObjectTypeDB::bind_method( "_edit_oneshot_start", &AnimationTreeEditor::_edit_oneshot_start );
- ObjectTypeDB::bind_method( "_file_dialog_selected", &AnimationTreeEditor::_file_dialog_selected);
- ObjectTypeDB::bind_method( "_master_anim_menu_item", &AnimationTreeEditor::_master_anim_menu_item);
- ObjectTypeDB::bind_method( "_edit_filters", &AnimationTreeEditor::_edit_filters);
- ObjectTypeDB::bind_method( "_filter_edited", &AnimationTreeEditor::_filter_edited);
+ ClassDB::bind_method( "_add_menu_item", &AnimationTreeEditor::_add_menu_item );
+ ClassDB::bind_method( "_node_menu_item", &AnimationTreeEditor::_node_menu_item );
+ ClassDB::bind_method( "_gui_input", &AnimationTreeEditor::_gui_input );
+ //ClassDB::bind_method( "_node_param_changed", &AnimationTreeEditor::_node_param_changed );
+ ClassDB::bind_method( "_scroll_moved", &AnimationTreeEditor::_scroll_moved );
+ ClassDB::bind_method( "_edit_dialog_changeds", &AnimationTreeEditor::_edit_dialog_changeds );
+ ClassDB::bind_method( "_edit_dialog_changede", &AnimationTreeEditor::_edit_dialog_changede );
+ ClassDB::bind_method( "_edit_dialog_changedf", &AnimationTreeEditor::_edit_dialog_changedf );
+ ClassDB::bind_method( "_edit_dialog_changed", &AnimationTreeEditor::_edit_dialog_changed );
+ ClassDB::bind_method( "_edit_dialog_animation_changed", &AnimationTreeEditor::_edit_dialog_animation_changed );
+ ClassDB::bind_method( "_edit_dialog_edit_animation", &AnimationTreeEditor::_edit_dialog_edit_animation );
+ ClassDB::bind_method( "_play_toggled", &AnimationTreeEditor::_play_toggled );
+ ClassDB::bind_method( "_edit_oneshot_start", &AnimationTreeEditor::_edit_oneshot_start );
+ ClassDB::bind_method( "_file_dialog_selected", &AnimationTreeEditor::_file_dialog_selected);
+ ClassDB::bind_method( "_master_anim_menu_item", &AnimationTreeEditor::_master_anim_menu_item);
+ ClassDB::bind_method( "_edit_filters", &AnimationTreeEditor::_edit_filters);
+ ClassDB::bind_method( "_filter_edited", &AnimationTreeEditor::_filter_edited);
}
@@ -1371,7 +1370,7 @@ AnimationTreeEditor::AnimationTreeEditor() {
p->add_separator();
p->add_item(TTR("Clear"),MENU_GRAPH_CLEAR);
- p->connect("item_pressed", this,"_add_menu_item");
+ p->connect("id_pressed", this,"_add_menu_item");
play_button = memnew(Button);
play_button->set_pos(Point2(25,0));
@@ -1407,16 +1406,16 @@ AnimationTreeEditor::AnimationTreeEditor() {
master_anim_popup = memnew( PopupMenu );
add_child(master_anim_popup);
- master_anim_popup->connect("item_pressed",this,"_master_anim_menu_item");
+ master_anim_popup->connect("id_pressed",this,"_master_anim_menu_item");
- node_popup->connect("item_pressed", this,"_node_menu_item");
+ node_popup->connect("id_pressed", this,"_node_menu_item");
updating_edit=false;
edit_dialog = memnew( PopupPanel );
-// edit_dialog->get_ok()->hide();
-// edit_dialog->get_cancel()->hide();
+ //edit_dialog->get_ok()->hide();
+ //edit_dialog->get_cancel()->hide();
add_child(edit_dialog);
edit_option = memnew( OptionButton );
@@ -1452,19 +1451,19 @@ AnimationTreeEditor::AnimationTreeEditor() {
edit_button->set_anchor( MARGIN_RIGHT, ANCHOR_END );
edit_button->set_margin(MARGIN_RIGHT, 10);
edit_dialog->add_child(edit_button);
- edit_button->hide();;
+ edit_button->hide();
edit_button->connect("pressed", this,"_edit_oneshot_start");
edit_check = memnew( CheckButton );
edit_check->set_anchor( MARGIN_RIGHT, ANCHOR_END );
edit_check->set_margin(MARGIN_RIGHT, 10);
edit_dialog->add_child(edit_check);
- edit_check->hide();;
+ edit_check->hide();
edit_check->connect("pressed", this,"_edit_dialog_changed");
file_dialog = memnew( EditorFileDialog );
file_dialog->set_enable_multiple_selection(true);
- file_dialog->set_current_dir(Globals::get_singleton()->get_resource_path());
+ file_dialog->set_current_dir(GlobalConfig::get_singleton()->get_resource_path());
add_child(file_dialog);
file_dialog->connect("file_selected", this, "_file_dialog_selected");
@@ -1474,17 +1473,18 @@ AnimationTreeEditor::AnimationTreeEditor() {
filter = memnew( Tree );
filter_dialog->add_child(filter);
- filter_dialog->set_child_rect(filter);
+ //filter_dialog->set_child_rect(filter);
filter->connect("item_edited",this,"_filter_edited");
filter_button = memnew( Button );
filter_button->set_anchor( MARGIN_RIGHT, ANCHOR_END );
filter_button->set_margin(MARGIN_RIGHT, 10);
edit_dialog->add_child(filter_button);
- filter_button->hide();;
+ filter_button->hide();
filter_button->set_text(TTR("Filters.."));
filter_button->connect("pressed", this,"_edit_filters");
+ set_clip_contents(true);
}
@@ -1496,20 +1496,20 @@ void AnimationTreeEditorPlugin::edit(Object *p_object) {
bool AnimationTreeEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("AnimationTreePlayer");
+ return p_object->is_class("AnimationTreePlayer");
}
void AnimationTreeEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
-// editor->hide_animation_player_editors();
-// editor->animation_panel_make_visible(true);
+ //editor->hide_animation_player_editors();
+ //editor->animation_panel_make_visible(true);
button->show();
editor->make_bottom_panel_item_visible(anim_tree_editor);
anim_tree_editor->set_fixed_process(true);
} else {
- if (anim_tree_editor->is_visible())
+ if (anim_tree_editor->is_visible_in_tree())
editor->hide_bottom_panel();
button->hide();
anim_tree_editor->set_fixed_process(false);
diff --git a/tools/editor/plugins/animation_tree_editor_plugin.h b/tools/editor/plugins/animation_tree_editor_plugin.h
index 4884a22d90..253ad1878d 100644
--- a/tools/editor/plugins/animation_tree_editor_plugin.h
+++ b/tools/editor/plugins/animation_tree_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -42,7 +42,7 @@
class AnimationTreeEditor : public Control {
- OBJ_TYPE(AnimationTreeEditor, Control );
+ GDCLASS(AnimationTreeEditor, Control );
static const char* _node_type_names[];
@@ -160,7 +160,7 @@ class AnimationTreeEditor : public Control {
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
static void _bind_methods();
public:
@@ -172,7 +172,7 @@ public:
class AnimationTreeEditorPlugin : public EditorPlugin {
- OBJ_TYPE( AnimationTreeEditorPlugin, EditorPlugin );
+ GDCLASS( AnimationTreeEditorPlugin, EditorPlugin );
AnimationTreeEditor *anim_tree_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/baked_light_baker.cpp b/tools/editor/plugins/baked_light_baker.cpp
index f43bec1cd3..52220839d9 100644
--- a/tools/editor/plugins/baked_light_baker.cpp
+++ b/tools/editor/plugins/baked_light_baker.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,13 +27,14 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "baked_light_baker.h"
+
#include <stdlib.h>
#include <cmath>
#include "io/marshalls.h"
#include "tools/editor/editor_node.h"
#include "tools/editor/editor_settings.h"
-
+#if 0
void baked_light_baker_add_64f(double *dst,double value);
void baked_light_baker_add_64i(int64_t *dst,int64_t value);
@@ -91,15 +92,15 @@ BakedLightBaker::MeshTexture* BakedLightBaker::_get_mat_tex(const Ref<Texture>&
if (image.empty())
return NULL;
- if (image.get_format()!=Image::FORMAT_RGBA) {
+ if (image.get_format()!=Image::FORMAT_RGBA8) {
if (image.get_format()>Image::FORMAT_INDEXED_ALPHA) {
Error err = image.decompress();
if (err)
return NULL;
}
- if (image.get_format()!=Image::FORMAT_RGBA)
- image.convert(Image::FORMAT_RGBA);
+ if (image.get_format()!=Image::FORMAT_RGBA8)
+ image.convert(Image::FORMAT_RGBA8);
}
if (imgtex->get_flags()&Texture::FLAG_CONVERT_TO_LINEAR) {
@@ -108,8 +109,8 @@ BakedLightBaker::MeshTexture* BakedLightBaker::_get_mat_tex(const Ref<Texture>&
image=copy;
}
- DVector<uint8_t> dvt=image.get_data();
- DVector<uint8_t>::Read r=dvt.read();
+ PoolVector<uint8_t> dvt=image.get_data();
+ PoolVector<uint8_t>::Read r=dvt.read();
MeshTexture mt;
mt.tex_w=image.get_width();
mt.tex_h=image.get_height();
@@ -143,18 +144,18 @@ void BakedLightBaker::_add_mesh(const Ref<Mesh>& p_mesh,const Ref<Material>& p_m
MeshMaterial mm;
- Ref<FixedMaterial> fm = mat;
+ Ref<FixedSpatialMaterial> fm = mat;
if (fm.is_valid()) {
//fixed route
- mm.diffuse.color=fm->get_parameter(FixedMaterial::PARAM_DIFFUSE);
+ mm.diffuse.color=fm->get_parameter(FixedSpatialMaterial::PARAM_DIFFUSE);
if (linear_color)
mm.diffuse.color=mm.diffuse.color.to_linear();
- mm.diffuse.tex=_get_mat_tex(fm->get_texture(FixedMaterial::PARAM_DIFFUSE));
- mm.specular.color=fm->get_parameter(FixedMaterial::PARAM_SPECULAR);
+ mm.diffuse.tex=_get_mat_tex(fm->get_texture(FixedSpatialMaterial::PARAM_DIFFUSE));
+ mm.specular.color=fm->get_parameter(FixedSpatialMaterial::PARAM_SPECULAR);
if (linear_color)
mm.specular.color=mm.specular.color.to_linear();
- mm.specular.tex=_get_mat_tex(fm->get_texture(FixedMaterial::PARAM_SPECULAR));
+ mm.specular.tex=_get_mat_tex(fm->get_texture(FixedSpatialMaterial::PARAM_SPECULAR));
} else {
mm.diffuse.color=Color(1,1,1,1);
@@ -194,14 +195,14 @@ void BakedLightBaker::_add_mesh(const Ref<Mesh>& p_mesh,const Ref<Material>& p_m
Array a = p_mesh->surface_get_arrays(i);
- DVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX];
- DVector<Vector3>::Read vr=vertices.read();
- DVector<Vector2> uv;
- DVector<Vector2>::Read uvr;
- DVector<Vector2> uv2;
- DVector<Vector2>::Read uv2r;
- DVector<Vector3> normal;
- DVector<Vector3>::Read normalr;
+ PoolVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX];
+ PoolVector<Vector3>::Read vr=vertices.read();
+ PoolVector<Vector2> uv;
+ PoolVector<Vector2>::Read uvr;
+ PoolVector<Vector2> uv2;
+ PoolVector<Vector2>::Read uv2r;
+ PoolVector<Vector3> normal;
+ PoolVector<Vector3>::Read normalr;
bool read_uv=false;
bool read_normal=false;
@@ -236,8 +237,8 @@ void BakedLightBaker::_add_mesh(const Ref<Mesh>& p_mesh,const Ref<Material>& p_m
if (p_mesh->surface_get_format(i)&Mesh::ARRAY_FORMAT_INDEX) {
- DVector<int> indices = a[Mesh::ARRAY_INDEX];
- DVector<int>::Read ir = indices.read();
+ PoolVector<int> indices = a[Mesh::ARRAY_INDEX];
+ PoolVector<int>::Read ir = indices.read();
for(int i=0;i<facecount;i++) {
Triangle &t=triangles[tbase+i];
@@ -1006,8 +1007,10 @@ float BakedLightBaker::_throw_ray(ThreadStack& thread_stack,bool p_bake_direct,c
Triangle *triangle=NULL;
- //for(int i=0;i<max_depth;i++)
- // stack[i]=0;
+ /*
+ for(int i=0;i<max_depth;i++)
+ stack[i]=0;
+ */
int level=0;
//AABB ray_aabb;
@@ -1059,7 +1062,7 @@ float BakedLightBaker::_throw_ray(ThreadStack& thread_stack,bool p_bake_direct,c
bool valid = b.aabb.smits_intersect_ray(p_begin,n,0,len);
//bool valid = b.aabb.intersects_segment(p_begin,p_end);
- // bool valid = b.aabb.intersects(ray_aabb);
+ //bool valid = b.aabb.intersects(ray_aabb);
if (!valid) {
@@ -1234,7 +1237,7 @@ float BakedLightBaker::_throw_ray(ThreadStack& thread_stack,bool p_bake_direct,c
}
//specular later
-// _plot_light_point(r_point,octree,octree_aabb,p_light);
+ //_plot_light_point(r_point,octree,octree_aabb,p_light);
Color plot_light=res_light.linear_interpolate(diffuse_at_point,tint);
@@ -1571,7 +1574,7 @@ double BakedLightBaker::get_normalization(int p_light_idx) const {
double nrg=0;
const LightData &dl=lights[p_light_idx];
- double cell_area = cell_size*cell_size;;
+ double cell_area = cell_size*cell_size;
//nrg+= /*dl.energy */ (dl.rays_thrown * cell_area / dl.area);
nrg=dl.rays_thrown * cell_area;
nrg*=(Math_PI*plot_size*plot_size)*0.5; // damping of radial linear gradient kernel
@@ -1589,7 +1592,7 @@ double BakedLightBaker::get_modifier(int p_light_idx) const {
double nrg=0;
const LightData &dl=lights[p_light_idx];
- double cell_area = cell_size*cell_size;;
+ double cell_area = cell_size*cell_size;
//nrg+= /*dl.energy */ (dl.rays_thrown * cell_area / dl.area);
nrg=cell_area;
nrg*=(Math_PI*plot_size*plot_size)*0.5; // damping of radial linear gradient kernel
@@ -1678,7 +1681,7 @@ void BakedLightBaker::throw_rays(ThreadStack& thread_stack,int p_amount) {
dl.rays_thrown++;
baked_light_baker_add_64i(&total_rays,1);
_throw_ray(thread_stack,dl.bake_direct,from,to,dl.radius,col,dl.attenuation_table.ptr(),0,dl.radius,max_bounces,true);
-// _throw_ray(i,from,to,dl.radius,col,NULL,0,dl.radius,max_bounces,true);
+ //_throw_ray(i,from,to,dl.radius,col,NULL,0,dl.radius,max_bounces,true);
}
} break;
@@ -1710,7 +1713,7 @@ void BakedLightBaker::throw_rays(ThreadStack& thread_stack,int p_amount) {
dl.rays_thrown++;
baked_light_baker_add_64i(&total_rays,1);
_throw_ray(thread_stack,dl.bake_direct,from,to,dl.radius,col,dl.attenuation_table.ptr(),0,dl.radius,max_bounces,true);
- // _throw_ray(i,from,to,dl.radius,col,NULL,0,dl.radius,max_bounces,true);
+ //_throw_ray(i,from,to,dl.radius,col,NULL,0,dl.radius,max_bounces,true);
}
} break;
@@ -1788,7 +1791,7 @@ void BakedLightBaker::bake(const Ref<BakedLight> &p_light, Node* p_node) {
}
-void BakedLightBaker::update_octree_sampler(DVector<int> &p_sampler) {
+void BakedLightBaker::update_octree_sampler(PoolVector<int> &p_sampler) {
BakedLightBaker::Octant *octants=octant_pool.ptr();
double norm = 1.0/double(total_rays);
@@ -1845,7 +1848,7 @@ void BakedLightBaker::update_octree_sampler(DVector<int> &p_sampler) {
}
p_sampler.resize(tmp_smp.size());
- DVector<int>::Write w = p_sampler.write();
+ PoolVector<int>::Write w = p_sampler.write();
int ss = tmp_smp.size();
for(int i=0;i<ss;i++) {
w[i]=tmp_smp[i];
@@ -1859,7 +1862,7 @@ void BakedLightBaker::update_octree_sampler(DVector<int> &p_sampler) {
double mult = baked_light->get_energy_multiplier();
float saturation = baked_light->get_saturation();
- DVector<int>::Write w = p_sampler.write();
+ PoolVector<int>::Write w = p_sampler.write();
encode_uint32(octree_depth,(uint8_t*)&w[2]);
encode_uint32(linear_color,(uint8_t*)&w[3]);
@@ -1900,7 +1903,7 @@ void BakedLightBaker::update_octree_sampler(DVector<int> &p_sampler) {
}
-void BakedLightBaker::update_octree_images(DVector<uint8_t> &p_octree,DVector<uint8_t> &p_light) {
+void BakedLightBaker::update_octree_images(PoolVector<uint8_t> &p_octree,PoolVector<uint8_t> &p_light) {
int len = baked_octree_texture_w*baked_octree_texture_h*4;
@@ -1910,10 +1913,10 @@ void BakedLightBaker::update_octree_images(DVector<uint8_t> &p_octree,DVector<ui
p_light.resize(ilen);
- DVector<uint8_t>::Write w = p_octree.write();
+ PoolVector<uint8_t>::Write w = p_octree.write();
zeromem(w.ptr(),len);
- DVector<uint8_t>::Write iw = p_light.write();
+ PoolVector<uint8_t>::Write iw = p_light.write();
zeromem(iw.ptr(),ilen);
float gamma = baked_light->get_gamma_adjust();
@@ -2010,8 +2013,10 @@ void BakedLightBaker::update_octree_images(DVector<uint8_t> &p_octree,DVector<ui
//write colors
for(int j=0;j<8;j++) {
- //if (!oct.children[j])
- // continue;
+ /*
+ if (!oct.children[j])
+ continue;
+ */
uint8_t *iptr=&lptr[ofs+lchild_offsets[j]];
float r=oct.light_accum[j][0]*norm;
@@ -2291,7 +2296,7 @@ void BakedLightBaker::_plot_pixel_to_lightmap(int x, int y, int width, int heigh
bool valid = b.aabb.smits_intersect_ray(from,n,0,len);
//bool valid = b.aabb.intersects_segment(p_begin,p_end);
- // bool valid = b.aabb.intersects(ray_aabb);
+ //bool valid = b.aabb.intersects(ray_aabb);
if (!valid) {
@@ -2612,14 +2617,14 @@ Error BakedLightBaker::transfer_to_lightmaps() {
}
}
- DVector<uint8_t> dv;
+ PoolVector<uint8_t> dv;
dv.resize(baked_textures[i].data.size());
{
- DVector<uint8_t>::Write w = dv.write();
+ PoolVector<uint8_t>::Write w = dv.write();
copymem(w.ptr(),baked_textures[i].data.ptr(),baked_textures[i].data.size());
}
- Image img(baked_textures[i].width,baked_textures[i].height,0,Image::FORMAT_RGBA,dv);
+ Image img(baked_textures[i].width,baked_textures[i].height,0,Image::FORMAT_RGBA8,dv);
Ref<ImageTexture> tex = memnew( ImageTexture );
tex->create_from_image(img);
baked_light->set_lightmap_texture(i,tex);
@@ -2649,10 +2654,13 @@ void BakedLightBaker::clear() {
/*
* ???
for(int i=0;i<octant_pool.size();i++) {
- //if (octant_pool[i].leaf) {
- // memdelete_arr( octant_pool[i].light );
- //} Vector<double> norm_arr;
- //norm_arr.resize(lights.size());
+ /*
+ if (octant_pool[i].leaf) {
+ memdelete_arr( octant_pool[i].light );
+ }
+ Vector<double> norm_arr;
+ norm_arr.resize(lights.size());
+ */
for(int i=0;i<lights.size();i++) {
norm_arr[i] = 1.0/get_normalization(i);
@@ -2674,7 +2682,7 @@ void BakedLightBaker::clear() {
materials.clear();
textures.clear();
lights.clear();
- triangles.clear();;
+ triangles.clear();
endpoint_normal.clear();
endpoint_normal_bits.clear();
baked_octree_texture_w=0;
@@ -2720,3 +2728,4 @@ BakedLightBaker::~BakedLightBaker() {
clear();
}
+#endif
diff --git a/tools/editor/plugins/baked_light_baker.h b/tools/editor/plugins/baked_light_baker.h
index d0fddf5563..89788338d9 100644
--- a/tools/editor/plugins/baked_light_baker.h
+++ b/tools/editor/plugins/baked_light_baker.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -34,6 +34,8 @@
#include "scene/3d/mesh_instance.h"
#include "os/thread.h"
+#if 0
+
class BakedLightBaker {
public:
@@ -43,10 +45,11 @@ public:
OCTANT_POOL_CHUNK=1000000
};
- //struct OctantLight {
-
- // double accum[8][3];
- //};
+ /*
+ struct OctantLight {
+ double accum[8][3];
+ };
+ */
struct Octant {
bool leaf;
@@ -362,8 +365,8 @@ public:
Error transfer_to_lightmaps();
- void update_octree_sampler(DVector<int> &p_sampler);
- void update_octree_images(DVector<uint8_t> &p_octree,DVector<uint8_t> &p_light);
+ void update_octree_sampler(PoolVector<int> &p_sampler);
+ void update_octree_images(PoolVector<uint8_t> &p_octree,PoolVector<uint8_t> &p_light);
Ref<BakedLight> get_baked_light() { return baked_light; }
@@ -375,3 +378,4 @@ public:
};
#endif // BAKED_LIGHT_BAKER_H
+#endif
diff --git a/tools/editor/plugins/baked_light_baker_cmpxchg.cpp b/tools/editor/plugins/baked_light_baker_cmpxchg.cpp
index c581995916..5e9228b7de 100644
--- a/tools/editor/plugins/baked_light_baker_cmpxchg.cpp
+++ b/tools/editor/plugins/baked_light_baker_cmpxchg.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/plugins/baked_light_editor_plugin.cpp b/tools/editor/plugins/baked_light_editor_plugin.cpp
index a58a0c25e2..6a7e708b85 100644
--- a/tools/editor/plugins/baked_light_editor_plugin.cpp
+++ b/tools/editor/plugins/baked_light_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,13 +27,14 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "baked_light_editor_plugin.h"
+
#include "scene/gui/box_container.h"
#include "scene/3d/mesh_instance.h"
#include "io/marshalls.h"
#include "io/resource_saver.h"
-
+#if 0
void BakedLightEditor::_end_baking() {
@@ -88,7 +89,7 @@ void BakedLightEditor::_notification(int p_option) {
float max_lum=0;
{
- DVector<Color>::Write cw=colors.write();
+ PoolVector<Color>::Write cw=colors.write();
BakedLightBaker::Octant *octants=baker->octant_pool.ptr();
BakedLightBaker::Octant *oct = &octants[baker->leaf_list];
int vert_idx=0;
@@ -105,8 +106,10 @@ void BakedLightEditor::_notification(int p_option) {
colors[i].b=oct->light_accum[i][2]/norm;
float lum = colors[i].get_v();
- //if (lum<0.05)
- // color.a=0;
+ /*
+ if (lum<0.05)
+ color.a=0;
+ */
if (lum>max_lum)
max_lum=lum;
@@ -141,11 +144,11 @@ void BakedLightEditor::_notification(int p_option) {
baker->update_octree_images(octree_texture,light_texture);
baker->update_octree_sampler(octree_sampler);
- // print_line("sampler size: "+itos(octree_sampler.size()*4));
+ //print_line("sampler size: "+itos(octree_sampler.size()*4));
#if 1
//debug
- Image img(baker->baked_octree_texture_w,baker->baked_octree_texture_h,0,Image::FORMAT_RGBA,octree_texture);
+ Image img(baker->baked_octree_texture_w,baker->baked_octree_texture_h,0,Image::FORMAT_RGBA8,octree_texture);
Ref<ImageTexture> it = memnew( ImageTexture );
it->create_from_image(img);
ResourceSaver::save("baked_octree.png",it);
@@ -283,10 +286,10 @@ void BakedLightEditor::_bake_lightmaps() {
void BakedLightEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_menu_option",&BakedLightEditor::_menu_option);
- ObjectTypeDB::bind_method("_bake_pressed",&BakedLightEditor::_bake_pressed);
- ObjectTypeDB::bind_method("_clear_pressed",&BakedLightEditor::_clear_pressed);
- ObjectTypeDB::bind_method("_bake_lightmaps",&BakedLightEditor::_bake_lightmaps);
+ ClassDB::bind_method("_menu_option",&BakedLightEditor::_menu_option);
+ ClassDB::bind_method("_bake_pressed",&BakedLightEditor::_bake_pressed);
+ ClassDB::bind_method("_clear_pressed",&BakedLightEditor::_clear_pressed);
+ ClassDB::bind_method("_bake_lightmaps",&BakedLightEditor::_bake_lightmaps);
}
BakedLightEditor::BakedLightEditor() {
@@ -373,3 +376,4 @@ BakedLightEditorPlugin::~BakedLightEditorPlugin()
}
+#endif
diff --git a/tools/editor/plugins/baked_light_editor_plugin.h b/tools/editor/plugins/baked_light_editor_plugin.h
index 4985d7513e..e311fe9f17 100644
--- a/tools/editor/plugins/baked_light_editor_plugin.h
+++ b/tools/editor/plugins/baked_light_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,19 +40,19 @@
@author Juan Linietsky <reduzio@gmail.com>
*/
-
+#if 0
class MeshInstance;
class BakedLightEditor : public Control {
- OBJ_TYPE(BakedLightEditor, Control );
+ GDCLASS(BakedLightEditor, Control );
float update_timeout;
- DVector<uint8_t> octree_texture;
- DVector<uint8_t> light_texture;
- DVector<int> octree_sampler;
+ PoolVector<uint8_t> octree_texture;
+ PoolVector<uint8_t> light_texture;
+ PoolVector<int> octree_sampler;
BakedLightBaker *baker;
AcceptDialog *err_dialog;
@@ -97,7 +97,7 @@ public:
class BakedLightEditorPlugin : public EditorPlugin {
- OBJ_TYPE( BakedLightEditorPlugin, EditorPlugin );
+ GDCLASS( BakedLightEditorPlugin, EditorPlugin );
BakedLightEditor *baked_light_editor;
EditorNode *editor;
@@ -116,5 +116,5 @@ public:
};
#endif // MULTIMESH_EDITOR_PLUGIN_H
-
+#endif
diff --git a/tools/editor/plugins/camera_editor_plugin.cpp b/tools/editor/plugins/camera_editor_plugin.cpp
index 9c25de695c..1e0ec2b4a0 100644
--- a/tools/editor/plugins/camera_editor_plugin.cpp
+++ b/tools/editor/plugins/camera_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "camera_editor_plugin.h"
+
#include "spatial_editor_plugin.h"
@@ -61,7 +62,7 @@ void CameraEditor::_pressed() {
void CameraEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_pressed"),&CameraEditor::_pressed);
+ ClassDB::bind_method(_MD("_pressed"),&CameraEditor::_pressed);
}
@@ -108,16 +109,14 @@ void CameraEditorPlugin::edit(Object *p_object) {
bool CameraEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("Camera");
+ return p_object->is_class("Camera");
}
void CameraEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
-// SpatialEditor::get_singleton()->set_can_preview(p_object->cast_to<Camera>());
-
+ //SpatialEditor::get_singleton()->set_can_preview(p_object->cast_to<Camera>());
} else {
-
SpatialEditor::get_singleton()->set_can_preview(NULL);
}
diff --git a/tools/editor/plugins/camera_editor_plugin.h b/tools/editor/plugins/camera_editor_plugin.h
index ea016ecb4d..7e79d0ec74 100644
--- a/tools/editor/plugins/camera_editor_plugin.h
+++ b/tools/editor/plugins/camera_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -39,7 +39,7 @@
class CameraEditor : public Control {
- OBJ_TYPE(CameraEditor, Control );
+ GDCLASS(CameraEditor, Control );
Panel *panel;
Button * preview;
@@ -58,9 +58,9 @@ public:
class CameraEditorPlugin : public EditorPlugin {
- OBJ_TYPE( CameraEditorPlugin, EditorPlugin );
+ GDCLASS( CameraEditorPlugin, EditorPlugin );
-// CameraEditor *camera_editor;
+ //CameraEditor *camera_editor;
EditorNode *editor;
public:
diff --git a/tools/editor/plugins/canvas_item_editor_plugin.cpp b/tools/editor/plugins/canvas_item_editor_plugin.cpp
index af9fd69ae7..bec7956b8c 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "canvas_item_editor_plugin.h"
+
#include "print_string.h"
#include "tools/editor/editor_node.h"
#include "os/keyboard.h"
@@ -41,7 +42,7 @@
#include "os/input.h"
#include "tools/editor/editor_settings.h"
#include "scene/gui/grid_container.h"
-#include "scene/gui/patch_9_frame.h"
+#include "scene/gui/patch_9_rect.h"
#include "tools/editor/animation_editor.h"
#include "tools/editor/plugins/animation_player_editor_plugin.h"
#include "tools/editor/script_editor_debugger.h"
@@ -55,7 +56,7 @@
class SnapDialog : public ConfirmationDialog {
- OBJ_TYPE(SnapDialog,ConfirmationDialog);
+ GDCLASS(SnapDialog,ConfirmationDialog);
friend class CanvasItemEditor;
@@ -79,7 +80,7 @@ public:
container = memnew( VBoxContainer );
add_child(container);
- set_child_rect(container);
+ //set_child_rect(container);
child_container = memnew( GridContainer );
child_container->set_columns(3);
@@ -149,21 +150,21 @@ public:
}
void set_fields(const Point2 p_grid_offset, const Size2 p_grid_step, const float p_rotation_offset, const float p_rotation_step) {
- grid_offset_x->set_val(p_grid_offset.x);
- grid_offset_y->set_val(p_grid_offset.y);
- grid_step_x->set_val(p_grid_step.x);
- grid_step_y->set_val(p_grid_step.y);
- rotation_offset->set_val(p_rotation_offset * (180 / Math_PI));
- rotation_step->set_val(p_rotation_step * (180 / Math_PI));
+ grid_offset_x->set_value(p_grid_offset.x);
+ grid_offset_y->set_value(p_grid_offset.y);
+ grid_step_x->set_value(p_grid_step.x);
+ grid_step_y->set_value(p_grid_step.y);
+ rotation_offset->set_value(p_rotation_offset * (180 / Math_PI));
+ rotation_step->set_value(p_rotation_step * (180 / Math_PI));
}
void get_fields(Point2 &p_grid_offset, Size2 &p_grid_step, float &p_rotation_offset, float &p_rotation_step) {
- p_grid_offset.x = grid_offset_x->get_val();
- p_grid_offset.y = grid_offset_y->get_val();
- p_grid_step.x = grid_step_x->get_val();
- p_grid_step.y = grid_step_y->get_val();
- p_rotation_offset = rotation_offset->get_val() / (180 / Math_PI);
- p_rotation_step = rotation_step->get_val() / (180 / Math_PI);
+ p_grid_offset.x = grid_offset_x->get_value();
+ p_grid_offset.y = grid_offset_y->get_value();
+ p_grid_step.x = grid_step_x->get_value();
+ p_grid_step.y = grid_step_y->get_value();
+ p_rotation_offset = rotation_offset->get_value() / (180 / Math_PI);
+ p_rotation_step = rotation_step->get_value() / (180 / Math_PI);
}
};
@@ -179,7 +180,7 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2& mouse_pos) {
if (n2d && n2d->edit_has_pivot()) {
Vector2 offset = n2d->edit_get_pivot();
- Vector2 gpos = n2d->get_global_pos();
+ Vector2 gpos = n2d->get_global_position();
Vector2 local_mouse_pos = n2d->get_canvas_transform().affine_inverse().xform(mouse_pos);
@@ -194,8 +195,8 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2& mouse_pos) {
if (!n2dc)
continue;
- undo_redo->add_do_method(n2dc,"set_global_pos",n2dc->get_global_pos());
- undo_redo->add_undo_method(n2dc,"set_global_pos",n2dc->get_global_pos());
+ undo_redo->add_do_method(n2dc,"set_global_pos",n2dc->get_global_position());
+ undo_redo->add_undo_method(n2dc,"set_global_pos",n2dc->get_global_position());
}
@@ -209,7 +210,7 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2& mouse_pos) {
void CanvasItemEditor::_unhandled_key_input(const InputEvent& p_ev) {
- if (!is_visible() || get_viewport()->gui_has_modal_stack())
+ if (!is_visible_in_tree() || get_viewport()->gui_has_modal_stack())
return;
if (p_ev.key.mod.control)
@@ -286,8 +287,8 @@ Dictionary CanvasItemEditor::get_state() const {
Dictionary state;
state["zoom"]=zoom;
- state["ofs"]=Point2(h_scroll->get_val(),v_scroll->get_val());
-// state["ofs"]=-transform.get_origin();
+ state["ofs"]=Point2(h_scroll->get_value(),v_scroll->get_value());
+ //state["ofs"]=-transform.get_origin();
state["snap_offset"]=snap_offset;
state["snap_step"]=snap_step;
state["snap_rotation_offset"]=snap_rotation_offset;
@@ -310,8 +311,8 @@ void CanvasItemEditor::set_state(const Dictionary& p_state){
if (state.has("ofs")) {
_update_scrollbars(); // i wonder how safe is calling this here..
Point2 ofs=p_state["ofs"];
- h_scroll->set_val(ofs.x);
- v_scroll->set_val(ofs.y);
+ h_scroll->set_value(ofs.x);
+ v_scroll->set_value(ofs.y);
}
if (state.has("snap_step")) {
@@ -391,7 +392,7 @@ void CanvasItemEditor::_remove_canvas_item(CanvasItem *p_canvas_item) {
}
void CanvasItemEditor::_clear_canvas_items() {
- editor_selection->clear();;
+ editor_selection->clear();
#if 0
while(canvas_items.size())
_remove_canvas_item(canvas_items.front()->key());
@@ -425,7 +426,7 @@ void CanvasItemEditor::_node_removed(Node *p_node) {
void CanvasItemEditor::_keying_changed() {
- if (AnimationPlayerEditor::singleton->get_key_editor()->is_visible())
+ if (AnimationPlayerEditor::singleton->get_key_editor()->is_visible_in_tree())
animation_hb->show();
else
animation_hb->hide();
@@ -440,7 +441,7 @@ bool CanvasItemEditor::_is_part_of_subscene(CanvasItem *p_item) {
}
// slow but modern computers should have no problem
-CanvasItem* CanvasItemEditor::_select_canvas_item_at_pos(const Point2& p_pos,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform) {
+CanvasItem* CanvasItemEditor::_select_canvas_item_at_pos(const Point2& p_pos,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform) {
if (!p_node)
return NULL;
@@ -465,7 +466,7 @@ CanvasItem* CanvasItemEditor::_select_canvas_item_at_pos(const Point2& p_pos,Nod
return r;
}
- if (c && c->is_visible() && !c->has_meta("_edit_lock_") && !_is_part_of_subscene(c) && !c->cast_to<CanvasLayer>()) {
+ if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !_is_part_of_subscene(c) && !c->cast_to<CanvasLayer>()) {
Rect2 rect = c->get_item_rect();
Point2 local_pos = (p_parent_xform * p_canvas_xform * c->get_transform()).affine_inverse().xform(p_pos);
@@ -479,7 +480,7 @@ CanvasItem* CanvasItemEditor::_select_canvas_item_at_pos(const Point2& p_pos,Nod
return NULL;
}
-void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform, Vector<_SelectResult> &r_items) {
+void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform, Vector<_SelectResult> &r_items) {
if (!p_node)
return;
if (p_node->cast_to<Viewport>())
@@ -498,7 +499,7 @@ void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos,Node* p_nod
}
- if (c && c->is_visible() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) {
+ if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) {
Rect2 rect = c->get_item_rect();
Point2 local_pos = (p_parent_xform * p_canvas_xform * c->get_transform()).affine_inverse().xform(p_pos);
@@ -519,7 +520,7 @@ void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos,Node* p_nod
return;
}
-void CanvasItemEditor::_find_canvas_items_at_rect(const Rect2& p_rect,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform,List<CanvasItem*> *r_items) {
+void CanvasItemEditor::_find_canvas_items_at_rect(const Rect2& p_rect,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform,List<CanvasItem*> *r_items) {
if (!p_node)
return;
@@ -529,21 +530,28 @@ void CanvasItemEditor::_find_canvas_items_at_rect(const Rect2& p_rect,Node* p_no
CanvasItem *c=p_node->cast_to<CanvasItem>();
- for (int i=p_node->get_child_count()-1;i>=0;i--) {
+ bool inherited=p_node!=get_tree()->get_edited_scene_root() && p_node->get_filename()!="";
+ bool editable=false;
+ if (inherited){
+ editable=EditorNode::get_singleton()->get_edited_scene()->is_editable_instance(p_node);
+ }
+ bool lock_children=p_node->has_meta("_edit_group_") && p_node->get_meta("_edit_group_");
+ if (!lock_children && (!inherited || editable)) {
+ for (int i=p_node->get_child_count()-1;i>=0;i--) {
- if (c && !c->is_set_as_toplevel())
- _find_canvas_items_at_rect(p_rect,p_node->get_child(i),p_parent_xform * c->get_transform(),p_canvas_xform,r_items);
- else {
- CanvasLayer *cl = p_node->cast_to<CanvasLayer>();
- _find_canvas_items_at_rect(p_rect,p_node->get_child(i),transform,cl?cl->get_transform():p_canvas_xform,r_items);
+ if (c && !c->is_set_as_toplevel())
+ _find_canvas_items_at_rect(p_rect,p_node->get_child(i),p_parent_xform * c->get_transform(),p_canvas_xform,r_items);
+ else {
+ CanvasLayer *cl = p_node->cast_to<CanvasLayer>();
+ _find_canvas_items_at_rect(p_rect,p_node->get_child(i),transform,cl?cl->get_transform():p_canvas_xform,r_items);
+ }
}
}
-
- if (c && c->is_visible() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) {
+ if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) {
Rect2 rect = c->get_item_rect();
- Matrix32 xform = p_parent_xform * p_canvas_xform * c->get_transform();
+ Transform2D xform = p_parent_xform * p_canvas_xform * c->get_transform();
if ( p_rect.has_point( xform.xform( rect.pos ) ) &&
p_rect.has_point( xform.xform( rect.pos+Vector2(rect.size.x,0) ) ) &&
@@ -594,7 +602,7 @@ bool CanvasItemEditor::_select(CanvasItem *item, Point2 p_click_pos, bool p_appe
if (!item) {
//clear because nothing clicked
- editor_selection->clear();;
+ editor_selection->clear();
if (p_drag) {
drag_from=transform.affine_inverse().xform(p_click_pos);
@@ -626,7 +634,7 @@ bool CanvasItemEditor::_select(CanvasItem *item, Point2 p_click_pos, bool p_appe
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -669,7 +677,7 @@ void CanvasItemEditor::_key_move(const Vector2& p_dir, bool p_snap, KeyMoveMODE
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -701,11 +709,11 @@ void CanvasItemEditor::_key_move(const Vector2& p_dir, bool p_snap, KeyMoveMODE
if (Node2D *node_2d = canvas_item->cast_to<Node2D>()) {
if (p_move_mode == MOVE_LOCAL_WITH_ROT) {
- Matrix32 m;
- m.rotate( node_2d->get_rot() );
+ Transform2D m;
+ m.rotate( node_2d->get_rotation() );
drag = m.xform(drag);
}
- node_2d->set_pos(node_2d->get_pos() + drag);
+ node_2d->set_position(node_2d->get_position() + drag);
} else if (Control *control = canvas_item->cast_to<Control>()) {
@@ -731,7 +739,7 @@ Point2 CanvasItemEditor::_find_topleftmost_point() {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -740,7 +748,7 @@ Point2 CanvasItemEditor::_find_topleftmost_point() {
Rect2 rect=canvas_item->get_item_rect();
- Matrix32 xform=canvas_item->get_global_transform_with_canvas();
+ Transform2D xform=canvas_item->get_global_transform_with_canvas();
r2.expand_to(xform.xform(rect.pos));
r2.expand_to(xform.xform(rect.pos+Vector2(rect.size.x,0)));
@@ -762,7 +770,7 @@ int CanvasItemEditor::get_item_count() {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -784,7 +792,7 @@ CanvasItem *CanvasItemEditor::get_single_item() {
for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -798,15 +806,15 @@ CanvasItem *CanvasItemEditor::get_single_item() {
return single_item;
}
-CanvasItemEditor::DragType CanvasItemEditor::_find_drag_type(const Matrix32& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point) {
+CanvasItemEditor::DragType CanvasItemEditor::_find_drag_type(const Transform2D& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point) {
CanvasItem *canvas_item = get_single_item();
ERR_FAIL_COND_V(!canvas_item,DRAG_NONE);
Rect2 rect=canvas_item->get_item_rect();
- Matrix32 xforml=canvas_item->get_global_transform_with_canvas();
- Matrix32 xform=transform * xforml;
+ Transform2D xforml=canvas_item->get_global_transform_with_canvas();
+ Transform2D xform=transform * xforml;
Vector2 endpoints[4]={
@@ -954,7 +962,7 @@ void CanvasItemEditor::_dialog_value_changed(double) {
case ZOOM_SET: {
- zoom=dialog_val->get_val()/100.0;
+ zoom=dialog_val->get_value()/100.0;
_update_scroll(0);
viewport->update();
@@ -996,7 +1004,7 @@ void CanvasItemEditor::_list_select(const InputEventMouseButton& b) {
if (!scene)
return;
- _find_canvas_items_at_pos(click, scene,transform,Matrix32(), selection_results);
+ _find_canvas_items_at_pos(click, scene,transform,Transform2D(), selection_results);
for(int i=0;i<selection_results.size();i++) {
CanvasItem *item=selection_results[i].item;
@@ -1033,7 +1041,7 @@ void CanvasItemEditor::_list_select(const InputEventMouseButton& b) {
if (item->has_meta("_editor_icon"))
icon=item->get_meta("_editor_icon");
else
- icon=get_icon( has_icon(item->get_type(),"EditorIcons")?item->get_type():String("Object"),"EditorIcons");
+ icon=get_icon( has_icon(item->get_class(),"EditorIcons")?item->get_class():String("Object"),"EditorIcons");
String node_path="/"+root_name+"/"+root_path.rel_path_to(item->get_path());
@@ -1041,7 +1049,7 @@ void CanvasItemEditor::_list_select(const InputEventMouseButton& b) {
selection_menu->set_item_icon(i, icon );
selection_menu->set_item_metadata(i, node_path);
selection_menu->set_item_tooltip(i,String(item->get_name())+
- "\nType: "+item->get_type()+"\nPath: "+node_path);
+ "\nType: "+item->get_class()+"\nPath: "+node_path);
}
additive_selection=b.mod.shift;
@@ -1057,7 +1065,7 @@ void CanvasItemEditor::_list_select(const InputEventMouseButton& b) {
}
-void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
+void CanvasItemEditor::_viewport_gui_input(const InputEvent& p_event) {
{
@@ -1065,7 +1073,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
EditorPluginList *over_plugin_list = en->get_editor_plugins_over();
if (!over_plugin_list->empty()) {
- bool discard = over_plugin_list->forward_input_event(transform,p_event);
+ bool discard = over_plugin_list->forward_gui_input(transform,p_event);
if (discard) {
accept_event();
return;
@@ -1089,8 +1097,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
{
Point2 ofs(b.x,b.y);
ofs = ofs/prev_zoom - ofs/zoom;
- h_scroll->set_val( h_scroll->get_val() + ofs.x );
- v_scroll->set_val( v_scroll->get_val() + ofs.y );
+ h_scroll->set_value( h_scroll->get_value() + ofs.x );
+ v_scroll->set_value( v_scroll->get_value() + ofs.y );
}
_update_scroll(0);
viewport->update();
@@ -1107,8 +1115,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
{
Point2 ofs(b.x,b.y);
ofs = ofs/prev_zoom - ofs/zoom;
- h_scroll->set_val( h_scroll->get_val() + ofs.x );
- v_scroll->set_val( v_scroll->get_val() + ofs.y );
+ h_scroll->set_value( h_scroll->get_value() + ofs.x );
+ v_scroll->set_value( v_scroll->get_value() + ofs.y );
}
_update_scroll(0);
@@ -1145,7 +1153,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -1180,8 +1188,10 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
}
return;
}
- //if (!canvas_items.size())
- // return;
+ /*
+ if (!canvas_items.size())
+ return;
+ */
if (b.button_index==BUTTON_LEFT && tool==TOOL_LIST_SELECT) {
if (b.pressed)
@@ -1240,7 +1250,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -1288,7 +1298,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (bsfrom.y>bsto.y)
SWAP(bsfrom.y,bsto.y);
- _find_canvas_items_at_rect(Rect2(bsfrom,bsto-bsfrom),scene,transform,Matrix32(),&selitems);
+ _find_canvas_items_at_rect(Rect2(bsfrom,bsto-bsfrom),scene,transform,Transform2D(),&selitems);
for(List<CanvasItem*>::Element *E=selitems.front();E;E=E->next()) {
@@ -1310,7 +1320,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
{
bone_ik_list.clear();
float closest_dist=1e20;
- int bone_width = EditorSettings::get_singleton()->get("2d_editor/bone_width");
+ int bone_width = EditorSettings::get_singleton()->get("editors/2d/bone_width");
for(Map<ObjectID,BoneList>::Element *E=bone_list.front();E;E=E->next()) {
if (E->get().from == E->get().to)
@@ -1348,7 +1358,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (!pi)
break;
- float len=pi->get_global_transform().get_origin().distance_to(b->get_global_pos());
+ float len=pi->get_global_transform().get_origin().distance_to(b->get_global_position());
b=pi->cast_to<Node2D>();
if (!b)
break;
@@ -1408,9 +1418,9 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
return;
}
- Matrix32 xform = transform * canvas_item->get_global_transform_with_canvas();
+ Transform2D xform = transform * canvas_item->get_global_transform_with_canvas();
Rect2 rect=canvas_item->get_item_rect();
- // float handle_radius = handle_len * 1.4144; //magic number, guess what it means!
+ //float handle_radius = handle_len * 1.4144; //magic number, guess what it means!
if (tool==TOOL_SELECT) {
drag = _find_drag_type(xform,rect,click,drag_point_from);
@@ -1451,7 +1461,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -1497,7 +1507,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
}
if (!c) {
- c =_select_canvas_item_at_pos(click, scene,transform,Matrix32());
+ c =_select_canvas_item_at_pos(click, scene,transform,Transform2D());
CanvasItem* cn = c;
@@ -1512,7 +1522,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
Node* n = c;
- while ((n && n != scene && n->get_owner() != scene) || (n && !n->is_type("CanvasItem"))) {
+ while ((n && n != scene && n->get_owner() != scene) || (n && !n->is_class("CanvasItem"))) {
n = n->get_parent();
};
c = n->cast_to<CanvasItem>();
@@ -1528,7 +1538,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (p_event.type==InputEvent::MOUSE_MOTION) {
- if (!viewport->has_focus() && (!get_focus_owner() || !get_focus_owner()->is_text_field()))
+ if (!viewport->has_focus() && (!get_focus_owner() || !get_focus_owner()->is_text_field()))
viewport->call_deferred("grab_focus");
const InputEventMouseMotion &m=p_event.mouse_motion;
@@ -1546,9 +1556,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if ( (m.button_mask&BUTTON_MASK_LEFT && tool == TOOL_PAN) || m.button_mask&BUTTON_MASK_MIDDLE || (m.button_mask&BUTTON_MASK_LEFT && Input::get_singleton()->is_key_pressed(KEY_SPACE))) {
-
- h_scroll->set_val( h_scroll->get_val() - m.relative_x/zoom);
- v_scroll->set_val( v_scroll->get_val() - m.relative_y/zoom);
+ h_scroll->set_value( h_scroll->get_value() - m.relative_x/zoom);
+ v_scroll->set_value( v_scroll->get_value() - m.relative_y/zoom);
}
return;
@@ -1561,7 +1570,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -1594,10 +1603,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (node) {
- Matrix32 rot;
- rot.elements[1] = (dfrom - center).normalized();
- rot.elements[0] = rot.elements[1].tangent();
- node->set_rot(snap_angle(rot.xform_inv(dto-center).angle() + node->get_rot(), node->get_rot()));
+ real_t angle = node->get_rotation();
+ node->set_rotation(snap_angle( angle + (dfrom - center).angle_to(dto-center), angle ));
display_rotate_to = dto;
display_rotate_from = center;
viewport->update();
@@ -1609,10 +1616,8 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (node) {
- Matrix32 rot;
- rot.elements[1] = (dfrom - center).normalized();
- rot.elements[0] = rot.elements[1].tangent();
- node->set_rotation(snap_angle(rot.xform_inv(dto-center).angle() + node->get_rotation(), node->get_rotation()));
+ real_t angle = node->get_rotation();
+ node->set_rotation(snap_angle( angle + (dfrom - center).angle_to(dto-center), angle ));
display_rotate_to = dto;
display_rotate_from = center;
viewport->update();
@@ -1649,7 +1654,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
Vector2 minsize = canvas_item->edit_get_minimum_size();
if (uniform) {
- float aspect = local_rect.size.get_aspect();
+ float aspect = local_rect.size.aspect();
switch(drag) {
case DRAG_BOTTOM_LEFT:
case DRAG_TOP_RIGHT: {
@@ -1745,7 +1750,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
Node2D *n2d = canvas_item->cast_to<Node2D>();
- Matrix32 final_xform = bone_orig_xform;
+ Transform2D final_xform = bone_orig_xform;
@@ -1847,11 +1852,11 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
if (!E->prev()) {
//last goes to what it was
- final_xform.set_origin(n->get_global_pos());
+ final_xform.set_origin(n->get_global_position());
n->set_global_transform(final_xform);
} else {
- Vector2 rel = (E->prev()->get().node->get_global_pos() - n->get_global_pos()).normalized();
+ Vector2 rel = (E->prev()->get().node->get_global_position() - n->get_global_position()).normalized();
Vector2 rel2 = (E->prev()->get().pos - E->get().pos).normalized();
float rot = rel.angle_to(rel2);
if (n->get_global_transform().basis_determinant()<0) {
@@ -1917,7 +1922,7 @@ void CanvasItemEditor::_viewport_draw() {
if (snap_show_grid) {
Size2 s = viewport->get_size();
int last_cell;
- Matrix32 xform = transform.affine_inverse();
+ Transform2D xform = transform.affine_inverse();
if (snap_step.x!=0) {
for(int i=0;i<s.width;i++) {
@@ -1944,9 +1949,9 @@ void CanvasItemEditor::_viewport_draw() {
if (viewport->has_focus()) {
Size2 size = viewport->get_size();
- if (v_scroll->is_visible())
+ if (v_scroll->is_visible_in_tree())
size.width-=v_scroll->get_size().width;
- if (h_scroll->is_visible())
+ if (h_scroll->is_visible_in_tree())
size.height-=h_scroll->get_size().height;
get_stylebox("EditorFocus","EditorStyles")->draw(ci,Rect2(Point2(),size));
@@ -1955,7 +1960,6 @@ void CanvasItemEditor::_viewport_draw() {
Ref<Texture> lock = get_icon("Lock","EditorIcons");
Ref<Texture> group = get_icon("Group","EditorIcons");
- VisualServer::get_singleton()->canvas_item_set_clip(ci,true);
bool single = get_single_item()!=NULL;
@@ -1967,7 +1971,7 @@ void CanvasItemEditor::_viewport_draw() {
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
continue;
@@ -1978,7 +1982,7 @@ void CanvasItemEditor::_viewport_draw() {
Rect2 rect=canvas_item->get_item_rect();
- Matrix32 xform=transform * canvas_item->get_global_transform_with_canvas();
+ Transform2D xform=transform * canvas_item->get_global_transform_with_canvas();
VisualServer::get_singleton()->canvas_item_add_set_transform(ci,xform);
Vector2 endpoints[4]={
@@ -1991,7 +1995,7 @@ void CanvasItemEditor::_viewport_draw() {
Color c = Color(1,0.6,0.4,0.7);
- VisualServer::get_singleton()->canvas_item_add_set_transform(ci,Matrix32());
+ VisualServer::get_singleton()->canvas_item_add_set_transform(ci,Transform2D());
for(int i=0;i<4;i++) {
viewport->draw_line(endpoints[i],endpoints[(i+1)%4],c,2);
@@ -2041,7 +2045,7 @@ void CanvasItemEditor::_viewport_draw() {
}
pivot_button->set_disabled(!pivot_found);
- VisualServer::get_singleton()->canvas_item_add_set_transform(ci,Matrix32());
+ VisualServer::get_singleton()->canvas_item_add_set_transform(ci,Transform2D());
@@ -2067,7 +2071,7 @@ void CanvasItemEditor::_viewport_draw() {
VisualServer::get_singleton()->canvas_item_add_line(ci,transform.xform(display_rotate_from), transform.xform(display_rotate_to),rotate_color);
}
- Size2 screen_size = Size2( Globals::get_singleton()->get("display/width"), Globals::get_singleton()->get("display/height") );
+ Size2 screen_size = Size2( GlobalConfig::get_singleton()->get("display/window/width"), GlobalConfig::get_singleton()->get("display/window/height") );
Vector2 screen_endpoints[4]= {
transform.xform(Vector2(0,0)),
@@ -2110,11 +2114,11 @@ void CanvasItemEditor::_viewport_draw() {
}
if (skeleton_show_bones) {
- int bone_width = EditorSettings::get_singleton()->get("2d_editor/bone_width");
- Color bone_color1 = EditorSettings::get_singleton()->get("2d_editor/bone_color1");
- Color bone_color2 = EditorSettings::get_singleton()->get("2d_editor/bone_color2");
- Color bone_ik_color = EditorSettings::get_singleton()->get("2d_editor/bone_ik_color");
- Color bone_selected_color = EditorSettings::get_singleton()->get("2d_editor/bone_selected_color");
+ int bone_width = EditorSettings::get_singleton()->get("editors/2d/bone_width");
+ Color bone_color1 = EditorSettings::get_singleton()->get("editors/2d/bone_color1");
+ Color bone_color2 = EditorSettings::get_singleton()->get("editors/2d/bone_color2");
+ Color bone_ik_color = EditorSettings::get_singleton()->get("editors/2d/bone_ik_color");
+ Color bone_selected_color = EditorSettings::get_singleton()->get("editors/2d/bone_selected_color");
for(Map<ObjectID,BoneList>::Element*E=bone_list.front();E;E=E->next()) {
@@ -2140,8 +2144,8 @@ void CanvasItemEditor::_viewport_draw() {
if (!pn2d)
continue;
- Vector2 from = transform.xform(pn2d->get_global_pos());
- Vector2 to = transform.xform(n2d->get_global_pos());
+ Vector2 from = transform.xform(pn2d->get_global_position());
+ Vector2 to = transform.xform(n2d->get_global_position());
E->get().from=from;
E->get().to=to;
@@ -2196,7 +2200,7 @@ void CanvasItemEditor::_notification(int p_what) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2213,7 +2217,7 @@ void CanvasItemEditor::_notification(int p_what) {
Rect2 r=canvas_item->get_item_rect();
- Matrix32 xform = canvas_item->get_transform();
+ Transform2D xform = canvas_item->get_transform();
if (r != se->prev_rect || xform!=se->prev_xform) {
viewport->update();
@@ -2224,7 +2228,7 @@ void CanvasItemEditor::_notification(int p_what) {
}
bool show_anchor = all_control && has_control;
- if (show_anchor != !anchor_menu->is_hidden()) {
+ if (show_anchor != anchor_menu->is_visible()) {
if (show_anchor)
anchor_menu->show();
else
@@ -2328,7 +2332,7 @@ void CanvasItemEditor::edit(CanvasItem *p_canvas_item) {
}
-void CanvasItemEditor::_find_canvas_items_span(Node *p_node, Rect2& r_rect, const Matrix32& p_xform) {
+void CanvasItemEditor::_find_canvas_items_span(Node *p_node, Rect2& r_rect, const Transform2D& p_xform) {
@@ -2340,20 +2344,20 @@ void CanvasItemEditor::_find_canvas_items_span(Node *p_node, Rect2& r_rect, cons
for (int i=p_node->get_child_count()-1;i>=0;i--) {
-// CanvasItem *r=NULL;
+ //CanvasItem *r=NULL;
if (c && !c->is_set_as_toplevel())
_find_canvas_items_span(p_node->get_child(i),r_rect,p_xform * c->get_transform());
else
- _find_canvas_items_span(p_node->get_child(i),r_rect,Matrix32());
+ _find_canvas_items_span(p_node->get_child(i),r_rect,Transform2D());
}
- if (c) {
+ if (c && c->is_visible_in_tree()) {
Rect2 rect = c->get_item_rect();
- Matrix32 xform = p_xform * c->get_transform();
+ Transform2D xform = p_xform * c->get_transform();
LockList lock;
@@ -2402,19 +2406,20 @@ void CanvasItemEditor::_update_scrollbars() {
h_scroll->set_end( Point2(size.width-vmin.width, size.height) );
- Size2 screen_rect = Size2( Globals::get_singleton()->get("display/width"), Globals::get_singleton()->get("display/height") );
+ Size2 screen_rect = Size2( GlobalConfig::get_singleton()->get("display/window/width"), GlobalConfig::get_singleton()->get("display/window/height") );
+
Rect2 local_rect = Rect2(Point2(),viewport->get_size()-Size2(vmin.width,hmin.height));
Rect2 canvas_item_rect=Rect2(Point2(),screen_rect);
- lock_list.clear();;
+ lock_list.clear();
bone_last_frame++;
if (editor->get_edited_scene())
- _find_canvas_items_span(editor->get_edited_scene(),canvas_item_rect,Matrix32());
+ _find_canvas_items_span(editor->get_edited_scene(),canvas_item_rect,Transform2D());
List<Map<ObjectID,BoneList>::Element*> bone_to_erase;
@@ -2449,13 +2454,13 @@ void CanvasItemEditor::_update_scrollbars() {
v_scroll->set_page(local_rect.size.y/zoom);
if (first_update) {
//so 0,0 is visible
- v_scroll->set_val(-10);
- h_scroll->set_val(-10);
+ v_scroll->set_value(-10);
+ h_scroll->set_value(-10);
first_update=false;
}
- ofs.y=v_scroll->get_val();
+ ofs.y=v_scroll->get_value();
}
if (canvas_item_rect.size.width <= (local_rect.size.x/zoom)) {
@@ -2468,17 +2473,18 @@ void CanvasItemEditor::_update_scrollbars() {
h_scroll->set_min(canvas_item_rect.pos.x);
h_scroll->set_max(canvas_item_rect.pos.x+canvas_item_rect.size.x);
h_scroll->set_page(local_rect.size.x/zoom);
- ofs.x=h_scroll->get_val();
+ ofs.x=h_scroll->get_value();
}
-// transform=Matrix32();
+ //transform=Matrix32();
transform.elements[2]=-ofs*zoom;
+
editor->get_scene_root()->set_global_canvas_transform(transform);
updating_scroll=false;
-// transform.scale_basis(Vector2(zoom,zoom));
+ //transform.scale_basis(Vector2(zoom,zoom));
}
@@ -2490,12 +2496,12 @@ void CanvasItemEditor::_update_scroll(float) {
return;
Point2 ofs;
- ofs.x=h_scroll->get_val();
- ofs.y=v_scroll->get_val();
+ ofs.x=h_scroll->get_value();
+ ofs.y=v_scroll->get_value();
-// current_window->set_scroll(-ofs);
+ //current_window->set_scroll(-ofs);
- transform=Matrix32();
+ transform=Transform2D();
transform.scale_basis(Size2(zoom,zoom));
transform.elements[2]=-ofs;
@@ -2604,7 +2610,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
dialog_val->set_min(0.1);
dialog_val->set_step(0.1);
dialog_val->set_max(800);
- dialog_val->set_val(zoom*100);
+ dialog_val->set_value(zoom*100);
value_dialog->popup_centered(Size2(200,85));
updating_value_dialog=false;
@@ -2617,7 +2623,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2635,7 +2641,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2656,7 +2662,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2674,7 +2680,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2695,7 +2701,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2816,7 +2822,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2826,9 +2832,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
Node2D *n2d = canvas_item->cast_to<Node2D>();
if (key_pos)
- AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/pos",n2d->get_pos(),existing);
+ AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/pos",n2d->get_position(),existing);
if (key_rot)
- AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/rot",Math::rad2deg(n2d->get_rot()),existing);
+ AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/rot",Math::rad2deg(n2d->get_rotation()),existing);
if (key_scale)
AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d,"transform/scale",n2d->get_scale(),existing);
@@ -2858,9 +2864,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(List<Node2D*>::Element *F=ik_chain.front();F;F=F->next()) {
if (key_pos)
- AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/pos",F->get()->get_pos(),existing);
+ AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/pos",F->get()->get_position(),existing);
if (key_rot)
- AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/rot",Math::rad2deg(F->get()->get_rot()),existing);
+ AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/rot",Math::rad2deg(F->get()->get_rotation()),existing);
if (key_scale)
AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(F->get(),"transform/scale",F->get()->get_scale(),existing);
@@ -2921,7 +2927,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
} break;*/
case ANIM_COPY_POSE: {
- pose_clipboard.clear();;
+ pose_clipboard.clear();
Map<Node*,Object*> &selection = editor_selection->get_selection();
@@ -2929,7 +2935,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2940,8 +2946,8 @@ void CanvasItemEditor::_popup_callback(int p_op) {
Node2D *n2d = canvas_item->cast_to<Node2D>();
PoseClipboard pc;
- pc.pos=n2d->get_pos();
- pc.rot=n2d->get_rot();
+ pc.pos=n2d->get_position();
+ pc.rot=n2d->get_rotation();
pc.scale=n2d->get_scale();
pc.id=n2d->get_instance_ID();
pose_clipboard.push_back(pc);
@@ -2967,8 +2973,8 @@ void CanvasItemEditor::_popup_callback(int p_op) {
undo_redo->add_do_method(n2d,"set_pos",E->get().pos);
undo_redo->add_do_method(n2d,"set_rot",E->get().rot);
undo_redo->add_do_method(n2d,"set_scale",E->get().scale);
- undo_redo->add_undo_method(n2d,"set_pos",n2d->get_pos());
- undo_redo->add_undo_method(n2d,"set_rot",n2d->get_rot());
+ undo_redo->add_undo_method(n2d,"set_pos",n2d->get_position());
+ undo_redo->add_undo_method(n2d,"set_rot",n2d->get_rotation());
undo_redo->add_undo_method(n2d,"set_scale",n2d->get_scale());
}
undo_redo->commit_action();
@@ -2981,7 +2987,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -2991,9 +2997,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
Node2D *n2d = canvas_item->cast_to<Node2D>();
if (key_pos)
- n2d->set_pos(Vector2());
+ n2d->set_position(Vector2());
if (key_rot)
- n2d->set_rot(0);
+ n2d->set_rotation(0);
if (key_scale)
n2d->set_scale(Vector2(1,1));
} else if (canvas_item->cast_to<Control>()) {
@@ -3002,8 +3008,10 @@ void CanvasItemEditor::_popup_callback(int p_op) {
if (key_pos)
ctrl->set_pos(Point2());
- //if (key_scale)
- // AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(ctrl,"rect/size",ctrl->get_size());
+ /*
+ if (key_scale)
+ AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(ctrl,"rect/size",ctrl->get_size());
+ */
}
}
@@ -3027,7 +3035,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
Node2D *n2d = E->key()->cast_to<Node2D>();
if (!n2d)
continue;
- if (!n2d->is_visible())
+ if (!n2d->is_visible_in_tree())
continue;
if (!n2d->get_parent_item())
continue;
@@ -3049,7 +3057,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
Node2D *n2d = E->key()->cast_to<Node2D>();
if (!n2d)
continue;
- if (!n2d->is_visible())
+ if (!n2d->is_visible_in_tree())
continue;
n2d->set_meta("_edit_bone_",Variant());
@@ -3067,7 +3075,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
- if (!canvas_item || !canvas_item->is_visible())
+ if (!canvas_item || !canvas_item->is_visible_in_tree())
continue;
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
@@ -3091,7 +3099,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
CanvasItem *n2d = E->key()->cast_to<CanvasItem>();
if (!n2d)
continue;
- if (!n2d->is_visible())
+ if (!n2d->is_visible_in_tree())
continue;
n2d->set_meta("_edit_ik_",Variant());
@@ -3149,7 +3157,7 @@ void CanvasItemEditor::_focus_selection(int p_op) {
// counting invisible items, for now
- //if (!canvas_item->is_visible()) continue;
+ //if (!canvas_item->is_visible_in_tree()) continue;
++count;
Rect2 item_rect = canvas_item->get_item_rect();
@@ -3158,7 +3166,7 @@ void CanvasItemEditor::_focus_selection(int p_op) {
Vector2 scale = canvas_item->get_global_transform().get_scale();
real_t angle = canvas_item->get_global_transform().get_rotation();
- Matrix32 t(angle, Vector2(0.f,0.f));
+ Transform2D t(angle, Vector2(0.f,0.f));
item_rect = t.xform(item_rect);
Rect2 canvas_item_rect(pos + scale*item_rect.pos, scale*item_rect.size);
if (count == 1) {
@@ -3173,8 +3181,8 @@ void CanvasItemEditor::_focus_selection(int p_op) {
center = rect.pos + rect.size/2;
Vector2 offset = viewport->get_size()/2 - editor->get_scene_root()->get_global_canvas_transform().xform(center);
- h_scroll->set_val(h_scroll->get_val() - offset.x/zoom);
- v_scroll->set_val(v_scroll->get_val() - offset.y/zoom);
+ h_scroll->set_value(h_scroll->get_value() - offset.x/zoom);
+ v_scroll->set_value(v_scroll->get_value() - offset.y/zoom);
} else { // VIEW_FRAME_TO_SELECTION
@@ -3192,20 +3200,20 @@ void CanvasItemEditor::_focus_selection(int p_op) {
void CanvasItemEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_node_removed",&CanvasItemEditor::_node_removed);
- ObjectTypeDB::bind_method("_update_scroll",&CanvasItemEditor::_update_scroll);
- ObjectTypeDB::bind_method("_popup_callback",&CanvasItemEditor::_popup_callback);
- ObjectTypeDB::bind_method("_visibility_changed",&CanvasItemEditor::_visibility_changed);
- ObjectTypeDB::bind_method("_dialog_value_changed",&CanvasItemEditor::_dialog_value_changed);
- ObjectTypeDB::bind_method("_get_editor_data",&CanvasItemEditor::_get_editor_data);
- ObjectTypeDB::bind_method("_tool_select",&CanvasItemEditor::_tool_select);
- ObjectTypeDB::bind_method("_keying_changed",&CanvasItemEditor::_keying_changed);
- ObjectTypeDB::bind_method("_unhandled_key_input",&CanvasItemEditor::_unhandled_key_input);
- ObjectTypeDB::bind_method("_viewport_draw",&CanvasItemEditor::_viewport_draw);
- ObjectTypeDB::bind_method("_viewport_input_event",&CanvasItemEditor::_viewport_input_event);
- ObjectTypeDB::bind_method("_snap_changed",&CanvasItemEditor::_snap_changed);
- ObjectTypeDB::bind_method(_MD("_selection_result_pressed"),&CanvasItemEditor::_selection_result_pressed);
- ObjectTypeDB::bind_method(_MD("_selection_menu_hide"),&CanvasItemEditor::_selection_menu_hide);
+ ClassDB::bind_method("_node_removed",&CanvasItemEditor::_node_removed);
+ ClassDB::bind_method("_update_scroll",&CanvasItemEditor::_update_scroll);
+ ClassDB::bind_method("_popup_callback",&CanvasItemEditor::_popup_callback);
+ ClassDB::bind_method("_visibility_changed",&CanvasItemEditor::_visibility_changed);
+ ClassDB::bind_method("_dialog_value_changed",&CanvasItemEditor::_dialog_value_changed);
+ ClassDB::bind_method("_get_editor_data",&CanvasItemEditor::_get_editor_data);
+ ClassDB::bind_method("_tool_select",&CanvasItemEditor::_tool_select);
+ ClassDB::bind_method("_keying_changed",&CanvasItemEditor::_keying_changed);
+ ClassDB::bind_method("_unhandled_key_input",&CanvasItemEditor::_unhandled_key_input);
+ ClassDB::bind_method("_viewport_draw",&CanvasItemEditor::_viewport_draw);
+ ClassDB::bind_method("_viewport_gui_input",&CanvasItemEditor::_viewport_gui_input);
+ ClassDB::bind_method("_snap_changed",&CanvasItemEditor::_snap_changed);
+ ClassDB::bind_method(_MD("_selection_result_pressed"),&CanvasItemEditor::_selection_result_pressed);
+ ClassDB::bind_method(_MD("_selection_menu_hide"),&CanvasItemEditor::_selection_menu_hide);
ADD_SIGNAL( MethodInfo("item_lock_status_changed") );
ADD_SIGNAL( MethodInfo("item_group_status_changed") );
@@ -3327,7 +3335,8 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
vp_base->set_v_size_flags(SIZE_EXPAND_FILL);
palette_split->add_child(vp_base);
- Control *vp = memnew (Control);
+ ViewportContainer *vp = memnew (ViewportContainer);
+ vp->set_stretch(true);
vp_base->add_child(vp);
vp->set_area_as_parent_rect();
vp->add_child(p_editor->get_scene_root());
@@ -3336,6 +3345,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
viewport = memnew( CanvasItemEditorViewport(p_editor, this) );
vp_base->add_child(viewport);
viewport->set_area_as_parent_rect();
+ viewport->set_clip_contents(true);
h_scroll = memnew( HScrollBar );
v_scroll = memnew( VScrollBar );
@@ -3343,11 +3353,11 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
viewport->add_child(h_scroll);
viewport->add_child(v_scroll);
viewport->connect("draw",this,"_viewport_draw");
- viewport->connect("input_event",this,"_viewport_input_event");
+ viewport->connect("gui_input",this,"_viewport_gui_input");
- h_scroll->connect("value_changed", this,"_update_scroll",Vector<Variant>(),true);
- v_scroll->connect("value_changed", this,"_update_scroll",Vector<Variant>(),true);
+ h_scroll->connect("value_changed", this,"_update_scroll",Vector<Variant>(),Object::CONNECT_DEFERRED);
+ v_scroll->connect("value_changed", this,"_update_scroll",Vector<Variant>(),Object::CONNECT_DEFERRED);
h_scroll->hide();
v_scroll->hide();
@@ -3428,7 +3438,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
edit_menu = memnew( MenuButton );
edit_menu->set_text(TTR("Edit"));
hb->add_child(edit_menu);
- edit_menu->get_popup()->connect("item_pressed", this,"_popup_callback");
+ edit_menu->get_popup()->connect("id_pressed", this,"_popup_callback");
PopupMenu *p;
p = edit_menu->get_popup();
@@ -3453,7 +3463,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
skeleton_menu->add_separator();
skeleton_menu->add_shortcut(ED_SHORTCUT("canvas_item_editor/skeleton_set_ik_chain", TTR("Make IK Chain")), SKELETON_SET_IK_CHAIN);
skeleton_menu->add_shortcut(ED_SHORTCUT("canvas_item_editor/skeleton_clear_ik_chain", TTR("Clear IK Chain")), SKELETON_CLEAR_IK_CHAIN);
- skeleton_menu->connect("item_pressed", this,"_popup_callback");
+ skeleton_menu->connect("id_pressed", this,"_popup_callback");
/*
@@ -3465,7 +3475,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
view_menu = memnew( MenuButton );
view_menu->set_text(TTR("View"));
hb->add_child(view_menu);
- view_menu->get_popup()->connect("item_pressed", this,"_popup_callback");
+ view_menu->get_popup()->connect("id_pressed", this,"_popup_callback");
p = view_menu->get_popup();
@@ -3480,7 +3490,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
anchor_menu = memnew( MenuButton );
anchor_menu->set_text(TTR("Anchor"));
hb->add_child(anchor_menu);
- anchor_menu->get_popup()->connect("item_pressed", this,"_popup_callback");
+ anchor_menu->get_popup()->connect("id_pressed", this,"_popup_callback");
anchor_menu->hide();
//p = anchor_menu->get_popup();
@@ -3526,7 +3536,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
animation_menu = memnew( MenuButton );
animation_menu->set_text(TTR("Animation"));
animation_hb->add_child(animation_menu);
- animation_menu->get_popup()->connect("item_pressed", this,"_popup_callback");
+ animation_menu->get_popup()->connect("id_pressed", this,"_popup_callback");
p = animation_menu->get_popup();
@@ -3563,7 +3573,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
selection_menu = memnew( PopupMenu );
add_child(selection_menu);
selection_menu->set_custom_minimum_size(Vector2(100, 0));
- selection_menu->connect("item_pressed", this, "_selection_result_pressed");
+ selection_menu->connect("id_pressed", this, "_selection_result_pressed");
selection_menu->connect("popup_hide", this, "_selection_menu_hide");
key_pos=true;
@@ -3603,7 +3613,7 @@ void CanvasItemEditorPlugin::edit(Object *p_object) {
bool CanvasItemEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("CanvasItem");
+ return p_object->is_class("CanvasItem");
}
void CanvasItemEditorPlugin::make_visible(bool p_visible) {
@@ -3611,14 +3621,14 @@ void CanvasItemEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
canvas_item_editor->show();
canvas_item_editor->set_fixed_process(true);
- VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport(),false);
+ VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport_rid(),false);
canvas_item_editor->viewport->grab_focus();
} else {
canvas_item_editor->hide();
canvas_item_editor->set_fixed_process(false);
- VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport(),true);
+ VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport_rid(),true);
}
}
@@ -3650,7 +3660,7 @@ CanvasItemEditorPlugin::~CanvasItemEditorPlugin()
void CanvasItemEditorViewport::_on_mouse_exit() {
- if (selector->is_hidden()){
+ if (!selector->is_visible()){
_remove_preview();
}
}
@@ -3663,7 +3673,10 @@ void CanvasItemEditorViewport::_on_select_type(Object* selected) {
}
void CanvasItemEditorViewport::_on_change_type() {
- CheckBox* check=btn_group->get_pressed_button()->cast_to<CheckBox>();
+ if (!button_group->get_pressed_button())
+ return;
+
+ CheckBox* check=button_group->get_pressed_button()->cast_to<CheckBox>();
default_type=check->get_text();
_perform_drop_data();
selector->hide();
@@ -3675,13 +3688,13 @@ void CanvasItemEditorViewport::_create_preview(const Vector<String>& files) cons
for (int i=0;i<files.size();i++) {
String path=files[i];
RES res=ResourceLoader::load(path);
- String type=res->get_type();
+ String type=res->get_class();
if (type=="ImageTexture" || type=="PackedScene") {
if (type=="ImageTexture") {
Ref<ImageTexture> texture=Ref<ImageTexture> ( ResourceCache::get(path)->cast_to<ImageTexture>() );
Sprite* sprite=memnew(Sprite);
sprite->set_texture(texture);
- sprite->set_opacity(0.7f);
+ sprite->set_modulate(Color(1,1,1,0.7f));
preview->add_child(sprite);
label->show();
label_desc->show();
@@ -3727,7 +3740,7 @@ bool CanvasItemEditorViewport::_cyclical_dependency_exists(const String& p_targe
}
void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String& path, const Point2& p_point) {
- child->set_name(path.get_file().basename());
+ child->set_name(path.get_file().get_basename());
Ref<ImageTexture> texture=Ref<ImageTexture> ( ResourceCache::get(path)->cast_to<ImageTexture>() );
Size2 texture_size = texture->get_size();
@@ -3738,7 +3751,7 @@ void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String&
String new_name=parent->validate_child_name(child);
ScriptEditorDebugger *sed=ScriptEditor::get_singleton()->get_debugger();
- editor_data->get_undo_redo().add_do_method(sed,"live_debug_create_node",editor->get_edited_scene()->get_path_to(parent),child->get_type(),new_name);
+ editor_data->get_undo_redo().add_do_method(sed,"live_debug_create_node",editor->get_edited_scene()->get_path_to(parent),child->get_class(),new_name);
editor_data->get_undo_redo().add_undo_method(sed,"live_debug_remove_node",NodePath(String(editor->get_edited_scene()->get_path_to(parent))+"/"+new_name));
// handle with different property for texture
@@ -3760,10 +3773,10 @@ void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String&
editor_data->get_undo_redo().add_do_property(child,property,texture);
// make visible for certain node type
- if (default_type=="Patch9Frame") {
+ if (default_type=="Patch9Rect") {
editor_data->get_undo_redo().add_do_property(child,"rect/size",texture_size);
} else if (default_type=="Polygon2D") {
- DVector<Vector2> list;
+ PoolVector<Vector2> list;
list.push_back(Vector2(0,0));
list.push_back(Vector2(texture_size.width,0));
list.push_back(Vector2(texture_size.width,texture_size.height));
@@ -3776,9 +3789,9 @@ void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String&
if (parent->has_method("get_global_pos")) {
pos=parent->call("get_global_pos");
}
- Matrix32 trans=canvas->get_canvas_transform();
+ Transform2D trans=canvas->get_canvas_transform();
Point2 target_pos = (p_point-trans.get_origin())/trans.get_scale().x-pos;
- if (default_type=="Polygon2D" || default_type=="TouchScreenButton" || default_type=="TextureFrame" || default_type=="Patch9Frame") {
+ if (default_type=="Polygon2D" || default_type=="TouchScreenButton" || default_type=="TextureRect" || default_type=="Patch9Rect") {
target_pos -= texture_size/2;
}
editor_data->get_undo_redo().add_do_method(child,"set_pos",target_pos);
@@ -3790,7 +3803,7 @@ bool CanvasItemEditorViewport::_create_instance(Node* parent, String& path, cons
return false;
}
- Node* instanced_scene=sdata->instance(true);
+ Node* instanced_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE);
if (!instanced_scene) { // error on instancing
return false;
}
@@ -3802,7 +3815,7 @@ bool CanvasItemEditorViewport::_create_instance(Node* parent, String& path, cons
}
}
- instanced_scene->set_filename( Globals::get_singleton()->localize_path(path) );
+ instanced_scene->set_filename( GlobalConfig::get_singleton()->localize_path(path) );
editor_data->get_undo_redo().add_do_method(parent,"add_child",instanced_scene);
editor_data->get_undo_redo().add_do_method(instanced_scene,"set_owner",editor->get_edited_scene());
@@ -3817,14 +3830,14 @@ bool CanvasItemEditorViewport::_create_instance(Node* parent, String& path, cons
Point2 pos;
Node2D* parent_node2d=parent->cast_to<Node2D>();
if (parent_node2d) {
- pos=parent_node2d->get_global_pos();
+ pos=parent_node2d->get_global_position();
} else {
Control* parent_control=parent->cast_to<Control>();
if (parent_control) {
pos=parent_control->get_global_pos();
}
}
- Matrix32 trans=canvas->get_canvas_transform();
+ Transform2D trans=canvas->get_canvas_transform();
editor_data->get_undo_redo().add_do_method(instanced_scene,"set_pos",(p_point-trans.get_origin())/trans.get_scale().x-pos);
return true;
@@ -3843,15 +3856,15 @@ void CanvasItemEditorViewport::_perform_drop_data(){
if (res.is_null()) {
continue;
}
- String type=res->get_type();
+ String type=res->get_class();
if (type=="ImageTexture") {
Node* child;
if (default_type=="Light2D") child=memnew(Light2D);
else if (default_type=="Particles2D") child=memnew(Particles2D);
else if (default_type=="Polygon2D") child=memnew(Polygon2D);
else if (default_type=="TouchScreenButton") child=memnew(TouchScreenButton);
- else if (default_type=="TextureFrame") child=memnew(TextureFrame);
- else if (default_type=="Patch9Frame") child=memnew(Patch9Frame);
+ else if (default_type=="TextureRect") child=memnew(TextureRect);
+ else if (default_type=="Patch9Rect") child=memnew(NinePatchRect);
else child=memnew(Sprite); // default
_create_nodes(target_node, child, path, drop_pos);
@@ -3868,7 +3881,7 @@ void CanvasItemEditorViewport::_perform_drop_data(){
if (error_files.size()>0) {
String files_str;
for (int i=0;i<error_files.size();i++) {
- files_str += error_files[i].get_file().basename() + ",";
+ files_str += error_files[i].get_file().get_basename() + ",";
}
files_str=files_str.substr(0,files_str.length()-1);
accept->get_ok()->set_text(TTR("Ugh"));
@@ -3888,10 +3901,10 @@ bool CanvasItemEditorViewport::can_drop_data(const Point2& p_point,const Variant
if (res.is_null()) {
continue;
}
- String type=res->get_type();
+ String type=res->get_class();
if (type=="PackedScene") {
Ref<PackedScene> sdata=ResourceLoader::load(files[i]);
- Node* instanced_scene=sdata->instance(true);
+ Node* instanced_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE);
if (!instanced_scene) {
continue;
}
@@ -3904,8 +3917,8 @@ bool CanvasItemEditorViewport::can_drop_data(const Point2& p_point,const Variant
if (!preview->get_parent()){ // create preview only once
_create_preview(files);
}
- Matrix32 trans=canvas->get_canvas_transform();
- preview->set_pos((p_point-trans.get_origin())/trans.get_scale().x);
+ Transform2D trans=canvas->get_canvas_transform();
+ preview->set_position((p_point-trans.get_origin())/trans.get_scale().x);
label->set_text(vformat(TTR("Adding %s..."),default_type));
}
return can_instance;
@@ -3949,7 +3962,8 @@ void CanvasItemEditorViewport::drop_data(const Point2& p_point,const Variant& p_
if (is_alt) {
List<BaseButton*> btn_list;
- btn_group->get_button_list(&btn_list);
+ button_group->get_buttons(&btn_list);
+
for (int i=0;i<btn_list.size();i++) {
CheckBox* check=btn_list[i]->cast_to<CheckBox>();
check->set_pressed(check->get_text()==default_type);
@@ -3963,16 +3977,16 @@ void CanvasItemEditorViewport::drop_data(const Point2& p_point,const Variant& p_
void CanvasItemEditorViewport::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
- connect("mouse_exit",this,"_on_mouse_exit");
+ connect("mouse_exited",this,"_on_mouse_exit");
} else if (p_what==NOTIFICATION_EXIT_TREE) {
- disconnect("mouse_exit",this,"_on_mouse_exit");
+ disconnect("mouse_exited",this,"_on_mouse_exit");
}
}
void CanvasItemEditorViewport::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_on_select_type"),&CanvasItemEditorViewport::_on_select_type);
- ObjectTypeDB::bind_method(_MD("_on_change_type"),&CanvasItemEditorViewport::_on_change_type);
- ObjectTypeDB::bind_method(_MD("_on_mouse_exit"),&CanvasItemEditorViewport::_on_mouse_exit);
+ ClassDB::bind_method(_MD("_on_select_type"),&CanvasItemEditorViewport::_on_select_type);
+ ClassDB::bind_method(_MD("_on_change_type"),&CanvasItemEditorViewport::_on_change_type);
+ ClassDB::bind_method(_MD("_on_mouse_exit"),&CanvasItemEditorViewport::_on_mouse_exit);
}
CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasItemEditor* p_canvas) {
@@ -3984,8 +3998,8 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte
types.push_back("Polygon2D");
types.push_back("TouchScreenButton");
// Control
- types.push_back("TextureFrame");
- types.push_back("Patch9Frame");
+ types.push_back("TextureRect");
+ types.push_back("Patch9Rect");
target_node=NULL;
editor=p_node;
@@ -4008,7 +4022,9 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte
selector_label->set_custom_minimum_size(Size2(0,30)*EDSCALE);
vbc->add_child(selector_label);
- btn_group=memnew( ButtonGroup );
+ button_group.instance();
+
+ btn_group=memnew( VBoxContainer );
btn_group->set_h_size_flags(0);
btn_group->connect("button_selected", this, "_on_select_type");
@@ -4016,6 +4032,7 @@ CanvasItemEditorViewport::CanvasItemEditorViewport(EditorNode *p_node, CanvasIte
CheckBox* check=memnew(CheckBox);
check->set_text(types[i]);
btn_group->add_child(check);
+ check->set_button_group(button_group);
}
vbc->add_child(btn_group);
diff --git a/tools/editor/plugins/canvas_item_editor_plugin.h b/tools/editor/plugins/canvas_item_editor_plugin.h
index bbec078e02..f4f628fe28 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.h
+++ b/tools/editor/plugins/canvas_item_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -46,12 +46,12 @@ class CanvasItemEditorViewport;
class CanvasItemEditorSelectedItem : public Object {
- OBJ_TYPE(CanvasItemEditorSelectedItem,Object);
+ GDCLASS(CanvasItemEditorSelectedItem,Object);
public:
Variant undo_state;
Vector2 undo_pivot;
- Matrix32 prev_xform;
+ Transform2D prev_xform;
float prev_rot;
Rect2 prev_rect;
@@ -60,7 +60,7 @@ public:
class CanvasItemEditor : public VBoxContainer {
- OBJ_TYPE(CanvasItemEditor, VBoxContainer );
+ GDCLASS(CanvasItemEditor, VBoxContainer );
EditorNode *editor;
@@ -166,7 +166,7 @@ class CanvasItemEditor : public VBoxContainer {
VScrollBar *v_scroll;
HBoxContainer *hb;
- Matrix32 transform;
+ Transform2D transform;
float zoom;
Vector2 snap_offset;
Vector2 snap_step;
@@ -212,7 +212,7 @@ class CanvasItemEditor : public VBoxContainer {
struct BoneList {
- Matrix32 xform;
+ Transform2D xform;
Vector2 from;
Vector2 to;
ObjectID bone;
@@ -222,7 +222,7 @@ class CanvasItemEditor : public VBoxContainer {
uint64_t bone_last_frame;
Map<ObjectID,BoneList> bone_list;
- Matrix32 bone_orig_xform;
+ Transform2D bone_orig_xform;
struct BoneIK {
@@ -300,9 +300,9 @@ class CanvasItemEditor : public VBoxContainer {
int handle_len;
bool _is_part_of_subscene(CanvasItem *p_item);
- CanvasItem* _select_canvas_item_at_pos(const Point2 &p_pos,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform);
- void _find_canvas_items_at_pos(const Point2 &p_pos,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform, Vector<_SelectResult> &r_items);
- void _find_canvas_items_at_rect(const Rect2& p_rect,Node* p_node,const Matrix32& p_parent_xform,const Matrix32& p_canvas_xform,List<CanvasItem*> *r_items);
+ CanvasItem* _select_canvas_item_at_pos(const Point2 &p_pos,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform);
+ void _find_canvas_items_at_pos(const Point2 &p_pos,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform, Vector<_SelectResult> &r_items);
+ void _find_canvas_items_at_rect(const Rect2& p_rect,Node* p_node,const Transform2D& p_parent_xform,const Transform2D& p_canvas_xform,List<CanvasItem*> *r_items);
bool _select(CanvasItem *item, Point2 p_click_pos, bool p_append, bool p_drag=true);
@@ -322,7 +322,7 @@ class CanvasItemEditor : public VBoxContainer {
void _key_move(const Vector2& p_dir, bool p_snap, KeyMoveMODE p_move_mode);
void _list_select(const InputEventMouseButton& b);
- DragType _find_drag_type(const Matrix32& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point);
+ DragType _find_drag_type(const Transform2D& p_xform, const Rect2& p_local_rect, const Point2& p_click, Vector2& r_point);
void _popup_callback(int p_op);
bool updating_scroll;
@@ -342,7 +342,7 @@ class CanvasItemEditor : public VBoxContainer {
Point2 _find_topleftmost_point();
- void _find_canvas_items_span(Node *p_node, Rect2& r_rect, const Matrix32& p_xform);
+ void _find_canvas_items_span(Node *p_node, Rect2& r_rect, const Transform2D& p_xform);
Object *_get_editor_data(Object *p_what);
@@ -353,7 +353,7 @@ class CanvasItemEditor : public VBoxContainer {
void _unhandled_key_input(const InputEvent& p_ev);
- void _viewport_input_event(const InputEvent& p_event);
+ void _viewport_gui_input(const InputEvent& p_event);
void _viewport_draw();
void _focus_selection(int p_op);
@@ -407,7 +407,7 @@ public:
Vector2 snap_point(Vector2 p_target, Vector2 p_start = Vector2(0, 0)) const;
float snap_angle(float p_target, float p_start = 0) const;
- Matrix32 get_canvas_transform() const { return transform; }
+ Transform2D get_canvas_transform() const { return transform; }
static CanvasItemEditor *get_singleton() { return singleton; }
Dictionary get_state() const;
@@ -431,7 +431,7 @@ public:
class CanvasItemEditorPlugin : public EditorPlugin {
- OBJ_TYPE( CanvasItemEditorPlugin, EditorPlugin );
+ GDCLASS( CanvasItemEditorPlugin, EditorPlugin );
CanvasItemEditor *canvas_item_editor;
EditorNode *editor;
@@ -455,7 +455,7 @@ public:
};
class CanvasItemEditorViewport : public VBoxContainer {
- OBJ_TYPE( CanvasItemEditorViewport, VBoxContainer );
+ GDCLASS( CanvasItemEditorViewport, VBoxContainer );
String default_type;
Vector<String> types;
@@ -473,7 +473,8 @@ class CanvasItemEditorViewport : public VBoxContainer {
Label* selector_label;
Label* label;
Label* label_desc;
- ButtonGroup* btn_group;
+ VBoxContainer* btn_group;
+ Ref<ButtonGroup> button_group;
void _on_mouse_exit();
void _on_select_type(Object* selected);
diff --git a/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp b/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
index 95364e8921..263d96ecdf 100644
--- a/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -99,7 +99,7 @@ void CollisionPolygon2DEditor::_wip_close() {
edited_point=-1;
}
-bool CollisionPolygon2DEditor::forward_input_event(const InputEvent& p_event) {
+bool CollisionPolygon2DEditor::forward_gui_input(const InputEvent& p_event) {
if (!node)
@@ -111,7 +111,7 @@ bool CollisionPolygon2DEditor::forward_input_event(const InputEvent& p_event) {
const InputEventMouseButton &mb=p_event.mouse_button;
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Vector2 gpoint = Point2(mb.x,mb.y);
@@ -122,7 +122,7 @@ bool CollisionPolygon2DEditor::forward_input_event(const InputEvent& p_event) {
Vector<Vector2> poly = node->get_polygon();
//first check if a point is to be added (segment split)
- real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8);
+ real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8);
switch(mode) {
@@ -346,7 +346,7 @@ void CollisionPolygon2DEditor::_canvas_draw() {
poly=node->get_polygon();
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Ref<Texture> handle= get_icon("EditorHandle","EditorIcons");
for(int i=0;i<poly.size();i++) {
@@ -398,9 +398,9 @@ void CollisionPolygon2DEditor::edit(Node *p_collision_polygon) {
void CollisionPolygon2DEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_menu_option"),&CollisionPolygon2DEditor::_menu_option);
- ObjectTypeDB::bind_method(_MD("_canvas_draw"),&CollisionPolygon2DEditor::_canvas_draw);
- ObjectTypeDB::bind_method(_MD("_node_removed"),&CollisionPolygon2DEditor::_node_removed);
+ ClassDB::bind_method(_MD("_menu_option"),&CollisionPolygon2DEditor::_menu_option);
+ ClassDB::bind_method(_MD("_canvas_draw"),&CollisionPolygon2DEditor::_canvas_draw);
+ ClassDB::bind_method(_MD("_node_removed"),&CollisionPolygon2DEditor::_node_removed);
}
@@ -432,7 +432,7 @@ CollisionPolygon2DEditor::CollisionPolygon2DEditor(EditorNode *p_editor) {
options->set_area_as_parent_rect();
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
#endif
mode = MODE_EDIT;
@@ -448,7 +448,7 @@ void CollisionPolygon2DEditorPlugin::edit(Object *p_object) {
bool CollisionPolygon2DEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("CollisionPolygon2D");
+ return p_object->is_class("CollisionPolygon2D");
}
void CollisionPolygon2DEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/collision_polygon_2d_editor_plugin.h b/tools/editor/plugins/collision_polygon_2d_editor_plugin.h
index 431d3651c1..2c573c1dcf 100644
--- a/tools/editor/plugins/collision_polygon_2d_editor_plugin.h
+++ b/tools/editor/plugins/collision_polygon_2d_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -43,7 +43,7 @@ class CanvasItemEditor;
class CollisionPolygon2DEditor : public HBoxContainer {
- OBJ_TYPE(CollisionPolygon2DEditor, HBoxContainer );
+ GDCLASS(CollisionPolygon2DEditor, HBoxContainer );
UndoRedo *undo_redo;
enum Mode {
@@ -81,21 +81,21 @@ protected:
static void _bind_methods();
public:
- bool forward_input_event(const InputEvent& p_event);
+ bool forward_gui_input(const InputEvent& p_event);
void edit(Node *p_collision_polygon);
CollisionPolygon2DEditor(EditorNode *p_editor);
};
class CollisionPolygon2DEditorPlugin : public EditorPlugin {
- OBJ_TYPE( CollisionPolygon2DEditorPlugin, EditorPlugin );
+ GDCLASS( CollisionPolygon2DEditorPlugin, EditorPlugin );
CollisionPolygon2DEditor *collision_polygon_editor;
EditorNode *editor;
public:
- virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); }
+ virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); }
virtual String get_name() const { return "CollisionPolygon2D"; }
bool has_main_screen() const { return false; }
diff --git a/tools/editor/plugins/collision_polygon_editor_plugin.cpp b/tools/editor/plugins/collision_polygon_editor_plugin.cpp
index 0b06b3ba21..c5cd15cf72 100644
--- a/tools/editor/plugins/collision_polygon_editor_plugin.cpp
+++ b/tools/editor/plugins/collision_polygon_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,12 +27,15 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "collision_polygon_editor_plugin.h"
+
#include "spatial_editor_plugin.h"
#include "os/file_access.h"
#include "tools/editor/editor_settings.h"
#include "scene/3d/camera.h"
#include "canvas_item_editor_plugin.h"
+#if 0
+
void CollisionPolygonEditor::_notification(int p_what) {
switch(p_what) {
@@ -107,7 +110,7 @@ void CollisionPolygonEditor::_wip_close() {
}
-bool CollisionPolygonEditor::forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event) {
+bool CollisionPolygonEditor::forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event) {
if (!node)
return false;
@@ -145,7 +148,7 @@ bool CollisionPolygonEditor::forward_spatial_input_event(Camera* p_camera,const
Vector<Vector2> poly = node->get_polygon();
//first check if a point is to be added (segment split)
- real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8);
+ real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8);
switch(mode) {
@@ -476,11 +479,11 @@ void CollisionPolygonEditor::_polygon_draw() {
Array a;
a.resize(Mesh::ARRAY_MAX);
- DVector<Vector3> va;
+ PoolVector<Vector3> va;
{
va.resize(poly.size());
- DVector<Vector3>::Write w=va.write();
+ PoolVector<Vector3>::Write w=va.write();
for(int i=0;i<poly.size();i++) {
@@ -527,9 +530,9 @@ void CollisionPolygonEditor::edit(Node *p_collision_polygon) {
void CollisionPolygonEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_menu_option"),&CollisionPolygonEditor::_menu_option);
- ObjectTypeDB::bind_method(_MD("_polygon_draw"),&CollisionPolygonEditor::_polygon_draw);
- ObjectTypeDB::bind_method(_MD("_node_removed"),&CollisionPolygonEditor::_node_removed);
+ ClassDB::bind_method(_MD("_menu_option"),&CollisionPolygonEditor::_menu_option);
+ ClassDB::bind_method(_MD("_polygon_draw"),&CollisionPolygonEditor::_polygon_draw);
+ ClassDB::bind_method(_MD("_node_removed"),&CollisionPolygonEditor::_node_removed);
}
@@ -559,7 +562,7 @@ CollisionPolygonEditor::CollisionPolygonEditor(EditorNode *p_editor) {
options->set_area_as_parent_rect();
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
#endif
mode = MODE_EDIT;
@@ -568,25 +571,25 @@ CollisionPolygonEditor::CollisionPolygonEditor(EditorNode *p_editor) {
imgeom->set_transform(Transform(Matrix3(),Vector3(0,0,0.00001)));
- line_material = Ref<FixedMaterial>( memnew( FixedMaterial ));
+ line_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
line_material->set_flag(Material::FLAG_UNSHADED, true);
line_material->set_line_width(3.0);
- line_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- line_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, true);
- line_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1));
+ line_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA, true);
+ line_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_COLOR_ARRAY, true);
+ line_material->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,Color(1,1,1));
- handle_material = Ref<FixedMaterial>( memnew( FixedMaterial ));
+ handle_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
handle_material->set_flag(Material::FLAG_UNSHADED, true);
- handle_material->set_fixed_flag(FixedMaterial::FLAG_USE_POINT_SIZE, true);
- handle_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1));
- handle_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- handle_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, false);
+ handle_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_POINT_SIZE, true);
+ handle_material->set_parameter(FixedSpatialMaterial::PARAM_DIFFUSE,Color(1,1,1));
+ handle_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA, true);
+ handle_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_COLOR_ARRAY, false);
Ref<Texture> handle=editor->get_gui_base()->get_icon("Editor3DHandle","EditorIcons");
handle_material->set_point_size(handle->get_width());
- handle_material->set_texture(FixedMaterial::PARAM_DIFFUSE,handle);
+ handle_material->set_texture(FixedSpatialMaterial::PARAM_DIFFUSE,handle);
pointsm = memnew( MeshInstance );
imgeom->add_child(pointsm);
@@ -642,3 +645,4 @@ CollisionPolygonEditorPlugin::~CollisionPolygonEditorPlugin()
{
}
+#endif
diff --git a/tools/editor/plugins/collision_polygon_editor_plugin.h b/tools/editor/plugins/collision_polygon_editor_plugin.h
index 45e287ef00..cd722048db 100644
--- a/tools/editor/plugins/collision_polygon_editor_plugin.h
+++ b/tools/editor/plugins/collision_polygon_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,11 +40,13 @@
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
+
+#if 0
class CanvasItemEditor;
class CollisionPolygonEditor : public HBoxContainer {
- OBJ_TYPE(CollisionPolygonEditor, HBoxContainer );
+ GDCLASS(CollisionPolygonEditor, HBoxContainer );
UndoRedo *undo_redo;
enum Mode {
@@ -60,8 +62,8 @@ class CollisionPolygonEditor : public HBoxContainer {
ToolButton *button_edit;
- Ref<FixedMaterial> line_material;
- Ref<FixedMaterial> handle_material;
+ Ref<FixedSpatialMaterial> line_material;
+ Ref<FixedSpatialMaterial> handle_material;
EditorNode *editor;
Panel *panel;
@@ -90,7 +92,7 @@ protected:
static void _bind_methods();
public:
- virtual bool forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event);
+ virtual bool forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event);
void edit(Node *p_collision_polygon);
CollisionPolygonEditor(EditorNode *p_editor);
~CollisionPolygonEditor();
@@ -98,14 +100,14 @@ public:
class CollisionPolygonEditorPlugin : public EditorPlugin {
- OBJ_TYPE( CollisionPolygonEditorPlugin, EditorPlugin );
+ GDCLASS( CollisionPolygonEditorPlugin, EditorPlugin );
CollisionPolygonEditor *collision_polygon_editor;
EditorNode *editor;
public:
- virtual bool forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event) { return collision_polygon_editor->forward_spatial_input_event(p_camera,p_event); }
+ virtual bool forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event) { return collision_polygon_editor->forward_spatial_gui_input(p_camera,p_event); }
virtual String get_name() const { return "CollisionPolygon"; }
bool has_main_screen() const { return false; }
@@ -117,5 +119,5 @@ public:
~CollisionPolygonEditorPlugin();
};
-
+#endif
#endif // COLLISION_POLYGON_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp b/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
index d0cd73dcad..a05eeb7a27 100644
--- a/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,7 +29,6 @@
#include "collision_shape_2d_editor_plugin.h"
#include "canvas_item_editor_plugin.h"
-
#include "scene/resources/segment_shape_2d.h"
#include "scene/resources/shape_line_2d.h"
#include "scene/resources/circle_shape_2d.h"
@@ -303,7 +302,7 @@ void CollisionShape2DEditor::commit_handle(int idx, Variant& p_org) {
undo_redo->commit_action();
}
-bool CollisionShape2DEditor::forward_input_event(const InputEvent& p_event) {
+bool CollisionShape2DEditor::forward_gui_input(const InputEvent& p_event) {
if (!node) {
return false;
@@ -321,7 +320,7 @@ bool CollisionShape2DEditor::forward_input_event(const InputEvent& p_event) {
case InputEvent::MOUSE_BUTTON: {
const InputEventMouseButton& mb = p_event.mouse_button;
- Matrix32 gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Point2 gpoint(mb.x,mb.y);
@@ -436,7 +435,7 @@ void CollisionShape2DEditor::_canvas_draw() {
}
Control *c = canvas_item_editor->get_viewport_control();
- Matrix32 gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Ref<Texture> h = get_icon("EditorHandle","EditorIcons");
Vector2 size = h->get_size()*0.5;
@@ -555,8 +554,8 @@ void CollisionShape2DEditor::edit(Node* p_node) {
void CollisionShape2DEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_canvas_draw",&CollisionShape2DEditor::_canvas_draw);
- ObjectTypeDB::bind_method("_get_current_shape_type",&CollisionShape2DEditor::_get_current_shape_type);
+ ClassDB::bind_method("_canvas_draw",&CollisionShape2DEditor::_canvas_draw);
+ ClassDB::bind_method("_get_current_shape_type",&CollisionShape2DEditor::_get_current_shape_type);
}
CollisionShape2DEditor::CollisionShape2DEditor(EditorNode* p_editor) {
@@ -578,7 +577,7 @@ void CollisionShape2DEditorPlugin::edit(Object* p_obj) {
bool CollisionShape2DEditorPlugin::handles(Object* p_obj) const {
- return p_obj->is_type("CollisionShape2D");
+ return p_obj->is_class("CollisionShape2D");
}
void CollisionShape2DEditorPlugin::make_visible(bool visible) {
diff --git a/tools/editor/plugins/collision_shape_2d_editor_plugin.h b/tools/editor/plugins/collision_shape_2d_editor_plugin.h
index a8930dc0f2..37708db5e0 100644
--- a/tools/editor/plugins/collision_shape_2d_editor_plugin.h
+++ b/tools/editor/plugins/collision_shape_2d_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,7 +37,7 @@
class CanvasItemEditor;
class CollisionShape2DEditor : public Control {
- OBJ_TYPE(CollisionShape2DEditor, Control);
+ GDCLASS(CollisionShape2DEditor, Control);
enum ShapeType {
CAPSULE_SHAPE,
@@ -73,20 +73,20 @@ protected:
static void _bind_methods();
public:
- bool forward_input_event(const InputEvent& p_event);
+ bool forward_gui_input(const InputEvent& p_event);
void edit(Node* p_node);
CollisionShape2DEditor(EditorNode* p_editor);
};
class CollisionShape2DEditorPlugin : public EditorPlugin {
- OBJ_TYPE(CollisionShape2DEditorPlugin, EditorPlugin);
+ GDCLASS(CollisionShape2DEditorPlugin, EditorPlugin);
CollisionShape2DEditor* collision_shape_2d_editor;
EditorNode* editor;
public:
- virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_shape_2d_editor->forward_input_event(p_event); }
+ virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_shape_2d_editor->forward_gui_input(p_event); }
virtual String get_name() const { return "CollisionShape2D"; }
bool has_main_screen() const { return false; }
diff --git a/tools/editor/plugins/color_ramp_editor_plugin.cpp b/tools/editor/plugins/color_ramp_editor_plugin.cpp
index 4e2045edc6..9509eb1b03 100644
--- a/tools/editor/plugins/color_ramp_editor_plugin.cpp
+++ b/tools/editor/plugins/color_ramp_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "color_ramp_editor_plugin.h"
+
#include "spatial_editor_plugin.h"
#include "canvas_item_editor_plugin.h"
@@ -54,7 +55,7 @@ void ColorRampEditorPlugin::edit(Object *p_object) {
bool ColorRampEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("ColorRamp");
+ return p_object->is_class("ColorRamp");
}
@@ -75,7 +76,7 @@ void ColorRampEditorPlugin::_ramp_changed() {
UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
- //Not sure if I should convert this data to DVector
+ //Not sure if I should convert this data to PoolVector
Vector<float> new_offsets=ramp_editor->get_offsets();
Vector<Color> new_colors=ramp_editor->get_colors();
Vector<float> old_offsets=color_ramp_ref->get_offsets();
@@ -106,6 +107,6 @@ ColorRampEditorPlugin::~ColorRampEditorPlugin(){
}
void ColorRampEditorPlugin::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("ramp_changed"),&ColorRampEditorPlugin::_ramp_changed);
- ObjectTypeDB::bind_method(_MD("undo_redo_color_ramp","offsets","colors"),&ColorRampEditorPlugin::_undo_redo_color_ramp);
+ ClassDB::bind_method(_MD("ramp_changed"),&ColorRampEditorPlugin::_ramp_changed);
+ ClassDB::bind_method(_MD("undo_redo_color_ramp","offsets","colors"),&ColorRampEditorPlugin::_undo_redo_color_ramp);
}
diff --git a/tools/editor/plugins/color_ramp_editor_plugin.h b/tools/editor/plugins/color_ramp_editor_plugin.h
index 300a9030b9..2f55ad65f1 100644
--- a/tools/editor/plugins/color_ramp_editor_plugin.h
+++ b/tools/editor/plugins/color_ramp_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,7 +35,7 @@
class ColorRampEditorPlugin : public EditorPlugin {
- OBJ_TYPE( ColorRampEditorPlugin, EditorPlugin );
+ GDCLASS( ColorRampEditorPlugin, EditorPlugin );
bool _2d;
Ref<ColorRamp> color_ramp_ref;
diff --git a/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp b/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
index b6f3db73f7..563b8298eb 100644
--- a/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+++ b/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,6 +28,7 @@
/*************************************************************************/
#include "cube_grid_theme_editor_plugin.h"
+#if 0
#include "scene/3d/mesh_instance.h"
#include "scene/3d/physics_body.h"
#include "scene/main/viewport.h"
@@ -150,8 +151,8 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library,
VS::ViewportRect vr;
vr.x=0;
vr.y=0;
- vr.width=EditorSettings::get_singleton()->get("grid_map/preview_size");
- vr.height=EditorSettings::get_singleton()->get("grid_map/preview_size");
+ vr.width=EditorSettings::get_singleton()->get("editors/grid_map/preview_size");
+ vr.height=EditorSettings::get_singleton()->get("editors/grid_map/preview_size");
VS::get_singleton()->viewport_set_rect(vp,vr);
VS::get_singleton()->viewport_set_as_render_target(vp,true);
VS::get_singleton()->viewport_set_render_target_update_mode(vp,VS::RENDER_TARGET_UPDATE_ALWAYS);
@@ -178,8 +179,8 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library,
Vector3 ofs = aabb.pos + aabb.size*0.5;
aabb.pos-=ofs;
Transform xform;
- xform.basis=Matrix3().rotated(Vector3(0,1,0),Math_PI*0.25);
- xform.basis = Matrix3().rotated(Vector3(1,0,0),-Math_PI*0.25)*xform.basis;
+ xform.basis=Matrix3().rotated(Vector3(0,1,0),-Math_PI*0.25);
+ xform.basis = Matrix3().rotated(Vector3(1,0,0),Math_PI*0.25)*xform.basis;
AABB rot_aabb = xform.xform(aabb);
print_line("rot_aabb: "+rot_aabb);
float m = MAX(rot_aabb.size.x,rot_aabb.size.y)*0.5;
@@ -202,7 +203,7 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library,
it->create_from_image(img);
p_library->set_item_preview(id,it);
-// print_line("loaded image, size: "+rtos(m)+" dist: "+rtos(dist)+" empty?"+itos(img.empty())+" w: "+itos(it->get_width())+" h: "+itos(it->get_height()));
+ //print_line("loaded image, size: "+rtos(m)+" dist: "+rtos(dist)+" empty?"+itos(img.empty())+" w: "+itos(it->get_width())+" h: "+itos(it->get_height()));
VS::get_singleton()->free(inst);
}
@@ -275,9 +276,9 @@ void MeshLibraryEditor::_menu_cbk(int p_option) {
void MeshLibraryEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_menu_cbk",&MeshLibraryEditor::_menu_cbk);
- ObjectTypeDB::bind_method("_menu_confirm",&MeshLibraryEditor::_menu_confirm);
- ObjectTypeDB::bind_method("_import_scene_cbk",&MeshLibraryEditor::_import_scene_cbk);
+ ClassDB::bind_method("_menu_cbk",&MeshLibraryEditor::_menu_cbk);
+ ClassDB::bind_method("_menu_confirm",&MeshLibraryEditor::_menu_confirm);
+ ClassDB::bind_method("_import_scene_cbk",&MeshLibraryEditor::_import_scene_cbk);
}
MeshLibraryEditor::MeshLibraryEditor(EditorNode *p_editor) {
@@ -309,7 +310,7 @@ MeshLibraryEditor::MeshLibraryEditor(EditorNode *p_editor) {
options->get_popup()->add_item(TTR("Import from Scene"),MENU_OPTION_IMPORT_FROM_SCENE);
options->get_popup()->add_item(TTR("Update from Scene"),MENU_OPTION_UPDATE_FROM_SCENE);
options->get_popup()->set_item_disabled(options->get_popup()->get_item_index(MENU_OPTION_UPDATE_FROM_SCENE),true);
- options->get_popup()->connect("item_pressed", this,"_menu_cbk");
+ options->get_popup()->connect("id_pressed", this,"_menu_cbk");
menu=options;
editor=p_editor;
cd = memnew(ConfirmationDialog);
@@ -342,7 +343,7 @@ void MeshLibraryEditorPlugin::make_visible(bool p_visible){
MeshLibraryEditorPlugin::MeshLibraryEditorPlugin(EditorNode *p_node) {
- EDITOR_DEF("grid_map/preview_size",64);
+ EDITOR_DEF("editors/grid_map/preview_size",64);
theme_editor = memnew( MeshLibraryEditor(p_node) );
p_node->get_viewport()->add_child(theme_editor);
@@ -353,4 +354,4 @@ MeshLibraryEditorPlugin::MeshLibraryEditorPlugin(EditorNode *p_node) {
theme_editor->hide();
}
-
+#endif
diff --git a/tools/editor/plugins/cube_grid_theme_editor_plugin.h b/tools/editor/plugins/cube_grid_theme_editor_plugin.h
index 72ee171e19..f32f601023 100644
--- a/tools/editor/plugins/cube_grid_theme_editor_plugin.h
+++ b/tools/editor/plugins/cube_grid_theme_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,10 +32,10 @@
#include "scene/resources/mesh_library.h"
#include "tools/editor/editor_node.h"
-
+#if 0
class MeshLibraryEditor : public Control {
- OBJ_TYPE( MeshLibraryEditor, Control );
+ GDCLASS( MeshLibraryEditor, Control );
Ref<MeshLibrary> theme;
@@ -74,7 +74,7 @@ public:
class MeshLibraryEditorPlugin : public EditorPlugin {
- OBJ_TYPE( MeshLibraryEditorPlugin, EditorPlugin );
+ GDCLASS( MeshLibraryEditorPlugin, EditorPlugin );
MeshLibraryEditor *theme_editor;
EditorNode *editor;
@@ -93,3 +93,4 @@ public:
#endif // CUBE_GRID_THEME_EDITOR_PLUGIN_H
+#endif
diff --git a/tools/editor/plugins/editor_preview_plugins.cpp b/tools/editor/plugins/editor_preview_plugins.cpp
index b1bce60484..5d9b281874 100644
--- a/tools/editor/plugins/editor_preview_plugins.cpp
+++ b/tools/editor/plugins/editor_preview_plugins.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,19 +27,21 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "editor_preview_plugins.h"
+
#include "io/resource_loader.h"
#include "tools/editor/editor_settings.h"
#include "io/file_access_memory.h"
#include "os/os.h"
#include "scene/resources/material.h"
-#include "scene/resources/sample.h"
+//#include "scene/resources/sample.h"
#include "scene/resources/mesh.h"
#include "scene/resources/bit_mask.h"
#include "tools/editor/editor_scale.h"
+#if 0
bool EditorTexturePreviewPlugin::handles(const String& p_type) const {
- return (ObjectTypeDB::is_type(p_type,"ImageTexture") || ObjectTypeDB::is_type(p_type, "AtlasTexture"));
+ return (ClassDB::is_type(p_type,"ImageTexture") || ClassDB::is_type(p_type, "AtlasTexture"));
}
Ref<Texture> EditorTexturePreviewPlugin::generate(const RES& p_from) {
@@ -64,13 +66,13 @@ Ref<Texture> EditorTexturePreviewPlugin::generate(const RES& p_from) {
img.clear_mipmaps();
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
if (img.is_compressed()) {
if (img.decompress()!=OK)
return Ref<Texture>();
- } else if (img.get_format()!=Image::FORMAT_RGB && img.get_format()!=Image::FORMAT_RGBA) {
- img.convert(Image::FORMAT_RGBA);
+ } else if (img.get_format()!=Image::FORMAT_RGB8 && img.get_format()!=Image::FORMAT_RGBA8) {
+ img.convert(Image::FORMAT_RGBA8);
}
int width,height;
@@ -106,7 +108,7 @@ EditorTexturePreviewPlugin::EditorTexturePreviewPlugin() {
bool EditorBitmapPreviewPlugin::handles(const String& p_type) const {
- return ObjectTypeDB::is_type(p_type,"BitMap");
+ return ClassDB::is_type(p_type,"BitMap");
}
Ref<Texture> EditorBitmapPreviewPlugin::generate(const RES& p_from) {
@@ -117,12 +119,12 @@ Ref<Texture> EditorBitmapPreviewPlugin::generate(const RES& p_from) {
return Ref<Texture>();
}
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(bm->get_size().width*bm->get_size().height);
{
- DVector<uint8_t>::Write w=data.write();
+ PoolVector<uint8_t>::Write w=data.write();
for(int i=0;i<bm->get_size().width;i++) {
for(int j=0;j<bm->get_size().height;j++) {
@@ -138,15 +140,15 @@ Ref<Texture> EditorBitmapPreviewPlugin::generate(const RES& p_from) {
}
- Image img(bm->get_size().width,bm->get_size().height,0,Image::FORMAT_GRAYSCALE,data);
+ Image img(bm->get_size().width,bm->get_size().height,0,Image::FORMAT_L8,data);
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
if (img.is_compressed()) {
if (img.decompress()!=OK)
return Ref<Texture>();
- } else if (img.get_format()!=Image::FORMAT_RGB && img.get_format()!=Image::FORMAT_RGBA) {
- img.convert(Image::FORMAT_RGBA);
+ } else if (img.get_format()!=Image::FORMAT_RGB8 && img.get_format()!=Image::FORMAT_RGBA8) {
+ img.convert(Image::FORMAT_RGBA8);
}
int width,height;
@@ -192,14 +194,14 @@ Ref<Texture> EditorPackedScenePreviewPlugin::_gen_from_imd(Ref<ResourceImportMet
Variant tn = p_imd->get_option("thumbnail");
//print_line(Variant::get_type_name(tn.get_type()));
- DVector<uint8_t> thumbnail = tn;
+ PoolVector<uint8_t> thumbnail = tn;
int len = thumbnail.size();
if (len==0)
return Ref<Texture>();
- DVector<uint8_t>::Read r = thumbnail.read();
+ PoolVector<uint8_t>::Read r = thumbnail.read();
Image img(r.ptr(),len);
if (img.empty())
@@ -213,7 +215,7 @@ Ref<Texture> EditorPackedScenePreviewPlugin::_gen_from_imd(Ref<ResourceImportMet
bool EditorPackedScenePreviewPlugin::handles(const String& p_type) const {
- return ObjectTypeDB::is_type(p_type,"PackedScene");
+ return ClassDB::is_type(p_type,"PackedScene");
}
Ref<Texture> EditorPackedScenePreviewPlugin::generate(const RES& p_from) {
@@ -235,7 +237,7 @@ EditorPackedScenePreviewPlugin::EditorPackedScenePreviewPlugin() {
bool EditorMaterialPreviewPlugin::handles(const String& p_type) const {
- return ObjectTypeDB::is_type(p_type,"Material"); //any material
+ return ClassDB::is_type(p_type,"Material"); //any material
}
Ref<Texture> EditorMaterialPreviewPlugin::generate(const RES& p_from) {
@@ -247,7 +249,7 @@ Ref<Texture> EditorMaterialPreviewPlugin::generate(const RES& p_from) {
VS::get_singleton()->viewport_queue_screen_capture(viewport);
VS::get_singleton()->viewport_set_render_target_update_mode(viewport,VS::RENDER_TARGET_UPDATE_ONCE); //once used for capture
-// print_line("queue capture!");
+ //print_line("queue capture!");
Image img;
int timeout=1000;
@@ -263,7 +265,7 @@ Ref<Texture> EditorMaterialPreviewPlugin::generate(const RES& p_from) {
//print_line("captured!");
VS::get_singleton()->mesh_surface_set_material(sphere,0,RID());
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
img.resize(thumbnail_size,thumbnail_size);
@@ -310,10 +312,10 @@ EditorMaterialPreviewPlugin::EditorMaterialPreviewPlugin() {
int lons=32;
float radius=1.0;
- DVector<Vector3> vertices;
- DVector<Vector3> normals;
- DVector<Vector2> uvs;
- DVector<float> tangents;
+ PoolVector<Vector3> vertices;
+ PoolVector<Vector3> normals;
+ PoolVector<Vector2> uvs;
+ PoolVector<float> tangents;
Matrix3 tt = Matrix3(Vector3(0,1,0),Math_PI*0.5);
for(int i = 1; i <= lats; i++) {
@@ -404,7 +406,7 @@ static bool _is_text_char(CharType c) {
bool EditorScriptPreviewPlugin::handles(const String& p_type) const {
- return ObjectTypeDB::is_type(p_type,"Script");
+ return ClassDB::is_type(p_type,"Script");
}
Ref<Texture> EditorScriptPreviewPlugin::generate(const RES& p_from) {
@@ -432,17 +434,17 @@ Ref<Texture> EditorScriptPreviewPlugin::generate(const RES& p_from) {
int line = 0;
int col=0;
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
- Image img(thumbnail_size,thumbnail_size,0,Image::FORMAT_RGBA);
+ Image img(thumbnail_size,thumbnail_size,0,Image::FORMAT_RGBA8);
- Color bg_color = EditorSettings::get_singleton()->get("text_editor/background_color");
+ Color bg_color = EditorSettings::get_singleton()->get("text_editor/highlighting/background_color");
bg_color.a=1.0;
- Color keyword_color = EditorSettings::get_singleton()->get("text_editor/keyword_color");
- Color text_color = EditorSettings::get_singleton()->get("text_editor/text_color");
- Color symbol_color = EditorSettings::get_singleton()->get("text_editor/symbol_color");
+ Color keyword_color = EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color");
+ Color text_color = EditorSettings::get_singleton()->get("text_editor/highlighting/text_color");
+ Color symbol_color = EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color");
for(int i=0;i<thumbnail_size;i++) {
@@ -520,10 +522,10 @@ EditorScriptPreviewPlugin::EditorScriptPreviewPlugin() {
}
///////////////////////////////////////////////////////////////////
-
+#if 0
bool EditorSamplePreviewPlugin::handles(const String& p_type) const {
- return ObjectTypeDB::is_type(p_type,"Sample");
+ return ClassDB::is_type(p_type,"Sample");
}
Ref<Texture> EditorSamplePreviewPlugin::generate(const RES& p_from) {
@@ -532,17 +534,17 @@ Ref<Texture> EditorSamplePreviewPlugin::generate(const RES& p_from) {
ERR_FAIL_COND_V(smp.is_null(),Ref<Texture>());
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
- DVector<uint8_t> img;
+ PoolVector<uint8_t> img;
int w = thumbnail_size;
int h = thumbnail_size;
img.resize(w*h*3);
- DVector<uint8_t>::Write imgdata = img.write();
+ PoolVector<uint8_t>::Write imgdata = img.write();
uint8_t * imgw = imgdata.ptr();
- DVector<uint8_t> data = smp->get_data();
- DVector<uint8_t>::Read sampledata = data.read();
+ PoolVector<uint8_t> data = smp->get_data();
+ PoolVector<uint8_t>::Read sampledata = data.read();
const uint8_t *sdata=sampledata.ptr();
bool stereo = smp->is_stereo();
@@ -775,10 +777,10 @@ Ref<Texture> EditorSamplePreviewPlugin::generate(const RES& p_from) {
}
}
- imgdata = DVector<uint8_t>::Write();
+ imgdata = PoolVector<uint8_t>::Write();
Ref<ImageTexture> ptex = Ref<ImageTexture>( memnew( ImageTexture));
- ptex->create_from_image(Image(w,h,0,Image::FORMAT_RGB,img),0);
+ ptex->create_from_image(Image(w,h,0,Image::FORMAT_RGB8,img),0);
return ptex;
}
@@ -787,12 +789,12 @@ EditorSamplePreviewPlugin::EditorSamplePreviewPlugin() {
}
-
+#endif
///////////////////////////////////////////////////////////////////////////
bool EditorMeshPreviewPlugin::handles(const String& p_type) const {
- return ObjectTypeDB::is_type(p_type,"Mesh"); //any Mesh
+ return ClassDB::is_type(p_type,"Mesh"); //any Mesh
}
Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) {
@@ -806,8 +808,8 @@ Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) {
Vector3 ofs = aabb.pos + aabb.size*0.5;
aabb.pos-=ofs;
Transform xform;
- xform.basis=Matrix3().rotated(Vector3(0,1,0),Math_PI*0.125);
- xform.basis = Matrix3().rotated(Vector3(1,0,0),-Math_PI*0.125)*xform.basis;
+ xform.basis=Matrix3().rotated(Vector3(0,1,0),-Math_PI*0.125);
+ xform.basis = Matrix3().rotated(Vector3(1,0,0),Math_PI*0.125)*xform.basis;
AABB rot_aabb = xform.xform(aabb);
float m = MAX(rot_aabb.size.x,rot_aabb.size.y)*0.5;
if (m==0)
@@ -824,7 +826,7 @@ Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) {
VS::get_singleton()->viewport_queue_screen_capture(viewport);
VS::get_singleton()->viewport_set_render_target_update_mode(viewport,VS::RENDER_TARGET_UPDATE_ONCE); //once used for capture
-// print_line("queue capture!");
+ //print_line("queue capture!");
Image img;
int timeout=1000;
@@ -840,7 +842,7 @@ Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) {
//print_line("captured!");
VS::get_singleton()->instance_set_base(mesh_instance,RID());
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
thumbnail_size*=EDSCALE;
img.resize(thumbnail_size,thumbnail_size);
@@ -866,7 +868,7 @@ EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() {
camera = VS::get_singleton()->camera_create();
VS::get_singleton()->viewport_attach_camera(viewport,camera);
VS::get_singleton()->camera_set_transform(camera,Transform(Matrix3(),Vector3(0,0,3)));
-// VS::get_singleton()->camera_set_perspective(camera,45,0.1,10);
+ //VS::get_singleton()->camera_set_perspective(camera,45,0.1,10);
VS::get_singleton()->camera_set_orthogonal(camera,1.0,0.01,1000.0);
light = VS::get_singleton()->light_create(VS::LIGHT_DIRECTIONAL);
@@ -880,7 +882,7 @@ EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() {
VS::get_singleton()->instance_set_transform(light_instance2,Transform().looking_at(Vector3(0,1,0),Vector3(0,0,1)));
-// sphere = VS::get_singleton()->mesh_create();
+ //sphere = VS::get_singleton()->mesh_create();
mesh_instance = VS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_scenario(mesh_instance,scenario);
@@ -888,6 +890,7 @@ EditorMeshPreviewPlugin::EditorMeshPreviewPlugin() {
}
+
EditorMeshPreviewPlugin::~EditorMeshPreviewPlugin() {
//VS::get_singleton()->free(sphere);
@@ -901,3 +904,4 @@ EditorMeshPreviewPlugin::~EditorMeshPreviewPlugin() {
VS::get_singleton()->free(scenario);
}
+#endif
diff --git a/tools/editor/plugins/editor_preview_plugins.h b/tools/editor/plugins/editor_preview_plugins.h
index b33aefaa23..078e4cf8b5 100644
--- a/tools/editor/plugins/editor_preview_plugins.h
+++ b/tools/editor/plugins/editor_preview_plugins.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,6 +31,7 @@
#include "tools/editor/editor_resource_preview.h"
+#if 0
class EditorTexturePreviewPlugin : public EditorResourcePreviewGenerator {
public:
@@ -93,7 +94,7 @@ public:
EditorScriptPreviewPlugin();
};
-
+#if 0
class EditorSamplePreviewPlugin : public EditorResourcePreviewGenerator {
public:
@@ -103,7 +104,7 @@ public:
EditorSamplePreviewPlugin();
};
-
+#endif
class EditorMeshPreviewPlugin : public EditorResourcePreviewGenerator {
RID scenario;
@@ -123,5 +124,5 @@ public:
~EditorMeshPreviewPlugin();
};
-
+#endif
#endif // EDITORPREVIEWPLUGINS_H
diff --git a/tools/editor/plugins/gi_probe_editor_plugin.cpp b/tools/editor/plugins/gi_probe_editor_plugin.cpp
new file mode 100644
index 0000000000..39f32d0dc7
--- /dev/null
+++ b/tools/editor/plugins/gi_probe_editor_plugin.cpp
@@ -0,0 +1,85 @@
+/*************************************************************************/
+/* gi_probe_editor_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+#include "gi_probe_editor_plugin.h"
+
+
+void GIProbeEditorPlugin::_bake() {
+
+ if (gi_probe) {
+ gi_probe->bake();
+ }
+}
+
+
+void GIProbeEditorPlugin::edit(Object *p_object) {
+
+ GIProbe * s = p_object->cast_to<GIProbe>();
+ if (!s)
+ return;
+
+ gi_probe=s;
+}
+
+bool GIProbeEditorPlugin::handles(Object *p_object) const {
+
+ return p_object->is_class("GIProbe");
+}
+
+void GIProbeEditorPlugin::make_visible(bool p_visible) {
+
+ if (p_visible) {
+ bake->show();
+ } else {
+
+ bake->hide();
+ }
+
+}
+
+void GIProbeEditorPlugin::_bind_methods() {
+
+ ClassDB::bind_method("_bake",&GIProbeEditorPlugin::_bake);
+}
+
+GIProbeEditorPlugin::GIProbeEditorPlugin(EditorNode *p_node) {
+
+ editor=p_node;
+ bake = memnew( Button );
+ bake->set_icon(editor->get_gui_base()->get_icon("BakedLight","EditorIcons"));
+ bake->hide();
+ bake->connect("pressed",this,"_bake");
+ add_control_to_container(CONTAINER_SPATIAL_EDITOR_MENU,bake);
+ gi_probe=NULL;
+}
+
+
+GIProbeEditorPlugin::~GIProbeEditorPlugin() {
+
+ memdelete(bake);
+}
diff --git a/tools/editor/plugins/gi_probe_editor_plugin.h b/tools/editor/plugins/gi_probe_editor_plugin.h
new file mode 100644
index 0000000000..35e0b93aae
--- /dev/null
+++ b/tools/editor/plugins/gi_probe_editor_plugin.h
@@ -0,0 +1,65 @@
+/*************************************************************************/
+/* gi_probe_editor_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+#ifndef GIPROBEEDITORPLUGIN_H
+#define GIPROBEEDITORPLUGIN_H
+
+#include "tools/editor/editor_plugin.h"
+#include "tools/editor/editor_node.h"
+#include "scene/resources/material.h"
+#include "scene/3d/gi_probe.h"
+
+
+
+class GIProbeEditorPlugin : public EditorPlugin {
+
+ GDCLASS( GIProbeEditorPlugin, EditorPlugin );
+
+ GIProbe *gi_probe;
+
+ Button *bake;
+ EditorNode *editor;
+
+ void _bake();
+protected:
+
+ static void _bind_methods();
+public:
+
+ virtual String get_name() const { return "GIProbe"; }
+ bool has_main_screen() const { return false; }
+ virtual void edit(Object *p_node);
+ virtual bool handles(Object *p_node) const;
+ virtual void make_visible(bool p_visible);
+
+ GIProbeEditorPlugin(EditorNode *p_node);
+ ~GIProbeEditorPlugin();
+
+};
+
+#endif // GIPROBEEDITORPLUGIN_H
diff --git a/tools/editor/plugins/item_list_editor_plugin.cpp b/tools/editor/plugins/item_list_editor_plugin.cpp
index b711e13193..f31074a9dc 100644
--- a/tools/editor/plugins/item_list_editor_plugin.cpp
+++ b/tools/editor/plugins/item_list_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -119,7 +119,7 @@ void ItemListOptionButtonPlugin::set_object(Object *p_object) {
bool ItemListOptionButtonPlugin::handles(Object *p_object) const {
- return p_object->is_type("OptionButton");
+ return p_object->is_class("OptionButton");
}
int ItemListOptionButtonPlugin::get_flags() const {
@@ -153,7 +153,7 @@ ItemListOptionButtonPlugin::ItemListOptionButtonPlugin() {
void ItemListPopupMenuPlugin::set_object(Object *p_object) {
- if (p_object->is_type("MenuButton"))
+ if (p_object->is_class("MenuButton"))
pp = p_object->cast_to<MenuButton>()->get_popup();
else
pp = p_object->cast_to<PopupMenu>();
@@ -161,7 +161,7 @@ void ItemListPopupMenuPlugin::set_object(Object *p_object) {
bool ItemListPopupMenuPlugin::handles(Object *p_object) const {
- return p_object->is_type("PopupMenu") || p_object->is_type("MenuButton");
+ return p_object->is_class("PopupMenu") || p_object->is_class("MenuButton");
}
int ItemListPopupMenuPlugin::get_flags() const {
@@ -260,8 +260,8 @@ void ItemListEditor::edit(Node *p_item_list) {
item_plugins[i]->set_object(p_item_list);
property_editor->edit(item_plugins[i]);
- if (has_icon(item_list->get_type(), "EditorIcons"))
- toolbar_button->set_icon(get_icon(item_list->get_type(), "EditorIcons"));
+ if (has_icon(item_list->get_class(), "EditorIcons"))
+ toolbar_button->set_icon(get_icon(item_list->get_class(), "EditorIcons"));
else
toolbar_button->set_icon(Ref<Texture>());
@@ -287,9 +287,9 @@ bool ItemListEditor::handles(Object *p_object) const {
void ItemListEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_edit_items",&ItemListEditor::_edit_items);
- ObjectTypeDB::bind_method("_add_button",&ItemListEditor::_add_pressed);
- ObjectTypeDB::bind_method("_delete_button",&ItemListEditor::_delete_pressed);
+ ClassDB::bind_method("_edit_items",&ItemListEditor::_edit_items);
+ ClassDB::bind_method("_add_button",&ItemListEditor::_add_pressed);
+ ClassDB::bind_method("_delete_button",&ItemListEditor::_delete_pressed);
}
ItemListEditor::ItemListEditor() {
@@ -309,7 +309,7 @@ ItemListEditor::ItemListEditor() {
VBoxContainer *vbc = memnew( VBoxContainer );
dialog->add_child(vbc);
- dialog->set_child_rect(vbc);
+ //dialog->set_child_rect(vbc);
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->set_h_size_flags(SIZE_EXPAND_FILL);
diff --git a/tools/editor/plugins/item_list_editor_plugin.h b/tools/editor/plugins/item_list_editor_plugin.h
index 95d316b199..74700d615e 100644
--- a/tools/editor/plugins/item_list_editor_plugin.h
+++ b/tools/editor/plugins/item_list_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -44,7 +44,7 @@
class ItemListPlugin : public Object {
- OBJ_TYPE(ItemListPlugin,Object);
+ GDCLASS(ItemListPlugin,Object);
protected:
@@ -100,7 +100,7 @@ public:
class ItemListOptionButtonPlugin : public ItemListPlugin {
- OBJ_TYPE(ItemListOptionButtonPlugin,ItemListPlugin);
+ GDCLASS(ItemListOptionButtonPlugin,ItemListPlugin);
OptionButton *ob;
public:
@@ -130,7 +130,7 @@ public:
class ItemListPopupMenuPlugin : public ItemListPlugin {
- OBJ_TYPE(ItemListPopupMenuPlugin,ItemListPlugin);
+ GDCLASS(ItemListPopupMenuPlugin,ItemListPlugin);
PopupMenu *pp;
public:
@@ -171,7 +171,7 @@ public:
class ItemListEditor : public HBoxContainer {
- OBJ_TYPE(ItemListEditor,HBoxContainer);
+ GDCLASS(ItemListEditor,HBoxContainer);
Node *item_list;
@@ -209,7 +209,7 @@ public:
class ItemListEditorPlugin : public EditorPlugin {
- OBJ_TYPE(ItemListEditorPlugin,EditorPlugin);
+ GDCLASS(ItemListEditorPlugin,EditorPlugin);
ItemListEditor *item_list_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp b/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
index 56e58bc983..f6a51632a0 100644
--- a/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -102,7 +102,7 @@ void LightOccluder2DEditor::_wip_close(bool p_closed) {
edited_point=-1;
}
-bool LightOccluder2DEditor::forward_input_event(const InputEvent& p_event) {
+bool LightOccluder2DEditor::forward_gui_input(const InputEvent& p_event) {
if (!node)
@@ -121,7 +121,7 @@ bool LightOccluder2DEditor::forward_input_event(const InputEvent& p_event) {
const InputEventMouseButton &mb=p_event.mouse_button;
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Vector2 gpoint = Point2(mb.x,mb.y);
@@ -132,7 +132,7 @@ bool LightOccluder2DEditor::forward_input_event(const InputEvent& p_event) {
Vector<Vector2> poly = Variant(node->get_occluder_polygon()->get_polygon());
//first check if a point is to be added (segment split)
- real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8);
+ real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8);
switch(mode) {
@@ -361,7 +361,7 @@ void LightOccluder2DEditor::_canvas_draw() {
poly=Variant(node->get_occluder_polygon()->get_polygon());
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Ref<Texture> handle= get_icon("EditorHandle","EditorIcons");
for(int i=0;i<poly.size();i++) {
@@ -427,10 +427,10 @@ void LightOccluder2DEditor::_create_poly() {
void LightOccluder2DEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_menu_option"),&LightOccluder2DEditor::_menu_option);
- ObjectTypeDB::bind_method(_MD("_canvas_draw"),&LightOccluder2DEditor::_canvas_draw);
- ObjectTypeDB::bind_method(_MD("_node_removed"),&LightOccluder2DEditor::_node_removed);
- ObjectTypeDB::bind_method(_MD("_create_poly"),&LightOccluder2DEditor::_create_poly);
+ ClassDB::bind_method(_MD("_menu_option"),&LightOccluder2DEditor::_menu_option);
+ ClassDB::bind_method(_MD("_canvas_draw"),&LightOccluder2DEditor::_canvas_draw);
+ ClassDB::bind_method(_MD("_node_removed"),&LightOccluder2DEditor::_node_removed);
+ ClassDB::bind_method(_MD("_create_poly"),&LightOccluder2DEditor::_create_poly);
}
@@ -468,7 +468,7 @@ LightOccluder2DEditor::LightOccluder2DEditor(EditorNode *p_editor) {
options->set_area_as_parent_rect();
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
#endif
mode = MODE_EDIT;
@@ -484,7 +484,7 @@ void LightOccluder2DEditorPlugin::edit(Object *p_object) {
bool LightOccluder2DEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("LightOccluder2D");
+ return p_object->is_class("LightOccluder2D");
}
void LightOccluder2DEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/light_occluder_2d_editor_plugin.h b/tools/editor/plugins/light_occluder_2d_editor_plugin.h
index 0176eb87dd..431c01fe75 100644
--- a/tools/editor/plugins/light_occluder_2d_editor_plugin.h
+++ b/tools/editor/plugins/light_occluder_2d_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -44,7 +44,7 @@ class CanvasItemEditor;
class LightOccluder2DEditor : public HBoxContainer {
- OBJ_TYPE(LightOccluder2DEditor, HBoxContainer );
+ GDCLASS(LightOccluder2DEditor, HBoxContainer );
UndoRedo *undo_redo;
enum Mode {
@@ -85,21 +85,21 @@ protected:
public:
Vector2 snap_point(const Vector2& p_point) const;
- bool forward_input_event(const InputEvent& p_event);
+ bool forward_gui_input(const InputEvent& p_event);
void edit(Node *p_collision_polygon);
LightOccluder2DEditor(EditorNode *p_editor);
};
class LightOccluder2DEditorPlugin : public EditorPlugin {
- OBJ_TYPE( LightOccluder2DEditorPlugin, EditorPlugin );
+ GDCLASS( LightOccluder2DEditorPlugin, EditorPlugin );
LightOccluder2DEditor *collision_polygon_editor;
EditorNode *editor;
public:
- virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); }
+ virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); }
virtual String get_name() const { return "LightOccluder2D"; }
bool has_main_screen() const { return false; }
diff --git a/tools/editor/plugins/material_editor_plugin.cpp b/tools/editor/plugins/material_editor_plugin.cpp
index 876fab0d6e..1aababa91b 100644
--- a/tools/editor/plugins/material_editor_plugin.cpp
+++ b/tools/editor/plugins/material_editor_plugin.cpp
@@ -1,7 +1,38 @@
+/*************************************************************************/
+/* material_editor_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#include "material_editor_plugin.h"
+
#include "scene/main/viewport.h"
-void MaterialEditor::_input_event(InputEvent p_event) {
+#if 0
+
+void MaterialEditor::_gui_input(InputEvent p_event) {
}
@@ -91,8 +122,8 @@ void MaterialEditor::_button_pressed(Node* p_button) {
void MaterialEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_input_event"),&MaterialEditor::_input_event);
- ObjectTypeDB::bind_method(_MD("_button_pressed"),&MaterialEditor::_button_pressed);
+ ClassDB::bind_method(_MD("_gui_input"),&MaterialEditor::_gui_input);
+ ClassDB::bind_method(_MD("_button_pressed"),&MaterialEditor::_button_pressed);
}
@@ -127,8 +158,8 @@ MaterialEditor::MaterialEditor() {
viewport->add_child(box_instance);
Transform box_xform;
- box_xform.basis.rotate(Vector3(1,0,0),Math::deg2rad(-25));
- box_xform.basis = box_xform.basis * Matrix3().rotated(Vector3(0,1,0),Math::deg2rad(-25));
+ box_xform.basis.rotate(Vector3(1,0,0),Math::deg2rad(25));
+ box_xform.basis = box_xform.basis * Matrix3().rotated(Vector3(0,1,0),Math::deg2rad(25));
box_xform.basis.scale(Vector3(0.8,0.8,0.8));
box_instance->set_transform(box_xform);
@@ -141,10 +172,10 @@ MaterialEditor::MaterialEditor() {
int lons=32;
float radius=1.0;
- DVector<Vector3> vertices;
- DVector<Vector3> normals;
- DVector<Vector2> uvs;
- DVector<float> tangents;
+ PoolVector<Vector3> vertices;
+ PoolVector<Vector3> normals;
+ PoolVector<Vector2> uvs;
+ PoolVector<float> tangents;
Matrix3 tt = Matrix3(Vector3(0,1,0),Math_PI*0.5);
for(int i = 1; i <= lats; i++) {
@@ -219,10 +250,10 @@ MaterialEditor::MaterialEditor() {
box_mesh.instance();
- DVector<Vector3> vertices;
- DVector<Vector3> normals;
- DVector<float> tangents;
- DVector<Vector3> uvs;
+ PoolVector<Vector3> vertices;
+ PoolVector<Vector3> normals;
+ PoolVector<float> tangents;
+ PoolVector<Vector3> uvs;
int vtx_idx=0;
#define ADD_VTX(m_idx);\
@@ -280,7 +311,7 @@ MaterialEditor::MaterialEditor() {
d[VisualServer::ARRAY_TEX_UV]= uvs ;
d[VisualServer::ARRAY_VERTEX]= vertices ;
- DVector<int> indices;
+ PoolVector<int> indices;
indices.resize(vertices.size());
for(int i=0;i<vertices.size();i++)
indices.set(i,i);
@@ -353,11 +384,11 @@ void MaterialEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
material_editor->show();
-// material_editor->set_process(true);
+ //material_editor->set_process(true);
} else {
material_editor->hide();
-// material_editor->set_process(false);
+ //material_editor->set_process(false);
}
}
@@ -379,3 +410,4 @@ MaterialEditorPlugin::~MaterialEditorPlugin()
}
+#endif
diff --git a/tools/editor/plugins/material_editor_plugin.h b/tools/editor/plugins/material_editor_plugin.h
index 49e92493b3..5daae124e0 100644
--- a/tools/editor/plugins/material_editor_plugin.h
+++ b/tools/editor/plugins/material_editor_plugin.h
@@ -1,3 +1,31 @@
+/*************************************************************************/
+/* material_editor_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#ifndef MATERIAL_EDITOR_PLUGIN_H
#define MATERIAL_EDITOR_PLUGIN_H
@@ -8,10 +36,10 @@
#include "scene/3d/mesh_instance.h"
#include "scene/3d/camera.h"
-
+#if 0
class MaterialEditor : public Control {
- OBJ_TYPE(MaterialEditor, Control);
+ GDCLASS(MaterialEditor, Control);
Viewport *viewport;
@@ -39,7 +67,7 @@ class MaterialEditor : public Control {
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
static void _bind_methods();
public:
@@ -50,7 +78,7 @@ public:
class MaterialEditorPlugin : public EditorPlugin {
- OBJ_TYPE( MaterialEditorPlugin, EditorPlugin );
+ GDCLASS( MaterialEditorPlugin, EditorPlugin );
MaterialEditor *material_editor;
EditorNode *editor;
@@ -69,3 +97,4 @@ public:
};
#endif // MATERIAL_EDITOR_PLUGIN_H
+#endif
diff --git a/tools/editor/plugins/mesh_editor_plugin.cpp b/tools/editor/plugins/mesh_editor_plugin.cpp
index b70cbad25f..49cb02c9d8 100644
--- a/tools/editor/plugins/mesh_editor_plugin.cpp
+++ b/tools/editor/plugins/mesh_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,7 +28,8 @@
/*************************************************************************/
#include "mesh_editor_plugin.h"
-void MeshEditor::_input_event(InputEvent p_event) {
+#if 0
+void MeshEditor::_gui_input(InputEvent p_event) {
if (p_event.type==InputEvent::MOUSE_MOTION && p_event.mouse_motion.button_mask&BUTTON_MASK_LEFT) {
@@ -81,8 +82,8 @@ void MeshEditor::_notification(int p_what) {
void MeshEditor::_update_rotation() {
Transform t;
- t.basis.rotate(Vector3(0, 1, 0), rot_y);
- t.basis.rotate(Vector3(1, 0, 0), rot_x);
+ t.basis.rotate(Vector3(0, 1, 0), -rot_y);
+ t.basis.rotate(Vector3(1, 0, 0), -rot_x);
mesh_instance->set_transform(t);
}
@@ -135,8 +136,8 @@ void MeshEditor::_button_pressed(Node* p_button) {
void MeshEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_input_event"),&MeshEditor::_input_event);
- ObjectTypeDB::bind_method(_MD("_button_pressed"),&MeshEditor::_button_pressed);
+ ClassDB::bind_method(_MD("_gui_input"),&MeshEditor::_gui_input);
+ ClassDB::bind_method(_MD("_button_pressed"),&MeshEditor::_button_pressed);
}
@@ -217,11 +218,11 @@ void MeshEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
mesh_editor->show();
-// mesh_editor->set_process(true);
+ //mesh_editor->set_process(true);
} else {
mesh_editor->hide();
-// mesh_editor->set_process(false);
+ //mesh_editor->set_process(false);
}
}
@@ -241,3 +242,4 @@ MeshEditorPlugin::MeshEditorPlugin(EditorNode *p_node) {
MeshEditorPlugin::~MeshEditorPlugin()
{
}
+#endif
diff --git a/tools/editor/plugins/mesh_editor_plugin.h b/tools/editor/plugins/mesh_editor_plugin.h
index 0715a96e74..136290ffd4 100644
--- a/tools/editor/plugins/mesh_editor_plugin.h
+++ b/tools/editor/plugins/mesh_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,6 +29,8 @@
#ifndef MESH_EDITOR_PLUGIN_H
#define MESH_EDITOR_PLUGIN_H
+#if 0
+
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
#include "scene/resources/material.h"
@@ -38,7 +40,7 @@
class MeshEditor : public Control {
- OBJ_TYPE(MeshEditor, Control);
+ GDCLASS(MeshEditor, Control);
@@ -63,7 +65,7 @@ class MeshEditor : public Control {
void _update_rotation();
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
static void _bind_methods();
public:
@@ -74,7 +76,7 @@ public:
class MeshEditorPlugin : public EditorPlugin {
- OBJ_TYPE( MeshEditorPlugin, EditorPlugin );
+ GDCLASS( MeshEditorPlugin, EditorPlugin );
MeshEditor *mesh_editor;
EditorNode *editor;
@@ -93,3 +95,4 @@ public:
};
#endif // MESH_EDITOR_PLUGIN_H
+#endif
diff --git a/tools/editor/plugins/mesh_instance_editor_plugin.cpp b/tools/editor/plugins/mesh_instance_editor_plugin.cpp
index c952feb1da..322e212534 100644
--- a/tools/editor/plugins/mesh_instance_editor_plugin.cpp
+++ b/tools/editor/plugins/mesh_instance_editor_plugin.cpp
@@ -1,3 +1,31 @@
+/*************************************************************************/
+/* mesh_instance_editor_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#include "mesh_instance_editor_plugin.h"
#include "scene/3d/physics_body.h"
@@ -189,7 +217,7 @@ void MeshInstanceEditor::_create_outline_mesh() {
return;
}
- Ref<Mesh> mesho = mesh->create_outline(outline_size->get_val());
+ Ref<Mesh> mesho = mesh->create_outline(outline_size->get_value());
if (mesho.is_null()) {
err_dialog->set_text(TTR("Could not create outline!"));
@@ -218,8 +246,8 @@ void MeshInstanceEditor::_create_outline_mesh() {
void MeshInstanceEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_menu_option",&MeshInstanceEditor::_menu_option);
- ObjectTypeDB::bind_method("_create_outline_mesh",&MeshInstanceEditor::_create_outline_mesh);
+ ClassDB::bind_method("_menu_option",&MeshInstanceEditor::_menu_option);
+ ClassDB::bind_method("_create_outline_mesh",&MeshInstanceEditor::_create_outline_mesh);
}
MeshInstanceEditor::MeshInstanceEditor() {
@@ -241,7 +269,7 @@ MeshInstanceEditor::MeshInstanceEditor() {
options->get_popup()->add_separator();
options->get_popup()->add_item(TTR("Create Outline Mesh.."),MENU_OPTION_CREATE_OUTLINE_MESH);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
outline_dialog = memnew( ConfirmationDialog );
outline_dialog->set_title(TTR("Create Outline Mesh"));
@@ -249,13 +277,13 @@ MeshInstanceEditor::MeshInstanceEditor() {
VBoxContainer *outline_dialog_vbc = memnew( VBoxContainer );
outline_dialog->add_child(outline_dialog_vbc);
- outline_dialog->set_child_rect(outline_dialog_vbc);
+ //outline_dialog->set_child_rect(outline_dialog_vbc);
outline_size = memnew( SpinBox );
outline_size->set_min(0.001);
outline_size->set_max(1024);
outline_size->set_step(0.001);
- outline_size->set_val(0.05);
+ outline_size->set_value(0.05);
outline_dialog_vbc->add_margin_child(TTR("Outline Size:"),outline_size);
add_child(outline_dialog);
@@ -274,7 +302,7 @@ void MeshInstanceEditorPlugin::edit(Object *p_object) {
bool MeshInstanceEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("MeshInstance");
+ return p_object->is_class("MeshInstance");
}
void MeshInstanceEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/mesh_instance_editor_plugin.h b/tools/editor/plugins/mesh_instance_editor_plugin.h
index a698cf382f..441d4d1d3f 100644
--- a/tools/editor/plugins/mesh_instance_editor_plugin.h
+++ b/tools/editor/plugins/mesh_instance_editor_plugin.h
@@ -1,3 +1,31 @@
+/*************************************************************************/
+/* mesh_instance_editor_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#ifndef MESH_INSTANCE_EDITOR_PLUGIN_H
#define MESH_INSTANCE_EDITOR_PLUGIN_H
@@ -10,7 +38,7 @@
class MeshInstanceEditor : public Node {
- OBJ_TYPE(MeshInstanceEditor, Node );
+ GDCLASS(MeshInstanceEditor, Node );
enum Menu {
@@ -48,7 +76,7 @@ public:
class MeshInstanceEditorPlugin : public EditorPlugin {
- OBJ_TYPE( MeshInstanceEditorPlugin, EditorPlugin );
+ GDCLASS( MeshInstanceEditorPlugin, EditorPlugin );
MeshInstanceEditor *mesh_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/multimesh_editor_plugin.cpp b/tools/editor/plugins/multimesh_editor_plugin.cpp
index 8a0c6b3fe8..6259ddf473 100644
--- a/tools/editor/plugins/multimesh_editor_plugin.cpp
+++ b/tools/editor/plugins/multimesh_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "multimesh_editor_plugin.h"
+
#include "scene/gui/box_container.h"
#include "scene/3d/mesh_instance.h"
#include "spatial_editor_plugin.h"
@@ -125,7 +126,7 @@ void MultiMeshEditor::_populate() {
Transform geom_xform = node->get_global_transform().affine_inverse() * ss_instance->get_global_transform();
- DVector<Face3> geometry = ss_instance->get_faces(VisualInstance::FACES_SOLID);
+ PoolVector<Face3> geometry = ss_instance->get_faces(VisualInstance::FACES_SOLID);
if (geometry.size()==0) {
@@ -137,7 +138,7 @@ void MultiMeshEditor::_populate() {
//make all faces local
int gc = geometry.size();
- DVector<Face3>::Write w = geometry.write();
+ PoolVector<Face3>::Write w = geometry.write();
for(int i=0;i<gc;i++) {
for(int j=0;j<3;j++) {
@@ -147,7 +148,7 @@ void MultiMeshEditor::_populate() {
- w = DVector<Face3>::Write();
+ w = PoolVector<Face3>::Write();
#if 0
node->get_multimesh()->set_instance_count(populate_amount->get_val());
node->populate_parent(populate_rotate_random->get_val(),populate_tilt_random->get_val(),populate_scale_random->get_val(),populate_scale->get_val());
@@ -164,12 +165,12 @@ void MultiMeshEditor::_populate() {
ERR_FAIL_COND(!vi);
#endif
- DVector<Face3> faces = geometry;
+ PoolVector<Face3> faces = geometry;
ERR_EXPLAIN(TTR("Parent has no solid faces to populate."));
int facecount=faces.size();
ERR_FAIL_COND(!facecount);
- DVector<Face3>::Read r = faces.read();
+ PoolVector<Face3>::Read r = faces.read();
@@ -177,7 +178,7 @@ void MultiMeshEditor::_populate() {
Map<float,int> triangle_area_map;
for(int i=0;i<facecount;i++) {
- float area = r[i].get_area();;
+ float area = r[i].get_area();
if (area<CMP_EPSILON)
continue;
triangle_area_map[area_accum]=i;
@@ -193,27 +194,29 @@ void MultiMeshEditor::_populate() {
Ref<MultiMesh> multimesh = memnew( MultiMesh );
multimesh->set_mesh(mesh);
- int instance_count=populate_amount->get_val();
+ int instance_count=populate_amount->get_value();
+ multimesh->set_transform_format(MultiMesh::TRANSFORM_3D);
+ multimesh->set_color_format(MultiMesh::COLOR_NONE);
multimesh->set_instance_count(instance_count);
- float _tilt_random = populate_tilt_random->get_val();
- float _rotate_random = populate_rotate_random->get_val();
- float _scale_random = populate_scale_random->get_val();
- float _scale = populate_scale->get_val();
+ float _tilt_random = populate_tilt_random->get_value();
+ float _rotate_random = populate_rotate_random->get_value();
+ float _scale_random = populate_scale_random->get_value();
+ float _scale = populate_scale->get_value();
int axis = populate_axis->get_selected();
Transform axis_xform;
if (axis==Vector3::AXIS_Z) {
- axis_xform.rotate(Vector3(1,0,0),Math_PI*0.5);
+ axis_xform.rotate(Vector3(1,0,0),-Math_PI*0.5);
}
if (axis==Vector3::AXIS_X) {
- axis_xform.rotate(Vector3(0,0,1),Math_PI*0.5);
+ axis_xform.rotate(Vector3(0,0,1),-Math_PI*0.5);
}
for(int i=0;i<instance_count;i++) {
- float areapos = Math::random(0,area_accum);
+ float areapos = Math::random(0.0f,area_accum);
Map<float,int>::Element *E = triangle_area_map.find_closest(areapos);
ERR_FAIL_COND(!E)
@@ -234,11 +237,12 @@ void MultiMeshEditor::_populate() {
xform = xform * axis_xform;
- Matrix3 post_xform;
+ Basis post_xform;
+
+ post_xform.rotate(xform.basis.get_axis(1),-Math::random(-_rotate_random,_rotate_random)*Math_PI);
+ post_xform.rotate(xform.basis.get_axis(2),-Math::random(-_tilt_random,_tilt_random)*Math_PI);
+ post_xform.rotate(xform.basis.get_axis(0),-Math::random(-_tilt_random,_tilt_random)*Math_PI);
- post_xform.rotate(xform.basis.get_axis(0),Math::random(-_tilt_random,_tilt_random)*Math_PI);
- post_xform.rotate(xform.basis.get_axis(2),Math::random(-_tilt_random,_tilt_random)*Math_PI);
- post_xform.rotate(xform.basis.get_axis(1),Math::random(-_rotate_random,_rotate_random)*Math_PI);
xform.basis = post_xform * xform.basis;
//xform.basis.orthonormalize();
@@ -247,10 +251,10 @@ void MultiMeshEditor::_populate() {
multimesh->set_instance_transform(i,xform);
- multimesh->set_instance_color(i,Color(1,1,1,1));
+
}
- multimesh->generate_aabb();
+
node->set_multimesh(multimesh);
@@ -281,11 +285,11 @@ void MultiMeshEditor::_menu_option(int p_option) {
surface_source->set_text("..");
mesh_source->set_text("..");
populate_axis->select(1);
- populate_rotate_random->set_val(0);
- populate_tilt_random->set_val(0);
- populate_scale_random->set_val(0);
- populate_scale->set_val(1);
- populate_amount->set_val(128);
+ populate_rotate_random->set_value(0);
+ populate_tilt_random->set_value(0);
+ populate_scale_random->set_value(0);
+ populate_scale->set_value(1);
+ populate_amount->set_value(128);
_last_pp_node=node;
}
@@ -315,10 +319,10 @@ void MultiMeshEditor::_browse(bool p_source) {
void MultiMeshEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_menu_option",&MultiMeshEditor::_menu_option);
- ObjectTypeDB::bind_method("_populate",&MultiMeshEditor::_populate);
- ObjectTypeDB::bind_method("_browsed",&MultiMeshEditor::_browsed);
- ObjectTypeDB::bind_method("_browse",&MultiMeshEditor::_browse);
+ ClassDB::bind_method("_menu_option",&MultiMeshEditor::_menu_option);
+ ClassDB::bind_method("_populate",&MultiMeshEditor::_populate);
+ ClassDB::bind_method("_browsed",&MultiMeshEditor::_browsed);
+ ClassDB::bind_method("_browse",&MultiMeshEditor::_browse);
}
MultiMeshEditor::MultiMeshEditor() {
@@ -331,7 +335,7 @@ MultiMeshEditor::MultiMeshEditor() {
options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("MultiMeshInstance","EditorIcons"));
options->get_popup()->add_item(TTR("Populate Surface"));
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
populate_dialog = memnew( ConfirmationDialog );
populate_dialog->set_title(TTR("Populate MultiMesh"));
@@ -339,7 +343,7 @@ MultiMeshEditor::MultiMeshEditor() {
VBoxContainer *vbc = memnew( VBoxContainer );
populate_dialog->add_child(vbc);
- populate_dialog->set_child_rect(vbc);
+ //populate_dialog->set_child_rect(vbc);
HBoxContainer *hbc = memnew( HBoxContainer );
@@ -385,14 +389,16 @@ MultiMeshEditor::MultiMeshEditor() {
populate_scale_random = memnew( SpinBox );
populate_scale_random->set_min(0);
populate_scale_random->set_max(1);
- populate_scale_random->set_val(0);
+ populate_scale_random->set_value(0);
+ populate_scale_random->set_step(0.01);
vbc->add_margin_child(TTR("Random Scale:"),populate_scale_random);
populate_scale = memnew( SpinBox );
populate_scale->set_min(0.001);
populate_scale->set_max(4096);
- populate_scale->set_val(1);
+ populate_scale->set_value(1);
+ populate_scale->set_step(0.01);
vbc->add_margin_child(TTR("Scale:"),populate_scale);
@@ -403,7 +409,7 @@ MultiMeshEditor::MultiMeshEditor() {
populate_amount->set_end( Point2(5,237));
populate_amount->set_min(1);
populate_amount->set_max(65536);
- populate_amount->set_val(128);
+ populate_amount->set_value(128);
vbc->add_margin_child(TTR("Amount:"),populate_amount);
populate_dialog->get_ok()->set_text(TTR("Populate"));
@@ -427,7 +433,7 @@ void MultiMeshEditorPlugin::edit(Object *p_object) {
bool MultiMeshEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("MultiMeshInstance");
+ return p_object->is_class("MultiMeshInstance");
}
void MultiMeshEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/multimesh_editor_plugin.h b/tools/editor/plugins/multimesh_editor_plugin.h
index 245da1eeb7..e322850238 100644
--- a/tools/editor/plugins/multimesh_editor_plugin.h
+++ b/tools/editor/plugins/multimesh_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,7 +40,7 @@
class MultiMeshEditor : public Control {
- OBJ_TYPE(MultiMeshEditor, Control );
+ GDCLASS(MultiMeshEditor, Control );
friend class MultiMeshEditorPlugin;
@@ -86,7 +86,7 @@ public:
class MultiMeshEditorPlugin : public EditorPlugin {
- OBJ_TYPE( MultiMeshEditorPlugin, EditorPlugin );
+ GDCLASS( MultiMeshEditorPlugin, EditorPlugin );
MultiMeshEditor *multimesh_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/navigation_polygon_editor_plugin.cpp b/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
index 22546c72f3..e70f2be9fa 100644
--- a/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+++ b/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -116,7 +116,7 @@ void NavigationPolygonEditor::_wip_close() {
edited_point=-1;
}
-bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
+bool NavigationPolygonEditor::forward_gui_input(const InputEvent& p_event) {
if (!node)
@@ -127,7 +127,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
create_nav->set_text("No NavigationPolygon resource on this node.\nCreate and assign one?");
create_nav->popup_centered_minsize();
}
- return (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==1);;
+ return (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==1);
}
@@ -137,7 +137,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
const InputEventMouseButton &mb=p_event.mouse_button;
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Vector2 gpoint = Point2(mb.x,mb.y);
@@ -148,7 +148,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
//first check if a point is to be added (segment split)
- real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8);
+ real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8);
switch(mode) {
@@ -211,10 +211,10 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
for(int j=0;j<node->get_navigation_polygon()->get_outline_count();j++) {
- DVector<Vector2> points=node->get_navigation_polygon()->get_outline(j);
+ PoolVector<Vector2> points=node->get_navigation_polygon()->get_outline(j);
int pc=points.size();
- DVector<Vector2>::Read poly=points.read();
+ PoolVector<Vector2>::Read poly=points.read();
for(int i=0;i<pc;i++) {
@@ -240,7 +240,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
if (closest_idx>=0) {
pre_move_edit=node->get_navigation_polygon()->get_outline(closest_outline);
- DVector<Point2> poly = pre_move_edit;
+ PoolVector<Point2> poly = pre_move_edit;
poly.insert(closest_idx+1,xform.affine_inverse().xform(closest_pos));
edited_point=closest_idx+1;
edited_outline=closest_outline;
@@ -260,10 +260,10 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
for(int j=0;j<node->get_navigation_polygon()->get_outline_count();j++) {
- DVector<Vector2> points=node->get_navigation_polygon()->get_outline(j);
+ PoolVector<Vector2> points=node->get_navigation_polygon()->get_outline(j);
int pc=points.size();
- DVector<Vector2>::Read poly=points.read();
+ PoolVector<Vector2>::Read poly=points.read();
for(int i=0;i<pc;i++) {
@@ -296,7 +296,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
//apply
- DVector<Vector2> poly = node->get_navigation_polygon()->get_outline(edited_outline);
+ PoolVector<Vector2> poly = node->get_navigation_polygon()->get_outline(edited_outline);
ERR_FAIL_INDEX_V(edited_point,poly.size(),false);
poly.set(edited_point,edited_point_pos);
undo_redo->create_action(TTR("Edit Poly"));
@@ -322,10 +322,10 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
for(int j=0;j<node->get_navigation_polygon()->get_outline_count();j++) {
- DVector<Vector2> points=node->get_navigation_polygon()->get_outline(j);
+ PoolVector<Vector2> points=node->get_navigation_polygon()->get_outline(j);
int pc=points.size();
- DVector<Vector2>::Read poly=points.read();
+ PoolVector<Vector2>::Read poly=points.read();
for(int i=0;i<pc;i++) {
@@ -345,7 +345,7 @@ bool NavigationPolygonEditor::forward_input_event(const InputEvent& p_event) {
if (closest_idx>=0) {
- DVector<Vector2> poly = node->get_navigation_polygon()->get_outline(closest_outline);
+ PoolVector<Vector2> poly = node->get_navigation_polygon()->get_outline(closest_outline);
if (poly.size()>3) {
undo_redo->create_action(TTR("Edit Poly (Remove Point)"));
@@ -411,7 +411,7 @@ void NavigationPolygonEditor::_canvas_draw() {
if (node->get_navigation_polygon().is_null())
return;
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Ref<Texture> handle= get_icon("EditorHandle","EditorIcons");
@@ -477,10 +477,10 @@ void NavigationPolygonEditor::edit(Node *p_collision_polygon) {
void NavigationPolygonEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_menu_option"),&NavigationPolygonEditor::_menu_option);
- ObjectTypeDB::bind_method(_MD("_canvas_draw"),&NavigationPolygonEditor::_canvas_draw);
- ObjectTypeDB::bind_method(_MD("_node_removed"),&NavigationPolygonEditor::_node_removed);
- ObjectTypeDB::bind_method(_MD("_create_nav"),&NavigationPolygonEditor::_create_nav);
+ ClassDB::bind_method(_MD("_menu_option"),&NavigationPolygonEditor::_menu_option);
+ ClassDB::bind_method(_MD("_canvas_draw"),&NavigationPolygonEditor::_canvas_draw);
+ ClassDB::bind_method(_MD("_node_removed"),&NavigationPolygonEditor::_node_removed);
+ ClassDB::bind_method(_MD("_create_nav"),&NavigationPolygonEditor::_create_nav);
}
@@ -515,7 +515,7 @@ NavigationPolygonEditor::NavigationPolygonEditor(EditorNode *p_editor) {
options->set_area_as_parent_rect();
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
#endif
mode = MODE_EDIT;
@@ -532,7 +532,7 @@ void NavigationPolygonEditorPlugin::edit(Object *p_object) {
bool NavigationPolygonEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("NavigationPolygonInstance");
+ return p_object->is_class("NavigationPolygonInstance");
}
void NavigationPolygonEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/navigation_polygon_editor_plugin.h b/tools/editor/plugins/navigation_polygon_editor_plugin.h
index defdebbec2..50df4df744 100644
--- a/tools/editor/plugins/navigation_polygon_editor_plugin.h
+++ b/tools/editor/plugins/navigation_polygon_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -44,7 +44,7 @@ class CanvasItemEditor;
class NavigationPolygonEditor : public HBoxContainer {
- OBJ_TYPE(NavigationPolygonEditor, HBoxContainer );
+ GDCLASS(NavigationPolygonEditor, HBoxContainer );
UndoRedo *undo_redo;
enum Mode {
@@ -70,7 +70,7 @@ class NavigationPolygonEditor : public HBoxContainer {
int edited_outline;
int edited_point;
Vector2 edited_point_pos;
- DVector<Vector2> pre_move_edit;
+ PoolVector<Vector2> pre_move_edit;
Vector<Vector2> wip;
bool wip_active;
@@ -87,21 +87,21 @@ protected:
static void _bind_methods();
public:
- bool forward_input_event(const InputEvent& p_event);
+ bool forward_gui_input(const InputEvent& p_event);
void edit(Node *p_collision_polygon);
NavigationPolygonEditor(EditorNode *p_editor);
};
class NavigationPolygonEditorPlugin : public EditorPlugin {
- OBJ_TYPE( NavigationPolygonEditorPlugin, EditorPlugin );
+ GDCLASS( NavigationPolygonEditorPlugin, EditorPlugin );
NavigationPolygonEditor *collision_polygon_editor;
EditorNode *editor;
public:
- virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); }
+ virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); }
virtual String get_name() const { return "NavigationPolygonInstance"; }
bool has_main_screen() const { return false; }
diff --git a/tools/editor/plugins/particles_2d_editor_plugin.cpp b/tools/editor/plugins/particles_2d_editor_plugin.cpp
index ce25f34c1f..20b1b9d1ca 100644
--- a/tools/editor/plugins/particles_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/particles_2d_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,8 +26,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-
#include "particles_2d_editor_plugin.h"
+
#include "canvas_item_editor_plugin.h"
#include "io/image_loader.h"
#include "scene/gui/separator.h"
@@ -43,7 +43,7 @@ void Particles2DEditorPlugin::edit(Object *p_object) {
bool Particles2DEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("Particles2D");
+ return p_object->is_class("Particles2D");
}
void Particles2DEditorPlugin::make_visible(bool p_visible) {
@@ -62,20 +62,20 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) {
print_line("file: "+p_file);
- int epc=epoints->get_val();
+ int epc=epoints->get_value();
Image img;
Error err = ImageLoader::load_image(p_file,&img);
ERR_EXPLAIN(TTR("Error loading image:")+" "+p_file);
ERR_FAIL_COND(err!=OK);
- img.convert(Image::FORMAT_GRAYSCALE_ALPHA);
- ERR_FAIL_COND(img.get_format()!=Image::FORMAT_GRAYSCALE_ALPHA);
+ img.convert(Image::FORMAT_LA8);
+ ERR_FAIL_COND(img.get_format()!=Image::FORMAT_LA8);
Size2i s = Size2(img.get_width(),img.get_height());
ERR_FAIL_COND(s.width==0 || s.height==0);
- DVector<uint8_t> data = img.get_data();
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t> data = img.get_data();
+ PoolVector<uint8_t>::Read r = data.read();
Vector<Point2i> valid_positions;
valid_positions.resize(s.width*s.height);
@@ -95,9 +95,9 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) {
ERR_EXPLAIN(TTR("No pixels with transparency > 128 in image.."));
ERR_FAIL_COND(valid_positions.size()==0);
- DVector<Point2> epoints;
+ PoolVector<Point2> epoints;
epoints.resize(epc);
- DVector<Point2>::Write w = epoints.write();
+ PoolVector<Point2>::Write w = epoints.write();
Size2 extents = Size2(img.get_width()*0.5,img.get_height()*0.5);
@@ -108,7 +108,7 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) {
w[i]=p/extents;
}
- w = DVector<Point2>::Write();
+ w = PoolVector<Point2>::Write();
undo_redo->create_action(TTR("Set Emission Mask"));
undo_redo->add_do_method(particles,"set_emission_points",epoints);
@@ -131,7 +131,7 @@ void Particles2DEditorPlugin::_menu_callback(int p_idx) {
case MENU_CLEAR_EMISSION_MASK: {
undo_redo->create_action(TTR("Clear Emission Mask"));
- undo_redo->add_do_method(particles,"set_emission_points",DVector<Vector2>());
+ undo_redo->add_do_method(particles,"set_emission_points",PoolVector<Vector2>());
undo_redo->add_undo_method(particles,"set_emission_points",particles->get_emission_points());
undo_redo->commit_action();
} break;
@@ -144,7 +144,7 @@ void Particles2DEditorPlugin::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
- menu->get_popup()->connect("item_pressed",this,"_menu_callback");
+ menu->get_popup()->connect("id_pressed",this,"_menu_callback");
menu->set_icon(menu->get_popup()->get_icon("Particles2D","EditorIcons"));
file->connect("file_selected",this,"_file_selected");
}
@@ -152,8 +152,8 @@ void Particles2DEditorPlugin::_notification(int p_what) {
void Particles2DEditorPlugin::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_menu_callback"),&Particles2DEditorPlugin::_menu_callback);
- ObjectTypeDB::bind_method(_MD("_file_selected"),&Particles2DEditorPlugin::_file_selected);
+ ClassDB::bind_method(_MD("_menu_callback"),&Particles2DEditorPlugin::_menu_callback);
+ ClassDB::bind_method(_MD("_file_selected"),&Particles2DEditorPlugin::_file_selected);
}
@@ -189,7 +189,7 @@ Particles2DEditorPlugin::Particles2DEditorPlugin(EditorNode *p_node) {
epoints->set_min(1);
epoints->set_max(8192);
epoints->set_step(1);
- epoints->set_val(512);
+ epoints->set_value(512);
file->get_vbox()->add_margin_child(TTR("Generated Point Count:"),epoints);
}
diff --git a/tools/editor/plugins/particles_2d_editor_plugin.h b/tools/editor/plugins/particles_2d_editor_plugin.h
index ce2056b482..c532a5fe73 100644
--- a/tools/editor/plugins/particles_2d_editor_plugin.h
+++ b/tools/editor/plugins/particles_2d_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -39,7 +39,7 @@
class Particles2DEditorPlugin : public EditorPlugin {
- OBJ_TYPE( Particles2DEditorPlugin, EditorPlugin );
+ GDCLASS( Particles2DEditorPlugin, EditorPlugin );
enum {
diff --git a/tools/editor/plugins/particles_editor_plugin.cpp b/tools/editor/plugins/particles_editor_plugin.cpp
index 7e20cc3f54..fd5ec5b5b9 100644
--- a/tools/editor/plugins/particles_editor_plugin.cpp
+++ b/tools/editor/plugins/particles_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,6 +26,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
+#if 0
#include "particles_editor_plugin.h"
#include "io/resource_loader.h"
#include "servers/visual/particle_system_sw.h"
@@ -75,7 +77,7 @@ void ParticlesEditor::_node_selected(const NodePath& p_path){
Transform geom_xform = node->get_global_transform().affine_inverse() * vi->get_global_transform();
int gc = geometry.size();
- DVector<Face3>::Write w = geometry.write();
+ PoolVector<Face3>::Write w = geometry.write();
for(int i=0;i<gc;i++) {
@@ -85,7 +87,7 @@ void ParticlesEditor::_node_selected(const NodePath& p_path){
}
- w = DVector<Face3>::Write();
+ w = PoolVector<Face3>::Write();
emission_dialog->popup_centered(Size2(300,130));
}
@@ -200,7 +202,7 @@ void ParticlesEditor::edit(Particles *p_particles) {
void ParticlesEditor::_generate_emission_points() {
/// hacer codigo aca
- DVector<Vector3> points;
+ PoolVector<Vector3> points;
if (emission_fill->get_selected()==0) {
@@ -210,7 +212,7 @@ void ParticlesEditor::_generate_emission_points() {
for(int i=0;i<geometry.size();i++) {
- float area = geometry[i].get_area();;
+ float area = geometry[i].get_area();
if (area<CMP_EPSILON)
continue;
triangle_area_map[area_accum]=i;
@@ -254,7 +256,7 @@ void ParticlesEditor::_generate_emission_points() {
return;
}
- DVector<Face3>::Read r = geometry.read();
+ PoolVector<Face3>::Read r = geometry.read();
AABB aabb;
@@ -330,12 +332,12 @@ void ParticlesEditor::_generate_emission_points() {
void ParticlesEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_menu_option",&ParticlesEditor::_menu_option);
- ObjectTypeDB::bind_method("_resource_seleted",&ParticlesEditor::_resource_seleted);
- ObjectTypeDB::bind_method("_node_selected",&ParticlesEditor::_node_selected);
- ObjectTypeDB::bind_method("_generate_emission_points",&ParticlesEditor::_generate_emission_points);
+ ClassDB::bind_method("_menu_option",&ParticlesEditor::_menu_option);
+ ClassDB::bind_method("_resource_seleted",&ParticlesEditor::_resource_seleted);
+ ClassDB::bind_method("_node_selected",&ParticlesEditor::_node_selected);
+ ClassDB::bind_method("_generate_emission_points",&ParticlesEditor::_generate_emission_points);
- //ObjectTypeDB::bind_method("_populate",&ParticlesEditor::_populate);
+ //ClassDB::bind_method("_populate",&ParticlesEditor::_populate);
}
@@ -354,7 +356,7 @@ ParticlesEditor::ParticlesEditor() {
options->get_popup()->add_item(TTR("Create Emitter From Node"),MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_NODE);
options->get_popup()->add_item(TTR("Clear Emitter"),MENU_OPTION_CLEAR_EMISSION_VOLUME);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
emission_dialog = memnew( ConfirmationDialog );
emission_dialog->set_title(TTR("Create Emitter"));
@@ -456,3 +458,4 @@ ParticlesEditorPlugin::~ParticlesEditorPlugin()
}
+#endif
diff --git a/tools/editor/plugins/particles_editor_plugin.h b/tools/editor/plugins/particles_editor_plugin.h
index ff80bffc29..c32fbe5ada 100644
--- a/tools/editor/plugins/particles_editor_plugin.h
+++ b/tools/editor/plugins/particles_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,10 +37,10 @@
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
-
+#if 0
class ParticlesEditor : public Control {
- OBJ_TYPE(ParticlesEditor, Control );
+ GDCLASS(ParticlesEditor, Control );
Panel *panel;
MenuButton *options;
@@ -69,7 +69,7 @@ class ParticlesEditor : public Control {
};
- DVector<Face3> geometry;
+ PoolVector<Face3> geometry;
void _generate_emission_points();
void _resource_seleted(const String& p_res);
@@ -94,7 +94,7 @@ public:
class ParticlesEditorPlugin : public EditorPlugin {
- OBJ_TYPE( ParticlesEditorPlugin, EditorPlugin );
+ GDCLASS( ParticlesEditorPlugin, EditorPlugin );
ParticlesEditor *particles_editor;
EditorNode *editor;
@@ -113,3 +113,4 @@ public:
};
#endif // PARTICLES_EDITOR_PLUGIN_H
+#endif
diff --git a/tools/editor/plugins/path_2d_editor_plugin.cpp b/tools/editor/plugins/path_2d_editor_plugin.cpp
index 95f330a1d5..8e475e56f7 100644
--- a/tools/editor/plugins/path_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/path_2d_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,7 +38,7 @@ void Path2DEditor::_notification(int p_what) {
case NOTIFICATION_READY: {
-// button_create->set_icon( get_icon("Edit","EditorIcons"));
+ //button_create->set_icon( get_icon("Edit","EditorIcons"));
//button_edit->set_icon( get_icon("MovePoint","EditorIcons"));
//set_pressed_button(button_edit);
//button_edit->set_pressed(true);
@@ -62,12 +62,12 @@ void Path2DEditor::_node_removed(Node *p_node) {
}
-bool Path2DEditor::forward_input_event(const InputEvent& p_event) {
+bool Path2DEditor::forward_gui_input(const InputEvent& p_event) {
if (!node)
return false;
- if (!node->is_visible())
+ if (!node->is_visible_in_tree())
return false;
if (!node->get_curve().is_valid())
@@ -79,14 +79,14 @@ bool Path2DEditor::forward_input_event(const InputEvent& p_event) {
const InputEventMouseButton &mb=p_event.mouse_button;
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Vector2 gpoint = Point2(mb.x,mb.y);
Vector2 cpoint = !mb.mod.alt? canvas_item_editor->snap_point(xform.affine_inverse().xform(gpoint))
: node->get_global_transform().affine_inverse().xform( canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint)) );
//first check if a point is to be added (segment split)
- real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8);
+ real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8);
@@ -421,7 +421,7 @@ bool Path2DEditor::forward_input_event(const InputEvent& p_event) {
if ( action!=ACTION_NONE) {
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Vector2 gpoint = Point2(mm.x,mm.y);
Vector2 cpoint = !mm.mod.alt? canvas_item_editor->snap_point(xform.affine_inverse().xform(gpoint))
: node->get_global_transform().affine_inverse().xform( canvas_item_editor->snap_point(canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint)) );
@@ -475,13 +475,13 @@ void Path2DEditor::_canvas_draw() {
if (!node)
return ;
- if (!node->is_visible())
+ if (!node->is_visible_in_tree())
return;
if (!node->get_curve().is_valid())
return ;
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Ref<Texture> handle= get_icon("EditorHandle","EditorIcons");
Size2 handle_size = handle->get_size();
@@ -550,10 +550,10 @@ void Path2DEditor::edit(Node *p_path2d) {
void Path2DEditor::_bind_methods() {
- //ObjectTypeDB::bind_method(_MD("_menu_option"),&Path2DEditor::_menu_option);
- ObjectTypeDB::bind_method(_MD("_canvas_draw"),&Path2DEditor::_canvas_draw);
- ObjectTypeDB::bind_method(_MD("_node_visibility_changed"),&Path2DEditor::_node_visibility_changed);
- ObjectTypeDB::bind_method(_MD("_mode_selected"),&Path2DEditor::_mode_selected);
+ //ClassDB::bind_method(_MD("_menu_option"),&Path2DEditor::_menu_option);
+ ClassDB::bind_method(_MD("_canvas_draw"),&Path2DEditor::_canvas_draw);
+ ClassDB::bind_method(_MD("_node_visibility_changed"),&Path2DEditor::_node_visibility_changed);
+ ClassDB::bind_method(_MD("_mode_selected"),&Path2DEditor::_mode_selected);
}
void Path2DEditor::_mode_selected(int p_mode) {
@@ -624,7 +624,7 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) {
options->set_area_as_parent_rect();
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
#endif
base_hb = memnew( HBoxContainer );
@@ -683,7 +683,7 @@ void Path2DEditorPlugin::edit(Object *p_object) {
bool Path2DEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("Path2D");
+ return p_object->is_class("Path2D");
}
void Path2DEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/path_2d_editor_plugin.h b/tools/editor/plugins/path_2d_editor_plugin.h
index acbc481e09..aa940e4edf 100644
--- a/tools/editor/plugins/path_2d_editor_plugin.h
+++ b/tools/editor/plugins/path_2d_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -42,7 +42,7 @@ class CanvasItemEditor;
class Path2DEditor : public HBoxContainer {
- OBJ_TYPE(Path2DEditor, HBoxContainer);
+ GDCLASS(Path2DEditor, HBoxContainer);
UndoRedo *undo_redo;
@@ -94,21 +94,21 @@ protected:
static void _bind_methods();
public:
- bool forward_input_event(const InputEvent& p_event);
+ bool forward_gui_input(const InputEvent& p_event);
void edit(Node *p_path2d);
Path2DEditor(EditorNode *p_editor);
};
class Path2DEditorPlugin : public EditorPlugin {
- OBJ_TYPE( Path2DEditorPlugin, EditorPlugin );
+ GDCLASS( Path2DEditorPlugin, EditorPlugin );
Path2DEditor *path2d_editor;
EditorNode *editor;
public:
- virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return path2d_editor->forward_input_event(p_event); }
+ virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return path2d_editor->forward_gui_input(p_event); }
virtual String get_name() const { return "Path2D"; }
bool has_main_screen() const { return false; }
diff --git a/tools/editor/plugins/path_editor_plugin.cpp b/tools/editor/plugins/path_editor_plugin.cpp
index 33ef71efab..2e148d6486 100644
--- a/tools/editor/plugins/path_editor_plugin.cpp
+++ b/tools/editor/plugins/path_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,10 +27,12 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "path_editor_plugin.h"
+
#include "spatial_editor_plugin.h"
#include "scene/resources/curve.h"
#include "os/keyboard.h"
+#if 0
String PathSpatialGizmo::get_handle_name(int p_idx) const {
Ref<Curve3D> c = path->get_curve();
@@ -103,6 +105,12 @@ void PathSpatialGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_po
if (p.intersects_ray(ray_from,ray_dir,&inters)) {
+ if(SpatialEditor::get_singleton()->is_snap_enabled())
+ {
+ float snap = SpatialEditor::get_singleton()->get_translate_snap();
+ inters.snap(snap);
+ }
+
Vector3 local = gi.xform(inters);
c->set_point_pos(p_idx,local);
}
@@ -278,7 +286,7 @@ Ref<SpatialEditorGizmo> PathEditorPlugin::create_spatial_gizmo(Spatial* p_spatia
return Ref<SpatialEditorGizmo>();
}
-bool PathEditorPlugin::forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event) {
+bool PathEditorPlugin::forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event) {
if (!path)
return false;
@@ -369,7 +377,7 @@ bool PathEditorPlugin::forward_spatial_input_event(Camera* p_camera,const InputE
ur->create_action(TTR("Split Path"));
ur->add_do_method(c.ptr(),"add_point",closest_seg_point,Vector3(),Vector3(),closest_seg+1);
ur->add_undo_method(c.ptr(),"remove_point",closest_seg+1);
- ur->commit_action();;
+ ur->commit_action();
return true;
} else {
@@ -389,7 +397,7 @@ bool PathEditorPlugin::forward_spatial_input_event(Camera* p_camera,const InputE
ur->create_action(TTR("Add Point to Curve"));
ur->add_do_method(c.ptr(),"add_point",it.xform(inters),Vector3(),Vector3(),-1);
ur->add_undo_method(c.ptr(),"remove_point",c->get_point_count());
- ur->commit_action();;
+ ur->commit_action();
return true;
}
@@ -442,7 +450,7 @@ void PathEditorPlugin::edit(Object *p_object) {
pre->get_curve()->emit_signal("changed");
}
}
-// collision_polygon_editor->edit(p_object->cast_to<Node>());
+ //collision_polygon_editor->edit(p_object->cast_to<Node>());
}
bool PathEditorPlugin::handles(Object *p_object) const {
@@ -509,8 +517,8 @@ void PathEditorPlugin::_notification(int p_what) {
void PathEditorPlugin::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_mode_changed"),&PathEditorPlugin::_mode_changed);
- ObjectTypeDB::bind_method(_MD("_close_curve"),&PathEditorPlugin::_close_curve);
+ ClassDB::bind_method(_MD("_mode_changed"),&PathEditorPlugin::_mode_changed);
+ ClassDB::bind_method(_MD("_close_curve"),&PathEditorPlugin::_close_curve);
}
PathEditorPlugin* PathEditorPlugin::singleton=NULL;
@@ -522,21 +530,21 @@ PathEditorPlugin::PathEditorPlugin(EditorNode *p_node) {
editor=p_node;
singleton=this;
- path_material = Ref<FixedMaterial>( memnew( FixedMaterial ));
- path_material->set_parameter( FixedMaterial::PARAM_DIFFUSE,Color(0.5,0.5,1.0,0.8) );
- path_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
+ path_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ path_material->set_parameter( FixedSpatialMaterial::PARAM_DIFFUSE,Color(0.5,0.5,1.0,0.8) );
+ path_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA, true);
path_material->set_line_width(3);
path_material->set_flag(Material::FLAG_DOUBLE_SIDED,true);
path_material->set_flag(Material::FLAG_UNSHADED,true);
- path_thin_material = Ref<FixedMaterial>( memnew( FixedMaterial ));
- path_thin_material->set_parameter( FixedMaterial::PARAM_DIFFUSE,Color(0.5,0.5,1.0,0.4) );
- path_thin_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
+ path_thin_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ path_thin_material->set_parameter( FixedSpatialMaterial::PARAM_DIFFUSE,Color(0.5,0.5,1.0,0.4) );
+ path_thin_material->set_fixed_flag(FixedSpatialMaterial::FLAG_USE_ALPHA, true);
path_thin_material->set_line_width(1);
path_thin_material->set_flag(Material::FLAG_DOUBLE_SIDED,true);
path_thin_material->set_flag(Material::FLAG_UNSHADED,true);
-// SpatialEditor::get_singleton()->add_gizmo_plugin(this);
+ //SpatialEditor::get_singleton()->add_gizmo_plugin(this);
sep = memnew( VSeparator);
sep->hide();
@@ -593,3 +601,4 @@ PathEditorPlugin::~PathEditorPlugin()
{
}
+#endif
diff --git a/tools/editor/plugins/path_editor_plugin.h b/tools/editor/plugins/path_editor_plugin.h
index 0afd957af7..79e978dc1d 100644
--- a/tools/editor/plugins/path_editor_plugin.h
+++ b/tools/editor/plugins/path_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -32,9 +32,10 @@
#include "tools/editor/spatial_editor_gizmos.h"
#include "scene/3d/path.h"
+# if 0
class PathSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(PathSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(PathSpatialGizmo,EditorSpatialGizmo);
Path* path;
mutable Vector3 original;
@@ -53,7 +54,7 @@ public:
class PathEditorPlugin : public EditorPlugin {
- OBJ_TYPE( PathEditorPlugin, EditorPlugin );
+ GDCLASS( PathEditorPlugin, EditorPlugin );
Separator *sep;
@@ -78,11 +79,11 @@ public:
Path *get_edited_path() { return path; }
static PathEditorPlugin* singleton;
- Ref<FixedMaterial> path_material;
- Ref<FixedMaterial> path_thin_material;
- virtual bool forward_spatial_input_event(Camera* p_camera,const InputEvent& p_event);
+ Ref<FixedSpatialMaterial> path_material;
+ Ref<FixedSpatialMaterial> path_thin_material;
+ virtual bool forward_spatial_gui_input(Camera* p_camera,const InputEvent& p_event);
-// virtual bool forward_input_event(const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); }
+ //virtual bool forward_gui_input(const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); }
virtual Ref<SpatialEditorGizmo> create_spatial_gizmo(Spatial* p_spatial);
virtual String get_name() const { return "Path"; }
bool has_main_screen() const { return false; }
@@ -95,5 +96,5 @@ public:
};
-
+#endif
#endif // PATH_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/polygon_2d_editor_plugin.cpp b/tools/editor/plugins/polygon_2d_editor_plugin.cpp
index 19d1ccc06f..7958dce75a 100644
--- a/tools/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,8 +26,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-
#include "polygon_2d_editor_plugin.h"
+
#include "canvas_item_editor_plugin.h"
#include "os/file_access.h"
#include "tools/editor/editor_settings.h"
@@ -102,8 +102,8 @@ void Polygon2DEditor::_menu_option(int p_option) {
}
- DVector<Vector2> points = node->get_polygon();
- DVector<Vector2> uvs = node->get_uv();
+ PoolVector<Vector2> points = node->get_polygon();
+ PoolVector<Vector2> uvs = node->get_uv();
if (uvs.size()!=points.size()) {
undo_redo->create_action(TTR("Create UV Map"));
undo_redo->add_do_method(node,"set_uv",points);
@@ -119,10 +119,10 @@ void Polygon2DEditor::_menu_option(int p_option) {
} break;
case UVEDIT_POLYGON_TO_UV: {
- DVector<Vector2> points = node->get_polygon();
+ PoolVector<Vector2> points = node->get_polygon();
if (points.size()==0)
break;
- DVector<Vector2> uvs = node->get_uv();
+ PoolVector<Vector2> uvs = node->get_uv();
undo_redo->create_action(TTR("Create UV Map"));
undo_redo->add_do_method(node,"set_uv",points);
undo_redo->add_undo_method(node,"set_uv",uvs);
@@ -134,8 +134,8 @@ void Polygon2DEditor::_menu_option(int p_option) {
} break;
case UVEDIT_UV_TO_POLYGON: {
- DVector<Vector2> points = node->get_polygon();
- DVector<Vector2> uvs = node->get_uv();
+ PoolVector<Vector2> points = node->get_polygon();
+ PoolVector<Vector2> uvs = node->get_uv();
if (uvs.size()==0)
break;
@@ -149,11 +149,11 @@ void Polygon2DEditor::_menu_option(int p_option) {
} break;
case UVEDIT_UV_CLEAR: {
- DVector<Vector2> uvs = node->get_uv();
+ PoolVector<Vector2> uvs = node->get_uv();
if (uvs.size()==0)
break;
undo_redo->create_action(TTR("Create UV Map"));
- undo_redo->add_do_method(node,"set_uv",DVector<Vector2>());
+ undo_redo->add_do_method(node,"set_uv",PoolVector<Vector2>());
undo_redo->add_undo_method(node,"set_uv",uvs);
undo_redo->add_do_method(uv_edit_draw,"update");
undo_redo->add_undo_method(uv_edit_draw,"update");
@@ -216,7 +216,7 @@ void Polygon2DEditor::_wip_close() {
edited_point=-1;
}
-bool Polygon2DEditor::forward_input_event(const InputEvent& p_event) {
+bool Polygon2DEditor::forward_gui_input(const InputEvent& p_event) {
if (node==NULL)
return false;
@@ -227,7 +227,7 @@ bool Polygon2DEditor::forward_input_event(const InputEvent& p_event) {
const InputEventMouseButton &mb=p_event.mouse_button;
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Vector2 gpoint = Point2(mb.x,mb.y);
@@ -239,7 +239,7 @@ bool Polygon2DEditor::forward_input_event(const InputEvent& p_event) {
Vector<Vector2> poly = Variant(node->get_polygon());
//first check if a point is to be added (segment split)
- real_t grab_treshold=EDITOR_DEF("poly_editor/point_grab_radius",8);
+ real_t grab_treshold=EDITOR_DEF("editors/poly_editor/point_grab_radius",8);
switch(mode) {
@@ -463,7 +463,7 @@ void Polygon2DEditor::_canvas_draw() {
poly=Variant(node->get_polygon());
- Matrix32 xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform = canvas_item_editor->get_canvas_transform() * node->get_global_transform();
Ref<Texture> handle= get_icon("EditorHandle","EditorIcons");
for(int i=0;i<poly.size();i++) {
@@ -499,7 +499,7 @@ void Polygon2DEditor::_uv_mode(int p_mode) {
void Polygon2DEditor::_uv_input(const InputEvent& p_input) {
- Matrix32 mtx;
+ Transform2D mtx;
mtx.elements[2]=-uv_draw_ofs;
mtx.scale_basis(Vector2(uv_draw_zoom,uv_draw_zoom));
@@ -567,10 +567,10 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) {
} else if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed) {
- uv_zoom->set_val( uv_zoom->get_val()/0.9 );
+ uv_zoom->set_value( uv_zoom->get_value()/0.9 );
} else if (mb.button_index==BUTTON_WHEEL_DOWN && mb.pressed) {
- uv_zoom->set_val( uv_zoom->get_val()*0.9);
+ uv_zoom->set_value( uv_zoom->get_value()*0.9);
}
} else if (p_input.type==InputEvent::MOUSE_MOTION) {
@@ -580,8 +580,8 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) {
if (mm.button_mask&BUTTON_MASK_MIDDLE || Input::get_singleton()->is_key_pressed(KEY_SPACE)) {
Vector2 drag(mm.relative_x,mm.relative_y);
- uv_hscroll->set_val( uv_hscroll->get_val()-drag.x );
- uv_vscroll->set_val( uv_vscroll->get_val()-drag.y );
+ uv_hscroll->set_value( uv_hscroll->get_value()-drag.x );
+ uv_vscroll->set_value( uv_vscroll->get_value()-drag.y );
} else if (uv_drag) {
@@ -593,13 +593,13 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) {
case UV_MODE_EDIT_POINT: {
- DVector<Vector2> uv_new=uv_prev;
+ PoolVector<Vector2> uv_new=uv_prev;
uv_new.set( uv_drag_index, uv_new[uv_drag_index]+drag );
node->set_uv(uv_new);
} break;
case UV_MODE_MOVE: {
- DVector<Vector2> uv_new=uv_prev;
+ PoolVector<Vector2> uv_new=uv_prev;
for(int i=0;i<uv_new.size();i++)
uv_new.set( i, uv_new[i]+drag );
@@ -610,7 +610,7 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) {
case UV_MODE_ROTATE: {
Vector2 center;
- DVector<Vector2> uv_new=uv_prev;
+ PoolVector<Vector2> uv_new=uv_prev;
for(int i=0;i<uv_new.size();i++)
center+=uv_prev[i];
@@ -630,7 +630,7 @@ void Polygon2DEditor::_uv_input(const InputEvent& p_input) {
case UV_MODE_SCALE: {
Vector2 center;
- DVector<Vector2> uv_new=uv_prev;
+ PoolVector<Vector2> uv_new=uv_prev;
for(int i=0;i<uv_new.size();i++)
center+=uv_prev[i];
@@ -668,9 +668,9 @@ void Polygon2DEditor::_uv_scroll_changed(float) {
if (updating_uv_scroll)
return;
- uv_draw_ofs.x=uv_hscroll->get_val();
- uv_draw_ofs.y=uv_vscroll->get_val();
- uv_draw_zoom=uv_zoom->get_val();
+ uv_draw_ofs.x=uv_hscroll->get_value();
+ uv_draw_ofs.y=uv_vscroll->get_value();
+ uv_draw_zoom=uv_zoom->get_value();
uv_edit_draw->update();
}
@@ -680,14 +680,13 @@ void Polygon2DEditor::_uv_draw() {
if (base_tex.is_null())
return;
- Matrix32 mtx;
+ Transform2D mtx;
mtx.elements[2]=-uv_draw_ofs;
mtx.scale_basis(Vector2(uv_draw_zoom,uv_draw_zoom));
- VS::get_singleton()->canvas_item_set_clip(uv_edit_draw->get_canvas_item(),true);
VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(),mtx);
uv_edit_draw->draw_texture(base_tex,Point2());
- VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(),Matrix32());
+ VS::get_singleton()->canvas_item_add_set_transform(uv_edit_draw->get_canvas_item(),Transform2D());
if (snap_show_grid) {
Size2 s = uv_edit_draw->get_size();
@@ -716,7 +715,7 @@ void Polygon2DEditor::_uv_draw() {
}
}
- DVector<Vector2> uvs = node->get_uv();
+ PoolVector<Vector2> uvs = node->get_uv();
Ref<Texture> handle = get_icon("EditorHandle","EditorIcons");
Rect2 rect(Point2(),mtx.basis_xform(base_tex->get_size()));
@@ -735,13 +734,13 @@ void Polygon2DEditor::_uv_draw() {
uv_hscroll->set_min(rect.pos.x);
uv_hscroll->set_max(rect.pos.x+rect.size.x);
uv_hscroll->set_page(uv_edit_draw->get_size().x);
- uv_hscroll->set_val(uv_draw_ofs.x);
+ uv_hscroll->set_value(uv_draw_ofs.x);
uv_hscroll->set_step(0.001);
uv_vscroll->set_min(rect.pos.y);
uv_vscroll->set_max(rect.pos.y+rect.size.y);
uv_vscroll->set_page(uv_edit_draw->get_size().y);
- uv_vscroll->set_val(uv_draw_ofs.y);
+ uv_vscroll->set_value(uv_draw_ofs.y);
uv_vscroll->set_step(0.001);
updating_uv_scroll=false;
@@ -776,19 +775,19 @@ void Polygon2DEditor::edit(Node *p_collision_polygon) {
void Polygon2DEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_menu_option"),&Polygon2DEditor::_menu_option);
- ObjectTypeDB::bind_method(_MD("_canvas_draw"),&Polygon2DEditor::_canvas_draw);
- ObjectTypeDB::bind_method(_MD("_uv_mode"),&Polygon2DEditor::_uv_mode);
- ObjectTypeDB::bind_method(_MD("_uv_draw"),&Polygon2DEditor::_uv_draw);
- ObjectTypeDB::bind_method(_MD("_uv_input"),&Polygon2DEditor::_uv_input);
- ObjectTypeDB::bind_method(_MD("_uv_scroll_changed"),&Polygon2DEditor::_uv_scroll_changed);
- ObjectTypeDB::bind_method(_MD("_node_removed"),&Polygon2DEditor::_node_removed);
- ObjectTypeDB::bind_method(_MD("_set_use_snap"),&Polygon2DEditor::_set_use_snap);
- ObjectTypeDB::bind_method(_MD("_set_show_grid"),&Polygon2DEditor::_set_show_grid);
- ObjectTypeDB::bind_method(_MD("_set_snap_off_x"),&Polygon2DEditor::_set_snap_off_x);
- ObjectTypeDB::bind_method(_MD("_set_snap_off_y"),&Polygon2DEditor::_set_snap_off_y);
- ObjectTypeDB::bind_method(_MD("_set_snap_step_x"),&Polygon2DEditor::_set_snap_step_x);
- ObjectTypeDB::bind_method(_MD("_set_snap_step_y"),&Polygon2DEditor::_set_snap_step_y);
+ ClassDB::bind_method(_MD("_menu_option"),&Polygon2DEditor::_menu_option);
+ ClassDB::bind_method(_MD("_canvas_draw"),&Polygon2DEditor::_canvas_draw);
+ ClassDB::bind_method(_MD("_uv_mode"),&Polygon2DEditor::_uv_mode);
+ ClassDB::bind_method(_MD("_uv_draw"),&Polygon2DEditor::_uv_draw);
+ ClassDB::bind_method(_MD("_uv_input"),&Polygon2DEditor::_uv_input);
+ ClassDB::bind_method(_MD("_uv_scroll_changed"),&Polygon2DEditor::_uv_scroll_changed);
+ ClassDB::bind_method(_MD("_node_removed"),&Polygon2DEditor::_node_removed);
+ ClassDB::bind_method(_MD("_set_use_snap"),&Polygon2DEditor::_set_use_snap);
+ ClassDB::bind_method(_MD("_set_show_grid"),&Polygon2DEditor::_set_show_grid);
+ ClassDB::bind_method(_MD("_set_snap_off_x"),&Polygon2DEditor::_set_snap_off_x);
+ ClassDB::bind_method(_MD("_set_snap_off_y"),&Polygon2DEditor::_set_snap_off_y);
+ ClassDB::bind_method(_MD("_set_snap_step_x"),&Polygon2DEditor::_set_snap_step_x);
+ ClassDB::bind_method(_MD("_set_snap_step_y"),&Polygon2DEditor::_set_snap_step_y);
}
@@ -840,7 +839,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
options->set_area_as_parent_rect();
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
#endif
mode = MODE_EDIT;
@@ -850,11 +849,11 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
uv_edit = memnew( AcceptDialog );
add_child(uv_edit);
uv_edit->set_title(TTR("Polygon 2D UV Editor"));
- uv_edit->set_self_opacity(0.9);
+ uv_edit->set_self_modulate(Color(1,1,1,0.9));
VBoxContainer *uv_main_vb = memnew( VBoxContainer );
uv_edit->add_child(uv_main_vb);
- uv_edit->set_child_rect(uv_main_vb);
+ //uv_edit->set_child_rect(uv_main_vb);
HBoxContainer *uv_mode_hb = memnew( HBoxContainer );
uv_main_vb->add_child(uv_mode_hb);
for(int i=0;i<UV_MODE_MAX;i++) {
@@ -885,7 +884,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
uv_menu->get_popup()->add_item(TTR("UV->Polygon"),UVEDIT_UV_TO_POLYGON);
uv_menu->get_popup()->add_separator();
uv_menu->get_popup()->add_item(TTR("Clear UV"),UVEDIT_UV_CLEAR);
- uv_menu->get_popup()->connect("item_pressed",this,"_menu_option");
+ uv_menu->get_popup()->connect("id_pressed",this,"_menu_option");
uv_mode_hb->add_child( memnew( VSeparator ));
@@ -914,7 +913,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
sb_off_x->set_min(-256);
sb_off_x->set_max(256);
sb_off_x->set_step(1);
- sb_off_x->set_val(snap_offset.x);
+ sb_off_x->set_value(snap_offset.x);
sb_off_x->set_suffix("px");
sb_off_x->connect("value_changed", this, "_set_snap_off_x");
uv_mode_hb->add_child(sb_off_x);
@@ -923,7 +922,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
sb_off_y->set_min(-256);
sb_off_y->set_max(256);
sb_off_y->set_step(1);
- sb_off_y->set_val(snap_offset.y);
+ sb_off_y->set_value(snap_offset.y);
sb_off_y->set_suffix("px");
sb_off_y->connect("value_changed", this, "_set_snap_off_y");
uv_mode_hb->add_child(sb_off_y);
@@ -935,7 +934,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
sb_step_x->set_min(-256);
sb_step_x->set_max(256);
sb_step_x->set_step(1);
- sb_step_x->set_val(snap_step.x);
+ sb_step_x->set_value(snap_step.x);
sb_step_x->set_suffix("px");
sb_step_x->connect("value_changed", this, "_set_snap_step_x");
uv_mode_hb->add_child(sb_step_x);
@@ -944,18 +943,18 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
sb_step_y->set_min(-256);
sb_step_y->set_max(256);
sb_step_y->set_step(1);
- sb_step_y->set_val(snap_step.y);
+ sb_step_y->set_value(snap_step.y);
sb_step_y->set_suffix("px");
sb_step_y->connect("value_changed", this, "_set_snap_step_y");
uv_mode_hb->add_child(sb_step_y);
uv_mode_hb->add_child( memnew( VSeparator ));
- uv_icon_zoom = memnew( TextureFrame );
+ uv_icon_zoom = memnew( TextureRect );
uv_mode_hb->add_child( uv_icon_zoom );
uv_zoom = memnew( HSlider );
uv_zoom->set_min(0.01);
uv_zoom->set_max(4);
- uv_zoom->set_val(1);
+ uv_zoom->set_value(1);
uv_zoom->set_step(0.01);
uv_mode_hb->add_child(uv_zoom);
uv_zoom->set_custom_minimum_size(Size2(200,0));
@@ -975,7 +974,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
uv_hscroll->connect("value_changed",this,"_uv_scroll_changed");
uv_edit_draw->connect("draw",this,"_uv_draw");
- uv_edit_draw->connect("input_event",this,"_uv_input");
+ uv_edit_draw->connect("gui_input",this,"_uv_input");
uv_draw_zoom=1.0;
uv_drag_index=-1;
uv_drag=false;
@@ -984,6 +983,8 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
error = memnew( AcceptDialog);
add_child(error);
+ uv_edit_draw->set_clip_contents(true);
+
}
@@ -995,7 +996,7 @@ void Polygon2DEditorPlugin::edit(Object *p_object) {
bool Polygon2DEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("Polygon2D");
+ return p_object->is_class("Polygon2D");
}
void Polygon2DEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/polygon_2d_editor_plugin.h b/tools/editor/plugins/polygon_2d_editor_plugin.h
index 33bae94340..6011ee1f87 100644
--- a/tools/editor/plugins/polygon_2d_editor_plugin.h
+++ b/tools/editor/plugins/polygon_2d_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -42,7 +42,7 @@ class CanvasItemEditor;
class Polygon2DEditor : public HBoxContainer {
- OBJ_TYPE(Polygon2DEditor, HBoxContainer );
+ GDCLASS(Polygon2DEditor, HBoxContainer );
UndoRedo *undo_redo;
enum Mode {
@@ -77,11 +77,11 @@ class Polygon2DEditor : public HBoxContainer {
HScrollBar *uv_hscroll;
VScrollBar *uv_vscroll;
MenuButton *uv_menu;
- TextureFrame *uv_icon_zoom;
+ TextureRect *uv_icon_zoom;
Vector2 uv_draw_ofs;
float uv_draw_zoom;
- DVector<Vector2> uv_prev;
+ PoolVector<Vector2> uv_prev;
int uv_drag_index;
bool uv_drag;
UVMode uv_move_current;
@@ -137,21 +137,21 @@ protected:
public:
- bool forward_input_event(const InputEvent& p_event);
+ bool forward_gui_input(const InputEvent& p_event);
void edit(Node *p_collision_polygon);
Polygon2DEditor(EditorNode *p_editor);
};
class Polygon2DEditorPlugin : public EditorPlugin {
- OBJ_TYPE( Polygon2DEditorPlugin, EditorPlugin );
+ GDCLASS( Polygon2DEditorPlugin, EditorPlugin );
Polygon2DEditor *collision_polygon_editor;
EditorNode *editor;
public:
- virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_input_event(p_event); }
+ virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return collision_polygon_editor->forward_gui_input(p_event); }
virtual String get_name() const { return "Polygon2D"; }
bool has_main_screen() const { return false; }
diff --git a/tools/editor/plugins/resource_preloader_editor_plugin.cpp b/tools/editor/plugins/resource_preloader_editor_plugin.cpp
index cce0ba3d62..cb139cbe24 100644
--- a/tools/editor/plugins/resource_preloader_editor_plugin.cpp
+++ b/tools/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,14 +27,13 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "resource_preloader_editor_plugin.h"
+
#include "io/resource_loader.h"
#include "globals.h"
#include "tools/editor/editor_settings.h"
-#include "scene/resources/scene_preloader.h"
-
-void ResourcePreloaderEditor::_input_event(InputEvent p_event) {
+void ResourcePreloaderEditor::_gui_input(InputEvent p_event) {
}
@@ -52,7 +51,7 @@ void ResourcePreloaderEditor::_notification(int p_what) {
if (p_what==NOTIFICATION_READY) {
-// NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true);
+ //NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true);
}
if (p_what==NOTIFICATION_DRAW) {
@@ -79,7 +78,7 @@ void ResourcePreloaderEditor::_files_load_request(const Vector<String>& p_paths)
}
- String basename = path.get_file().basename();
+ String basename = path.get_file().get_basename();
String name=basename;
int counter=1;
while(preloader->has_resource(name)) {
@@ -179,7 +178,7 @@ void ResourcePreloaderEditor::_paste_pressed() {
if (name=="")
name=r->get_path().get_file();
if (name=="")
- name=r->get_type();
+ name=r->get_class();
String basename = name;
int counter=1;
@@ -248,7 +247,7 @@ void ResourcePreloaderEditor::_update_library() {
ERR_CONTINUE(r.is_null());
ti->set_tooltip(0,r->get_path());
- String type = r->get_type();
+ String type = r->get_class();
ti->set_text(1,type);
ti->set_selectable(1,false);
@@ -347,7 +346,7 @@ void ResourcePreloaderEditor::drop_data_fw(const Point2& p_point,const Variant&
if (r->get_name()!="") {
basename=r->get_name();
} else if (r->get_path().is_resource_file()) {
- basename = r->get_path().basename();
+ basename = r->get_path().get_basename();
} else {
basename="Resource";
}
@@ -381,19 +380,19 @@ void ResourcePreloaderEditor::drop_data_fw(const Point2& p_point,const Variant&
void ResourcePreloaderEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_input_event"),&ResourcePreloaderEditor::_input_event);
- ObjectTypeDB::bind_method(_MD("_load_pressed"),&ResourcePreloaderEditor::_load_pressed);
- ObjectTypeDB::bind_method(_MD("_item_edited"),&ResourcePreloaderEditor::_item_edited);
- ObjectTypeDB::bind_method(_MD("_delete_pressed"),&ResourcePreloaderEditor::_delete_pressed);
- ObjectTypeDB::bind_method(_MD("_paste_pressed"),&ResourcePreloaderEditor::_paste_pressed);
- ObjectTypeDB::bind_method(_MD("_delete_confirm_pressed"),&ResourcePreloaderEditor::_delete_confirm_pressed);
- ObjectTypeDB::bind_method(_MD("_files_load_request"),&ResourcePreloaderEditor::_files_load_request);
- ObjectTypeDB::bind_method(_MD("_update_library"),&ResourcePreloaderEditor::_update_library);
+ ClassDB::bind_method(_MD("_gui_input"),&ResourcePreloaderEditor::_gui_input);
+ ClassDB::bind_method(_MD("_load_pressed"),&ResourcePreloaderEditor::_load_pressed);
+ ClassDB::bind_method(_MD("_item_edited"),&ResourcePreloaderEditor::_item_edited);
+ ClassDB::bind_method(_MD("_delete_pressed"),&ResourcePreloaderEditor::_delete_pressed);
+ ClassDB::bind_method(_MD("_paste_pressed"),&ResourcePreloaderEditor::_paste_pressed);
+ ClassDB::bind_method(_MD("_delete_confirm_pressed"),&ResourcePreloaderEditor::_delete_confirm_pressed);
+ ClassDB::bind_method(_MD("_files_load_request"),&ResourcePreloaderEditor::_files_load_request);
+ ClassDB::bind_method(_MD("_update_library"),&ResourcePreloaderEditor::_update_library);
- ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &ResourcePreloaderEditor::get_drag_data_fw);
- ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &ResourcePreloaderEditor::can_drop_data_fw);
- ObjectTypeDB::bind_method(_MD("drop_data_fw"), &ResourcePreloaderEditor::drop_data_fw);
+ ClassDB::bind_method(_MD("get_drag_data_fw"), &ResourcePreloaderEditor::get_drag_data_fw);
+ ClassDB::bind_method(_MD("can_drop_data_fw"), &ResourcePreloaderEditor::can_drop_data_fw);
+ ClassDB::bind_method(_MD("drop_data_fw"), &ResourcePreloaderEditor::drop_data_fw);
}
@@ -462,7 +461,7 @@ void ResourcePreloaderEditorPlugin::edit(Object *p_object) {
bool ResourcePreloaderEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("ResourcePreloader");
+ return p_object->is_class("ResourcePreloader");
}
void ResourcePreloaderEditorPlugin::make_visible(bool p_visible) {
@@ -471,14 +470,14 @@ void ResourcePreloaderEditorPlugin::make_visible(bool p_visible) {
//preloader_editor->show();
button->show();
editor->make_bottom_panel_item_visible(preloader_editor);
-// preloader_editor->set_process(true);
+ //preloader_editor->set_process(true);
} else {
- if (preloader_editor->is_visible())
+ if (preloader_editor->is_visible_in_tree())
editor->hide_bottom_panel();
button->hide();
//preloader_editor->hide();
-// preloader_editor->set_process(false);
+ //preloader_editor->set_process(false);
}
}
@@ -492,8 +491,8 @@ ResourcePreloaderEditorPlugin::ResourcePreloaderEditorPlugin(EditorNode *p_node)
button=editor->add_bottom_panel_item("ResourcePreloader",preloader_editor);
button->hide();
-// preloader_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END);
-// preloader_editor->set_margin( MARGIN_TOP, 120 );
+ //preloader_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END);
+ //preloader_editor->set_margin( MARGIN_TOP, 120 );
diff --git a/tools/editor/plugins/resource_preloader_editor_plugin.h b/tools/editor/plugins/resource_preloader_editor_plugin.h
index 4f0cb4be37..6990301ded 100644
--- a/tools/editor/plugins/resource_preloader_editor_plugin.h
+++ b/tools/editor/plugins/resource_preloader_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,7 +40,7 @@
class ResourcePreloaderEditor : public PanelContainer {
- OBJ_TYPE(ResourcePreloaderEditor, PanelContainer );
+ GDCLASS(ResourcePreloaderEditor, PanelContainer );
Button *load;
Button *_delete;
@@ -74,7 +74,7 @@ class ResourcePreloaderEditor : public PanelContainer {
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
static void _bind_methods();
public:
@@ -86,7 +86,7 @@ public:
class ResourcePreloaderEditorPlugin : public EditorPlugin {
- OBJ_TYPE( ResourcePreloaderEditorPlugin, EditorPlugin );
+ GDCLASS( ResourcePreloaderEditorPlugin, EditorPlugin );
ResourcePreloaderEditor *preloader_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/rich_text_editor_plugin.cpp b/tools/editor/plugins/rich_text_editor_plugin.cpp
index bec48ca293..8629d6ec8f 100644
--- a/tools/editor/plugins/rich_text_editor_plugin.cpp
+++ b/tools/editor/plugins/rich_text_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "rich_text_editor_plugin.h"
+
#include "os/file_access.h"
#include "canvas_item_editor_plugin.h"
@@ -89,8 +90,8 @@ void RichTextEditor::_menu_option(int p_option) {
void RichTextEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_menu_option"),&RichTextEditor::_menu_option);
- ObjectTypeDB::bind_method(_MD("_file_selected"),&RichTextEditor::_file_selected);
+ ClassDB::bind_method(_MD("_menu_option"),&RichTextEditor::_menu_option);
+ ClassDB::bind_method(_MD("_file_selected"),&RichTextEditor::_file_selected);
}
@@ -110,7 +111,7 @@ RichTextEditor::RichTextEditor() {
options->get_popup()->add_item(TTR("Parse BBCode"),PARSE_BBCODE);
options->get_popup()->add_item(TTR("Clear"),CLEAR);
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
file_dialog = memnew( EditorFileDialog );
add_child(file_dialog);
file_dialog->add_filter("*.txt");
@@ -126,7 +127,7 @@ void RichTextEditorPlugin::edit(Object *p_object) {
bool RichTextEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("RichTextLabel");
+ return p_object->is_class("RichTextLabel");
}
void RichTextEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/rich_text_editor_plugin.h b/tools/editor/plugins/rich_text_editor_plugin.h
index ae1d04be01..cf97d7517c 100644
--- a/tools/editor/plugins/rich_text_editor_plugin.h
+++ b/tools/editor/plugins/rich_text_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,7 +40,7 @@
class RichTextEditor : public Control {
- OBJ_TYPE(RichTextEditor, Control );
+ GDCLASS(RichTextEditor, Control );
friend class RichTextEditorPlugin;
@@ -70,7 +70,7 @@ public:
class RichTextEditorPlugin : public EditorPlugin {
- OBJ_TYPE( RichTextEditorPlugin, EditorPlugin );
+ GDCLASS( RichTextEditorPlugin, EditorPlugin );
RichTextEditor *rich_text_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/sample_editor_plugin.cpp b/tools/editor/plugins/sample_editor_plugin.cpp
index 7965fa54ae..c333ba017f 100644
--- a/tools/editor/plugins/sample_editor_plugin.cpp
+++ b/tools/editor/plugins/sample_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,6 +28,7 @@
/*************************************************************************/
#include "sample_editor_plugin.h"
+#if 0
#include "io/resource_loader.h"
#include "globals.h"
#include "tools/editor/editor_settings.h"
@@ -35,7 +36,7 @@
-void SampleEditor::_input_event(InputEvent p_event) {
+void SampleEditor::_gui_input(InputEvent p_event) {
}
@@ -77,15 +78,15 @@ void SampleEditor::_stop_pressed() {
void SampleEditor::generate_preview_texture(const Ref<Sample>& p_sample,Ref<ImageTexture> &p_texture) {
- DVector<uint8_t> data = p_sample->get_data();
+ PoolVector<uint8_t> data = p_sample->get_data();
- DVector<uint8_t> img;
+ PoolVector<uint8_t> img;
int w = p_texture->get_width();
int h = p_texture->get_height();
img.resize(w*h*3);
- DVector<uint8_t>::Write imgdata = img.write();
+ PoolVector<uint8_t>::Write imgdata = img.write();
uint8_t * imgw = imgdata.ptr();
- DVector<uint8_t>::Read sampledata = data.read();
+ PoolVector<uint8_t>::Read sampledata = data.read();
const uint8_t *sdata=sampledata.ptr();
bool stereo = p_sample->is_stereo();
@@ -308,10 +309,10 @@ void SampleEditor::generate_preview_texture(const Ref<Sample>& p_sample,Ref<Imag
}
}
- imgdata = DVector<uint8_t>::Write();
+ imgdata = PoolVector<uint8_t>::Write();
- p_texture->set_data(Image(w,h,0,Image::FORMAT_RGB,img));
+ p_texture->set_data(Image(w,h,0,Image::FORMAT_RGB8,img));
}
@@ -348,9 +349,9 @@ void SampleEditor::edit(Ref<Sample> p_sample) {
void SampleEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_input_event"),&SampleEditor::_input_event);
- ObjectTypeDB::bind_method(_MD("_play_pressed"),&SampleEditor::_play_pressed);
- ObjectTypeDB::bind_method(_MD("_stop_pressed"),&SampleEditor::_stop_pressed);
+ ClassDB::bind_method(_MD("_gui_input"),&SampleEditor::_gui_input);
+ ClassDB::bind_method(_MD("_play_pressed"),&SampleEditor::_play_pressed);
+ ClassDB::bind_method(_MD("_stop_pressed"),&SampleEditor::_stop_pressed);
}
@@ -361,7 +362,7 @@ SampleEditor::SampleEditor() {
add_style_override("panel", get_stylebox("panel","Panel"));
library = Ref<SampleLibrary>(memnew(SampleLibrary));
player->set_sample_library(library);
- sample_texframe = memnew( TextureFrame );
+ sample_texframe = memnew( TextureRect );
add_child(sample_texframe);
sample_texframe->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN,5);
sample_texframe->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,5);
@@ -392,7 +393,7 @@ SampleEditor::SampleEditor() {
add_child(stop);
peakdisplay=Ref<ImageTexture>( memnew( ImageTexture) );
- peakdisplay->create( EDITOR_DEF("audio/sample_editor_preview_width",512),EDITOR_DEF("audio/sample_editor_preview_height",128),Image::FORMAT_RGB);
+ peakdisplay->create( EDITOR_DEF("editors/sample_editor/preview_width",512),EDITOR_DEF("editors/sample_editor/preview_height",128),Image::FORMAT_RGB8);
sample_texframe->set_expand(true);
sample_texframe->set_texture(peakdisplay);
@@ -415,18 +416,18 @@ void SampleEditorPlugin::edit(Object *p_object) {
bool SampleEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("Sample");
+ return p_object->is_class("Sample");
}
void SampleEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
sample_editor->show();
-// sample_editor->set_process(true);
+ //sample_editor->set_process(true);
} else {
sample_editor->hide();
-// sample_editor->set_process(false);
+ //sample_editor->set_process(false);
}
}
@@ -447,4 +448,4 @@ SampleEditorPlugin::~SampleEditorPlugin()
{
}
-
+#endif
diff --git a/tools/editor/plugins/sample_editor_plugin.h b/tools/editor/plugins/sample_editor_plugin.h
index 22dc75b53b..651cd14a84 100644
--- a/tools/editor/plugins/sample_editor_plugin.h
+++ b/tools/editor/plugins/sample_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,7 +29,7 @@
#ifndef SAMPLE_EDITOR_PLUGIN_H
#define SAMPLE_EDITOR_PLUGIN_H
-
+#if 0
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
#include "scene/audio/sample_player.h"
@@ -39,7 +39,7 @@
class SampleEditor : public Panel {
- OBJ_TYPE(SampleEditor, Panel );
+ GDCLASS(SampleEditor, Panel );
SamplePlayer *player;
@@ -47,7 +47,7 @@ class SampleEditor : public Panel {
Ref<ImageTexture> peakdisplay;
Ref<Sample> sample;
Ref<SampleLibrary> library;
- TextureFrame *sample_texframe;
+ TextureRect *sample_texframe;
Button *stop;
Button *play;
@@ -57,7 +57,7 @@ class SampleEditor : public Panel {
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
static void _bind_methods();
public:
@@ -69,7 +69,7 @@ public:
class SampleEditorPlugin : public EditorPlugin {
- OBJ_TYPE( SampleEditorPlugin, EditorPlugin );
+ GDCLASS( SampleEditorPlugin, EditorPlugin );
SampleEditor *sample_editor;
EditorNode *editor;
@@ -87,4 +87,6 @@ public:
};
+#endif
+
#endif // SAMPLE_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/sample_library_editor_plugin.cpp b/tools/editor/plugins/sample_library_editor_plugin.cpp
index 2a6940332c..116c5d11b6 100644
--- a/tools/editor/plugins/sample_library_editor_plugin.cpp
+++ b/tools/editor/plugins/sample_library_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,6 +26,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
+#if 0
#include "sample_library_editor_plugin.h"
#include "io/resource_loader.h"
@@ -35,7 +37,7 @@
#include "sample_editor_plugin.h"
-void SampleLibraryEditor::_input_event(InputEvent p_event) {
+void SampleLibraryEditor::_gui_input(InputEvent p_event) {
}
@@ -58,7 +60,7 @@ void SampleLibraryEditor::_notification(int p_what) {
if (p_what==NOTIFICATION_READY) {
-// NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true);
+ //NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true);
}
if (p_what==NOTIFICATION_DRAW) {
@@ -66,7 +68,7 @@ void SampleLibraryEditor::_notification(int p_what) {
}
}
-void SampleLibraryEditor::_file_load_request(const DVector<String>& p_path) {
+void SampleLibraryEditor::_file_load_request(const PoolVector<String>& p_path) {
for(int i=0;i<p_path.size();i++) {
@@ -81,7 +83,7 @@ void SampleLibraryEditor::_file_load_request(const DVector<String>& p_path) {
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
}
- String basename = path.get_file().basename();
+ String basename = path.get_file().get_basename();
String name=basename;
int counter=0;
while(sample_library->has_sample(name)) {
@@ -236,7 +238,7 @@ void SampleLibraryEditor::_update_library() {
// Preview/edit
Ref<ImageTexture> preview( memnew( ImageTexture ));
- preview->create(128,16,Image::FORMAT_RGB);
+ preview->create(128,16,Image::FORMAT_RGB8);
SampleEditor::generate_preview_texture(smp,preview);
ti->set_cell_mode(1,TreeItem::CELL_MODE_ICON);
ti->set_selectable(1,false);
@@ -376,7 +378,7 @@ void SampleLibraryEditor::drop_data_fw(const Point2& p_point,const Variant& p_da
if (sample->get_name()!="") {
basename=sample->get_name();
} else if (sample->get_path().is_resource_file()) {
- basename = sample->get_path().basename();
+ basename = sample->get_path().get_basename();
} else {
basename="Sample";
}
@@ -400,7 +402,7 @@ void SampleLibraryEditor::drop_data_fw(const Point2& p_point,const Variant& p_da
if (String(d["type"])=="files") {
- DVector<String> files = d["files"];
+ PoolVector<String> files = d["files"];
_file_load_request(files);
@@ -411,17 +413,17 @@ void SampleLibraryEditor::drop_data_fw(const Point2& p_point,const Variant& p_da
void SampleLibraryEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_input_event"),&SampleLibraryEditor::_input_event);
- ObjectTypeDB::bind_method(_MD("_load_pressed"),&SampleLibraryEditor::_load_pressed);
- ObjectTypeDB::bind_method(_MD("_item_edited"),&SampleLibraryEditor::_item_edited);
- ObjectTypeDB::bind_method(_MD("_delete_pressed"),&SampleLibraryEditor::_delete_pressed);
- ObjectTypeDB::bind_method(_MD("_file_load_request"),&SampleLibraryEditor::_file_load_request);
- ObjectTypeDB::bind_method(_MD("_update_library"),&SampleLibraryEditor::_update_library);
- ObjectTypeDB::bind_method(_MD("_button_pressed"),&SampleLibraryEditor::_button_pressed);
+ ClassDB::bind_method(_MD("_gui_input"),&SampleLibraryEditor::_gui_input);
+ ClassDB::bind_method(_MD("_load_pressed"),&SampleLibraryEditor::_load_pressed);
+ ClassDB::bind_method(_MD("_item_edited"),&SampleLibraryEditor::_item_edited);
+ ClassDB::bind_method(_MD("_delete_pressed"),&SampleLibraryEditor::_delete_pressed);
+ ClassDB::bind_method(_MD("_file_load_request"),&SampleLibraryEditor::_file_load_request);
+ ClassDB::bind_method(_MD("_update_library"),&SampleLibraryEditor::_update_library);
+ ClassDB::bind_method(_MD("_button_pressed"),&SampleLibraryEditor::_button_pressed);
- ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &SampleLibraryEditor::get_drag_data_fw);
- ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &SampleLibraryEditor::can_drop_data_fw);
- ObjectTypeDB::bind_method(_MD("drop_data_fw"), &SampleLibraryEditor::drop_data_fw);
+ ClassDB::bind_method(_MD("get_drag_data_fw"), &SampleLibraryEditor::get_drag_data_fw);
+ ClassDB::bind_method(_MD("can_drop_data_fw"), &SampleLibraryEditor::can_drop_data_fw);
+ ClassDB::bind_method(_MD("drop_data_fw"), &SampleLibraryEditor::drop_data_fw);
}
@@ -497,7 +499,7 @@ void SampleLibraryEditorPlugin::edit(Object *p_object) {
bool SampleLibraryEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("SampleLibrary");
+ return p_object->is_class("SampleLibrary");
}
void SampleLibraryEditorPlugin::make_visible(bool p_visible) {
@@ -506,14 +508,14 @@ void SampleLibraryEditorPlugin::make_visible(bool p_visible) {
//sample_library_editor->show();
button->show();
editor->make_bottom_panel_item_visible(sample_library_editor);
-// sample_library_editor->set_process(true);
+ //sample_library_editor->set_process(true);
} else {
- if (sample_library_editor->is_visible())
+ if (sample_library_editor->is_visible_in_tree())
editor->hide_bottom_panel();
button->hide();
-// sample_library_editor->set_process(false);
+ //sample_library_editor->set_process(false);
}
}
@@ -529,8 +531,8 @@ SampleLibraryEditorPlugin::SampleLibraryEditorPlugin(EditorNode *p_node) {
button->hide();
//sample_library_editor->set_area_as_parent_rect();
-// sample_library_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END);
-// sample_library_editor->set_margin( MARGIN_TOP, 120 );
+ //sample_library_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END);
+ //sample_library_editor->set_margin( MARGIN_TOP, 120 );
//sample_library_editor->hide();
@@ -541,3 +543,4 @@ SampleLibraryEditorPlugin::SampleLibraryEditorPlugin(EditorNode *p_node) {
SampleLibraryEditorPlugin::~SampleLibraryEditorPlugin()
{
}
+#endif
diff --git a/tools/editor/plugins/sample_library_editor_plugin.h b/tools/editor/plugins/sample_library_editor_plugin.h
index f9fb184b7c..35028df859 100644
--- a/tools/editor/plugins/sample_library_editor_plugin.h
+++ b/tools/editor/plugins/sample_library_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -30,7 +30,7 @@
#define SAMPLE_LIBRARY_EDITOR_PLUGIN_H
-
+#if 0
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
#include "scene/audio/sample_player.h"
@@ -42,7 +42,7 @@
class SampleLibraryEditor : public Panel {
- OBJ_TYPE(SampleLibraryEditor, Panel );
+ GDCLASS(SampleLibraryEditor, Panel );
@@ -59,7 +59,7 @@ class SampleLibraryEditor : public Panel {
void _load_pressed();
- void _file_load_request(const DVector<String>& p_path);
+ void _file_load_request(const PoolVector<String>& p_path);
void _delete_pressed();
void _update_library();
void _item_edited();
@@ -74,7 +74,7 @@ class SampleLibraryEditor : public Panel {
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
static void _bind_methods();
public:
@@ -85,7 +85,7 @@ public:
class SampleLibraryEditorPlugin : public EditorPlugin {
- OBJ_TYPE( SampleLibraryEditorPlugin, EditorPlugin );
+ GDCLASS( SampleLibraryEditorPlugin, EditorPlugin );
SampleLibraryEditor *sample_library_editor;
EditorNode *editor;
@@ -104,4 +104,5 @@ public:
};
+#endif
#endif // SAMPLE_LIBRARY_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/sample_player_editor_plugin.cpp b/tools/editor/plugins/sample_player_editor_plugin.cpp
index 3085ad87d8..dd6450bfe7 100644
--- a/tools/editor/plugins/sample_player_editor_plugin.cpp
+++ b/tools/editor/plugins/sample_player_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,7 +26,11 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+
+#if 0
#include "sample_player_editor_plugin.h"
+
+
#include "scene/resources/sample_library.h"
@@ -50,8 +54,8 @@ void SamplePlayerEditor::_node_removed(Node *p_node) {
void SamplePlayerEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_play"),&SamplePlayerEditor::_play);
- ObjectTypeDB::bind_method(_MD("_stop"),&SamplePlayerEditor::_stop);
+ ClassDB::bind_method(_MD("_play"),&SamplePlayerEditor::_play);
+ ClassDB::bind_method(_MD("_stop"),&SamplePlayerEditor::_stop);
}
@@ -89,7 +93,7 @@ void SamplePlayerEditor::_update_sample_library() {
Ref<SampleLibrary> sl = node->call("get_sample_library");
if (sl.is_null()) {
samples->add_item("<NO SAMPLE LIBRARY>");
- return; //no sample library;;
+ return; //no sample library;
}
List<StringName> samplenames;
@@ -153,7 +157,7 @@ void SamplePlayerEditorPlugin::edit(Object *p_object) {
bool SamplePlayerEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("SamplePlayer2D") || p_object->is_type("SamplePlayer") || p_object->is_type("SpatialSamplePlayer");
+ return p_object->is_class("SamplePlayer2D") || p_object->is_class("SamplePlayer") || p_object->is_class("SpatialSamplePlayer");
}
void SamplePlayerEditorPlugin::make_visible(bool p_visible) {
@@ -196,3 +200,4 @@ SamplePlayerEditorPlugin::~SamplePlayerEditorPlugin()
}
+#endif
diff --git a/tools/editor/plugins/sample_player_editor_plugin.h b/tools/editor/plugins/sample_player_editor_plugin.h
index 013b042487..ba1684497c 100644
--- a/tools/editor/plugins/sample_player_editor_plugin.h
+++ b/tools/editor/plugins/sample_player_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,6 +29,8 @@
#ifndef SAMPLE_PLAYER_EDITOR_PLUGIN_H
#define SAMPLE_PLAYER_EDITOR_PLUGIN_H
+#if 0
+
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
#include "scene/3d/spatial_sample_player.h"
@@ -41,7 +43,7 @@
class SamplePlayerEditor : public Control {
- OBJ_TYPE(SamplePlayerEditor, Control );
+ GDCLASS(SamplePlayerEditor, Control );
Panel *panel;
Button * play;
@@ -66,7 +68,7 @@ public:
class SamplePlayerEditorPlugin : public EditorPlugin {
- OBJ_TYPE( SamplePlayerEditorPlugin, EditorPlugin );
+ GDCLASS( SamplePlayerEditorPlugin, EditorPlugin );
SamplePlayerEditor *sample_player_editor;
EditorNode *editor;
@@ -84,4 +86,5 @@ public:
};
+#endif
#endif // SAMPLE_PLAYER_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp
index e7170a23f3..4738b348f4 100644
--- a/tools/editor/plugins/script_editor_plugin.cpp
+++ b/tools/editor/plugins/script_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "script_editor_plugin.h"
+
#include "tools/editor/editor_settings.h"
#include "io/resource_loader.h"
#include "io/resource_saver.h"
@@ -183,7 +184,7 @@ void ScriptEditorQuickOpen::_sbox_input(const InputEvent& p_ie) {
p_ie.key.scancode == KEY_PAGEUP ||
p_ie.key.scancode == KEY_PAGEDOWN ) ) {
- search_options->call("_input_event",p_ie);
+ search_options->call("_gui_input",p_ie);
search_box->accept_event();
}
@@ -240,9 +241,9 @@ void ScriptEditorQuickOpen::_notification(int p_what) {
void ScriptEditorQuickOpen::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_text_changed"),&ScriptEditorQuickOpen::_text_changed);
- ObjectTypeDB::bind_method(_MD("_confirmed"),&ScriptEditorQuickOpen::_confirmed);
- ObjectTypeDB::bind_method(_MD("_sbox_input"),&ScriptEditorQuickOpen::_sbox_input);
+ ClassDB::bind_method(_MD("_text_changed"),&ScriptEditorQuickOpen::_text_changed);
+ ClassDB::bind_method(_MD("_confirmed"),&ScriptEditorQuickOpen::_confirmed);
+ ClassDB::bind_method(_MD("_sbox_input"),&ScriptEditorQuickOpen::_sbox_input);
ADD_SIGNAL(MethodInfo("goto_line",PropertyInfo(Variant::INT,"line")));
@@ -254,11 +255,11 @@ ScriptEditorQuickOpen::ScriptEditorQuickOpen() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
search_box = memnew( LineEdit );
vbc->add_margin_child(TTR("Search:"),search_box);
search_box->connect("text_changed",this,"_text_changed");
- search_box->connect("input_event",this,"_sbox_input");
+ search_box->connect("gui_input",this,"_sbox_input");
search_options = memnew( Tree );
vbc->add_margin_child(TTR("Matches:"),search_options,true);
get_ok()->set_text(TTR("Open"));
@@ -278,7 +279,7 @@ ScriptEditor *ScriptEditor::script_editor=NULL;
String ScriptEditor::_get_debug_tooltip(const String&p_text,Node *_se) {
-// ScriptEditorBase *se=_se->cast_to<ScriptEditorBase>();
+ //ScriptEditorBase *se=_se->cast_to<ScriptEditorBase>();
String val = debugger->get_var_value(p_text);
if (val!=String()) {
@@ -311,7 +312,7 @@ void ScriptEditor::_breaked(bool p_breaked,bool p_can_debug) {
void ScriptEditor::_show_debugger(bool p_show) {
-// debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW), p_show);
+ //debug_menu->get_popup()->set_item_checked( debug_menu->get_popup()->get_item_index(DEBUG_SHOW), p_show);
}
void ScriptEditor::_script_created(Ref<Script> p_script) {
@@ -426,14 +427,14 @@ void ScriptEditor::_go_to_tab(int p_idx) {
script_name_label->set_text(c->cast_to<ScriptEditorBase>()->get_name());
script_icon->set_texture(c->cast_to<ScriptEditorBase>()->get_icon());
- if (is_visible())
+ if (is_visible_in_tree())
c->cast_to<ScriptEditorBase>()->ensure_focus();
}
if (c->cast_to<EditorHelp>()) {
- script_name_label->set_text(c->cast_to<EditorHelp>()->get_class_name());
+ script_name_label->set_text(c->cast_to<EditorHelp>()->get_class());
script_icon->set_texture(get_icon("Help","EditorIcons"));
- if (is_visible())
+ if (is_visible_in_tree())
c->cast_to<EditorHelp>()->set_focused();
}
@@ -445,7 +446,7 @@ void ScriptEditor::_go_to_tab(int p_idx) {
_update_selected_editor_menu();
}
-void ScriptEditor::_close_tab(int p_idx) {
+void ScriptEditor::_close_tab(int p_idx, bool p_save) {
int selected = p_idx;
if (selected<0 || selected>=tab_container->get_child_count())
@@ -454,7 +455,9 @@ void ScriptEditor::_close_tab(int p_idx) {
Node *tselected = tab_container->get_child(selected);
ScriptEditorBase *current = tab_container->get_child(selected)->cast_to<ScriptEditorBase>();
if (current) {
- apply_scripts();
+ if (p_save) {
+ apply_scripts();
+ }
if (current->get_edit_menu()) {
memdelete(current->get_edit_menu());
}
@@ -504,6 +507,11 @@ void ScriptEditor::_close_current_tab() {
}
+void ScriptEditor::_close_discard_current_tab(const String& p_str) {
+ _close_tab(tab_container->get_current_tab(), false);
+ erase_tab_confirm->hide();
+}
+
void ScriptEditor::_close_docs_tab() {
int child_count = tab_container->get_child_count();
@@ -605,7 +613,7 @@ void ScriptEditor::_reload_scripts(){
}
- Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_type(),true);
+ Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_class(),true);
ERR_CONTINUE(!rel_script.is_valid());
script->set_source_code( rel_script->get_source_code() );
script->set_last_modified_time( rel_script->get_last_modified_time() );
@@ -672,7 +680,7 @@ bool ScriptEditor::_test_script_times_on_disk(Ref<Script> p_for_script) {
bool need_ask=false;
bool need_reload=false;
- bool use_autoreload=bool(EDITOR_DEF("text_editor/auto_reload_scripts_on_external_change",false));
+ bool use_autoreload=bool(EDITOR_DEF("text_editor/files/auto_reload_scripts_on_external_change",false));
@@ -783,7 +791,7 @@ void ScriptEditor::_menu_option(int p_option) {
file_dialog_option = FILE_SAVE_THEME_AS;
file_dialog->clear_filters();
file_dialog->add_filter("*.tet");
- file_dialog->set_current_path(EditorSettings::get_singleton()->get_settings_path() + "/text_editor_themes/" + EditorSettings::get_singleton()->get("text_editor/color_theme"));
+ file_dialog->set_current_path(EditorSettings::get_singleton()->get_settings_path() + "/text_editor_themes/" + EditorSettings::get_singleton()->get("text_editor/theme/color_theme"));
file_dialog->popup_centered_ratio();
file_dialog->set_title(TTR("Save Theme As.."));
} break;
@@ -798,7 +806,7 @@ void ScriptEditor::_menu_option(int p_option) {
if (tab_container->get_tab_count()>0) {
EditorHelp *eh = tab_container->get_child( tab_container->get_current_tab() )->cast_to<EditorHelp>();
if (eh) {
- current=eh->get_class_name();
+ current=eh->get_class();
}
}
@@ -991,7 +999,7 @@ void ScriptEditor::_notification(int p_what) {
script_split->connect("dragged",this,"_script_split_dragged");
autosave_timer->connect("timeout",this,"_autosave_scripts");
{
- float autosave_time = EditorSettings::get_singleton()->get("text_editor/autosave_interval_secs");
+ float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs");
if (autosave_time>0) {
autosave_timer->set_wait_time(autosave_time);
autosave_timer->start();
@@ -1104,7 +1112,7 @@ static const Node * _find_node_with_script(const Node* p_node, const RefPtr & p_
Dictionary ScriptEditor::get_state() const {
-// apply_scripts();
+ //apply_scripts();
Dictionary state;
#if 0
@@ -1281,7 +1289,7 @@ void ScriptEditor::ensure_select_current() {
Ref<Script> script = se->get_edited_script();
- if (!grab_focus_block && is_visible())
+ if (!grab_focus_block && is_visible_in_tree())
se->ensure_focus();
@@ -1343,12 +1351,12 @@ struct _ScriptEditorItemData {
void ScriptEditor::_update_script_colors() {
- bool script_temperature_enabled = EditorSettings::get_singleton()->get("text_editor/script_temperature_enabled");
- bool highlight_current = EditorSettings::get_singleton()->get("text_editor/highlight_current_script");
+ bool script_temperature_enabled = EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_enabled");
+ bool highlight_current = EditorSettings::get_singleton()->get("text_editor/open_scripts/highlight_current_script");
- int hist_size = EditorSettings::get_singleton()->get("text_editor/script_temperature_history_size");
- Color hot_color=EditorSettings::get_singleton()->get("text_editor/script_temperature_hot_color");
- Color cold_color=EditorSettings::get_singleton()->get("text_editor/script_temperature_cold_color");
+ int hist_size = EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_history_size");
+ Color hot_color=EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_hot_color");
+ Color cold_color=EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_cold_color");
for(int i=0;i<script_list->get_item_count();i++) {
@@ -1361,7 +1369,7 @@ void ScriptEditor::_update_script_colors() {
bool current = tab_container->get_current_tab() == c;
if (current && highlight_current) {
- script_list->set_item_custom_bg_color(i, EditorSettings::get_singleton()->get("text_editor/current_script_background_color"));
+ script_list->set_item_custom_bg_color(i, EditorSettings::get_singleton()->get("text_editor/open_scripts/current_script_background_color"));
} else if (script_temperature_enabled) {
@@ -1395,7 +1403,7 @@ void ScriptEditor::_update_script_names() {
}
script_list->clear();
- bool split_script_help = EditorSettings::get_singleton()->get("text_editor/group_help_pages");
+ bool split_script_help = EditorSettings::get_singleton()->get("text_editor/open_scripts/group_help_pages");
Vector<_ScriptEditorItemData> sedata;
@@ -1423,7 +1431,7 @@ void ScriptEditor::_update_script_names() {
EditorHelp *eh = tab_container->get_child(i)->cast_to<EditorHelp>();
if (eh) {
- String name = eh->get_class_name();
+ String name = eh->get_class();
Ref<Texture> icon = get_icon("Help","EditorIcons");
String tooltip = name+" Class Reference";
@@ -1481,12 +1489,12 @@ void ScriptEditor::edit(const Ref<Script>& p_script, bool p_grab_focus) {
// see if already has it
- bool open_dominant = EditorSettings::get_singleton()->get("text_editor/open_dominant_script_on_scene_change");
+ bool open_dominant = EditorSettings::get_singleton()->get("text_editor/files/open_dominant_script_on_scene_change");
- if (p_script->get_path().is_resource_file() && bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor"))) {
+ if (p_script->get_path().is_resource_file() && bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor"))) {
- String path = EditorSettings::get_singleton()->get("external_editor/exec_path");
- String flags = EditorSettings::get_singleton()->get("external_editor/exec_flags");
+ String path = EditorSettings::get_singleton()->get("text_editor/external/exec_path");
+ String flags = EditorSettings::get_singleton()->get("text_editor/external/exec_flags");
List<String> args;
flags=flags.strip_edges();
if (flags!=String()) {
@@ -1495,7 +1503,7 @@ void ScriptEditor::edit(const Ref<Script>& p_script, bool p_grab_focus) {
args.push_back(flagss[i]);
}
- args.push_back(Globals::get_singleton()->globalize_path(p_script->get_path()));
+ args.push_back(GlobalConfig::get_singleton()->globalize_path(p_script->get_path()));
Error err = OS::get_singleton()->execute(path,args,false);
if (err==OK)
return;
@@ -1516,7 +1524,7 @@ void ScriptEditor::edit(const Ref<Script>& p_script, bool p_grab_focus) {
_go_to_tab(i);
script_list->select( script_list->find_metadata(i) );
}
- if (is_visible())
+ if (is_visible_in_tree())
se->ensure_focus();
}
return;
@@ -1654,7 +1662,7 @@ void ScriptEditor::_editor_stop() {
}
-void ScriptEditor::_add_callback(Object *p_obj, const String& p_function, const StringArray& p_args) {
+void ScriptEditor::_add_callback(Object *p_obj, const String& p_function, const PoolStringArray& p_args) {
//print_line("add callback! hohoho"); kinda sad to remove this
ERR_FAIL_COND(!p_obj);
@@ -1694,8 +1702,8 @@ void ScriptEditor::_save_layout() {
void ScriptEditor::_editor_settings_changed() {
- trim_trailing_whitespace_on_save = EditorSettings::get_singleton()->get("text_editor/trim_trailing_whitespace_on_save");
- float autosave_time = EditorSettings::get_singleton()->get("text_editor/autosave_interval_secs");
+ trim_trailing_whitespace_on_save = EditorSettings::get_singleton()->get("text_editor/files/trim_trailing_whitespace_on_save");
+ float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs");
if (autosave_time>0) {
autosave_timer->set_wait_time(autosave_time);
autosave_timer->start();
@@ -1704,9 +1712,9 @@ void ScriptEditor::_editor_settings_changed() {
}
if (current_theme == "") {
- current_theme = EditorSettings::get_singleton()->get("text_editor/color_theme");
- } else if (current_theme != EditorSettings::get_singleton()->get("text_editor/color_theme")) {
- current_theme = EditorSettings::get_singleton()->get("text_editor/color_theme");
+ current_theme = EditorSettings::get_singleton()->get("text_editor/theme/color_theme");
+ } else if (current_theme != EditorSettings::get_singleton()->get("text_editor/theme/color_theme")) {
+ current_theme = EditorSettings::get_singleton()->get("text_editor/theme/color_theme");
EditorSettings::get_singleton()->load_text_editor_theme();
}
@@ -1720,7 +1728,7 @@ void ScriptEditor::_editor_settings_changed() {
}
_update_script_colors();
- ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/auto_reload_and_parse_scripts_on_save",true));
+ ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/files/auto_reload_and_parse_scripts_on_save",true));
}
@@ -1744,7 +1752,7 @@ void ScriptEditor::_script_split_dragged(float) {
}
void ScriptEditor::_unhandled_input(const InputEvent& p_event) {
- if (p_event.key.pressed || !is_visible()) return;
+ if (p_event.key.pressed || !is_visible_in_tree()) return;
if (ED_IS_SHORTCUT("script_editor/next_script", p_event)) {
int next_tab = script_list->get_current() + 1;
next_tab %= script_list->get_item_count();
@@ -1761,7 +1769,7 @@ void ScriptEditor::_unhandled_input(const InputEvent& p_event) {
void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) {
- if (!bool(EDITOR_DEF("text_editor/restore_scripts_on_load",true))) {
+ if (!bool(EDITOR_DEF("text_editor/files/restore_scripts_on_load",true))) {
return;
}
@@ -1827,7 +1835,7 @@ void ScriptEditor::get_window_layout(Ref<ConfigFile> p_layout) {
if (eh) {
- helps.push_back(eh->get_class_name());
+ helps.push_back(eh->get_class());
}
@@ -1841,12 +1849,14 @@ void ScriptEditor::get_window_layout(Ref<ConfigFile> p_layout) {
void ScriptEditor::_help_class_open(const String& p_class) {
+ if (p_class=="")
+ return;
for(int i=0;i<tab_container->get_child_count();i++) {
EditorHelp *eh = tab_container->get_child(i)->cast_to<EditorHelp>();
- if (eh && eh->get_class_name()==p_class) {
+ if (eh && eh->get_class()==p_class) {
_go_to_tab(i);
_update_script_names();
@@ -1874,7 +1884,7 @@ void ScriptEditor::_help_class_goto(const String& p_desc) {
EditorHelp *eh = tab_container->get_child(i)->cast_to<EditorHelp>();
- if (eh && eh->get_class_name()==cname) {
+ if (eh && eh->get_class()==cname) {
_go_to_tab(i);
eh->go_to_help(p_desc);
@@ -1972,9 +1982,9 @@ void ScriptEditor::_history_back(){
}
void ScriptEditor::set_scene_root_script( Ref<Script> p_script ) {
- bool open_dominant = EditorSettings::get_singleton()->get("text_editor/open_dominant_script_on_scene_change");
+ bool open_dominant = EditorSettings::get_singleton()->get("text_editor/files/open_dominant_script_on_scene_change");
- if (bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor")))
+ if (bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor")))
return;
if (open_dominant && p_script.is_valid() && _can_open_in_editor(p_script.ptr())) {
@@ -2027,43 +2037,44 @@ void ScriptEditor::register_create_script_editor_function(CreateScriptEditorFunc
void ScriptEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_file_dialog_action",&ScriptEditor::_file_dialog_action);
- ObjectTypeDB::bind_method("_tab_changed",&ScriptEditor::_tab_changed);
- ObjectTypeDB::bind_method("_menu_option",&ScriptEditor::_menu_option);
- ObjectTypeDB::bind_method("_close_current_tab",&ScriptEditor::_close_current_tab);
- ObjectTypeDB::bind_method("_close_docs_tab", &ScriptEditor::_close_docs_tab);
- ObjectTypeDB::bind_method("_close_all_tabs", &ScriptEditor::_close_all_tabs);
- ObjectTypeDB::bind_method("_editor_play",&ScriptEditor::_editor_play);
- ObjectTypeDB::bind_method("_editor_pause",&ScriptEditor::_editor_pause);
- ObjectTypeDB::bind_method("_editor_stop",&ScriptEditor::_editor_stop);
- ObjectTypeDB::bind_method("_add_callback",&ScriptEditor::_add_callback);
- ObjectTypeDB::bind_method("_reload_scripts",&ScriptEditor::_reload_scripts);
- ObjectTypeDB::bind_method("_resave_scripts",&ScriptEditor::_resave_scripts);
- ObjectTypeDB::bind_method("_res_saved_callback",&ScriptEditor::_res_saved_callback);
- ObjectTypeDB::bind_method("_goto_script_line",&ScriptEditor::_goto_script_line);
- ObjectTypeDB::bind_method("_goto_script_line2",&ScriptEditor::_goto_script_line2);
- ObjectTypeDB::bind_method("_help_search",&ScriptEditor::_help_search);
- ObjectTypeDB::bind_method("_save_history",&ScriptEditor::_save_history);
-
-
-
- ObjectTypeDB::bind_method("_breaked",&ScriptEditor::_breaked);
- ObjectTypeDB::bind_method("_show_debugger",&ScriptEditor::_show_debugger);
- ObjectTypeDB::bind_method("_get_debug_tooltip",&ScriptEditor::_get_debug_tooltip);
- ObjectTypeDB::bind_method("_autosave_scripts",&ScriptEditor::_autosave_scripts);
- ObjectTypeDB::bind_method("_editor_settings_changed",&ScriptEditor::_editor_settings_changed);
- ObjectTypeDB::bind_method("_update_script_names",&ScriptEditor::_update_script_names);
- ObjectTypeDB::bind_method("_tree_changed",&ScriptEditor::_tree_changed);
- ObjectTypeDB::bind_method("_script_selected",&ScriptEditor::_script_selected);
- ObjectTypeDB::bind_method("_script_created",&ScriptEditor::_script_created);
- ObjectTypeDB::bind_method("_script_split_dragged",&ScriptEditor::_script_split_dragged);
- ObjectTypeDB::bind_method("_help_class_open",&ScriptEditor::_help_class_open);
- ObjectTypeDB::bind_method("_help_class_goto",&ScriptEditor::_help_class_goto);
- ObjectTypeDB::bind_method("_request_help",&ScriptEditor::_help_class_open);
- ObjectTypeDB::bind_method("_history_forward",&ScriptEditor::_history_forward);
- ObjectTypeDB::bind_method("_history_back",&ScriptEditor::_history_back);
- ObjectTypeDB::bind_method("_live_auto_reload_running_scripts",&ScriptEditor::_live_auto_reload_running_scripts);
- ObjectTypeDB::bind_method("_unhandled_input",&ScriptEditor::_unhandled_input);
+ ClassDB::bind_method("_file_dialog_action",&ScriptEditor::_file_dialog_action);
+ ClassDB::bind_method("_tab_changed",&ScriptEditor::_tab_changed);
+ ClassDB::bind_method("_menu_option",&ScriptEditor::_menu_option);
+ ClassDB::bind_method("_close_current_tab",&ScriptEditor::_close_current_tab);
+ ClassDB::bind_method("_close_discard_current_tab", &ScriptEditor::_close_discard_current_tab);
+ ClassDB::bind_method("_close_docs_tab", &ScriptEditor::_close_docs_tab);
+ ClassDB::bind_method("_close_all_tabs", &ScriptEditor::_close_all_tabs);
+ ClassDB::bind_method("_editor_play",&ScriptEditor::_editor_play);
+ ClassDB::bind_method("_editor_pause",&ScriptEditor::_editor_pause);
+ ClassDB::bind_method("_editor_stop",&ScriptEditor::_editor_stop);
+ ClassDB::bind_method("_add_callback",&ScriptEditor::_add_callback);
+ ClassDB::bind_method("_reload_scripts",&ScriptEditor::_reload_scripts);
+ ClassDB::bind_method("_resave_scripts",&ScriptEditor::_resave_scripts);
+ ClassDB::bind_method("_res_saved_callback",&ScriptEditor::_res_saved_callback);
+ ClassDB::bind_method("_goto_script_line",&ScriptEditor::_goto_script_line);
+ ClassDB::bind_method("_goto_script_line2",&ScriptEditor::_goto_script_line2);
+ ClassDB::bind_method("_help_search",&ScriptEditor::_help_search);
+ ClassDB::bind_method("_save_history",&ScriptEditor::_save_history);
+
+
+
+ ClassDB::bind_method("_breaked",&ScriptEditor::_breaked);
+ ClassDB::bind_method("_show_debugger",&ScriptEditor::_show_debugger);
+ ClassDB::bind_method("_get_debug_tooltip",&ScriptEditor::_get_debug_tooltip);
+ ClassDB::bind_method("_autosave_scripts",&ScriptEditor::_autosave_scripts);
+ ClassDB::bind_method("_editor_settings_changed",&ScriptEditor::_editor_settings_changed);
+ ClassDB::bind_method("_update_script_names",&ScriptEditor::_update_script_names);
+ ClassDB::bind_method("_tree_changed",&ScriptEditor::_tree_changed);
+ ClassDB::bind_method("_script_selected",&ScriptEditor::_script_selected);
+ ClassDB::bind_method("_script_created",&ScriptEditor::_script_created);
+ ClassDB::bind_method("_script_split_dragged",&ScriptEditor::_script_split_dragged);
+ ClassDB::bind_method("_help_class_open",&ScriptEditor::_help_class_open);
+ ClassDB::bind_method("_help_class_goto",&ScriptEditor::_help_class_goto);
+ ClassDB::bind_method("_request_help",&ScriptEditor::_help_class_open);
+ ClassDB::bind_method("_history_forward",&ScriptEditor::_history_forward);
+ ClassDB::bind_method("_history_back",&ScriptEditor::_history_back);
+ ClassDB::bind_method("_live_auto_reload_running_scripts",&ScriptEditor::_live_auto_reload_running_scripts);
+ ClassDB::bind_method("_unhandled_input",&ScriptEditor::_unhandled_input);
}
@@ -2126,7 +2137,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/close_docs", TTR("Close Docs")), CLOSE_DOCS);
file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/close_file", TTR("Close"), KEY_MASK_CMD | KEY_W), FILE_CLOSE);
file_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/close_all", TTR("Close All")), CLOSE_ALL);
- file_menu->get_popup()->connect("item_pressed", this,"_menu_option");
+ file_menu->get_popup()->connect("id_pressed", this,"_menu_option");
@@ -2135,7 +2146,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
script_search_menu->set_text(TTR("Search"));
script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find", TTR("Find.."), KEY_MASK_CMD|KEY_F), HELP_SEARCH_FIND);
script_search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_next", TTR("Find Next"), KEY_F3), HELP_SEARCH_FIND_NEXT);
- script_search_menu->get_popup()->connect("item_pressed", this,"_menu_option");
+ script_search_menu->get_popup()->connect("id_pressed", this,"_menu_option");
script_search_menu->hide();
@@ -2151,7 +2162,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
debug_menu->get_popup()->add_separator();
//debug_menu->get_popup()->add_check_item("Show Debugger",DEBUG_SHOW);
debug_menu->get_popup()->add_check_shortcut(ED_SHORTCUT("debugger/keep_debugger_open", TTR("Keep Debugger Open")), DEBUG_SHOW_KEEP_OPEN);
- debug_menu->get_popup()->connect("item_pressed", this,"_menu_option");
+ debug_menu->get_popup()->connect("id_pressed", this,"_menu_option");
debug_menu->get_popup()->set_item_disabled( debug_menu->get_popup()->get_item_index(DEBUG_NEXT), true);
debug_menu->get_popup()->set_item_disabled( debug_menu->get_popup()->get_item_index(DEBUG_STEP), true );
@@ -2168,7 +2179,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
window_menu->get_popup()->add_item(TTR("Move Left"),WINDOW_MOVE_LEFT,KEY_MASK_CMD|KEY_LEFT);
window_menu->get_popup()->add_item(TTR("Move Right"),WINDOW_MOVE_RIGHT,KEY_MASK_CMD|KEY_RIGHT);
window_menu->get_popup()->add_separator();
- window_menu->get_popup()->connect("item_pressed", this,"_menu_option");
+ window_menu->get_popup()->connect("id_pressed", this,"_menu_option");
#endif
@@ -2176,7 +2187,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
menu_hb->add_spacer();
- script_icon = memnew( TextureFrame );
+ script_icon = memnew( TextureRect );
menu_hb->add_child(script_icon);
script_name_label = memnew( Label );
menu_hb->add_child(script_name_label);
@@ -2223,8 +2234,11 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
tab_container->connect("tab_changed", this,"_tab_changed");
erase_tab_confirm = memnew( ConfirmationDialog );
- add_child(erase_tab_confirm);
+ erase_tab_confirm->get_ok()->set_text(TTR("Save"));
+ erase_tab_confirm->add_button(TTR("Discard"), OS::get_singleton()->get_swap_ok_cancel(), "discard");
erase_tab_confirm->connect("confirmed", this,"_close_current_tab");
+ erase_tab_confirm->connect("custom_action", this, "_close_discard_current_tab");
+ add_child(erase_tab_confirm);
script_create_dialog = memnew(ScriptCreateDialog);
script_create_dialog->set_title(TTR("Create Script"));
@@ -2245,7 +2259,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
{
VBoxContainer *vbc = memnew( VBoxContainer );
disk_changed->add_child(vbc);
- disk_changed->set_child_rect(vbc);
+ //disk_changed->set_child_rect(vbc);
Label *dl = memnew( Label );
dl->set_text(TTR("The following files are newer on disk.\nWhat action should be taken?:"));
@@ -2291,7 +2305,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
help_index->connect("open_class",this,"_help_class_open");
history_pos=-1;
-// debugger_gui->hide();
+ //debugger_gui->hide();
edit_pass=0;
trim_trailing_whitespace_on_save = false;
@@ -2326,7 +2340,7 @@ bool ScriptEditorPlugin::handles(Object *p_object) const {
return valid;
}
- return p_object->is_type("Script");
+ return p_object->is_class("Script");
}
void ScriptEditorPlugin::make_visible(bool p_visible) {
@@ -2414,20 +2428,20 @@ ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) {
script_editor->hide();
- EDITOR_DEF("text_editor/auto_reload_scripts_on_external_change",true);
- ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/auto_reload_and_parse_scripts_on_save",true));
- EDITOR_DEF("text_editor/open_dominant_script_on_scene_change",true);
- EDITOR_DEF("external_editor/use_external_editor",false);
- EDITOR_DEF("external_editor/exec_path","");
- EDITOR_DEF("text_editor/script_temperature_enabled",true);
- EDITOR_DEF("text_editor/highlight_current_script", true);
- EDITOR_DEF("text_editor/script_temperature_history_size",15);
- EDITOR_DEF("text_editor/script_temperature_hot_color",Color(1,0,0,0.3));
- EDITOR_DEF("text_editor/script_temperature_cold_color",Color(0,0,1,0.3));
- EDITOR_DEF("text_editor/current_script_background_color",Color(0.81,0.81,0.14,0.63));
- EDITOR_DEF("text_editor/group_help_pages",true);
- EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"external_editor/exec_path",PROPERTY_HINT_GLOBAL_FILE));
- EDITOR_DEF("external_editor/exec_flags","");
+ EDITOR_DEF("text_editor/files/auto_reload_scripts_on_external_change",true);
+ ScriptServer::set_reload_scripts_on_save(EDITOR_DEF("text_editor/files/auto_reload_and_parse_scripts_on_save",true));
+ EDITOR_DEF("text_editor/files/open_dominant_script_on_scene_change",true);
+ EDITOR_DEF("text_editor/external/use_external_editor",false);
+ EDITOR_DEF("text_editor/external/exec_path","");
+ EDITOR_DEF("text_editor/open_scripts/script_temperature_enabled",true);
+ EDITOR_DEF("text_editor/open_scripts/highlight_current_script", true);
+ EDITOR_DEF("text_editor/open_scripts/script_temperature_history_size",15);
+ EDITOR_DEF("text_editor/open_scripts/script_temperature_hot_color",Color(1,0,0,0.3));
+ EDITOR_DEF("text_editor/open_scripts/script_temperature_cold_color",Color(0,0,1,0.3));
+ EDITOR_DEF("text_editor/open_scripts/current_script_background_color",Color(0.81,0.81,0.14,0.63));
+ EDITOR_DEF("text_editor/open_scripts/group_help_pages",true);
+ EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING,"text_editor/external/exec_path",PROPERTY_HINT_GLOBAL_FILE));
+ EDITOR_DEF("text_editor/external/exec_flags","");
}
diff --git a/tools/editor/plugins/script_editor_plugin.h b/tools/editor/plugins/script_editor_plugin.h
index 10f3bce14e..887c2f7d68 100644
--- a/tools/editor/plugins/script_editor_plugin.h
+++ b/tools/editor/plugins/script_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -45,7 +45,7 @@
class ScriptEditorQuickOpen : public ConfirmationDialog {
- OBJ_TYPE(ScriptEditorQuickOpen,ConfirmationDialog )
+ GDCLASS(ScriptEditorQuickOpen,ConfirmationDialog )
LineEdit *search_box;
Tree *search_options;
@@ -77,7 +77,7 @@ class ScriptEditorDebugger;
class ScriptEditorBase : public Control {
- OBJ_TYPE( ScriptEditorBase, Control );
+ GDCLASS( ScriptEditorBase, Control );
protected:
static void _bind_methods();
public:
@@ -99,7 +99,7 @@ public:
virtual void reload(bool p_soft)=0;
virtual void get_breakpoints(List<int> *p_breakpoints)=0;
virtual bool goto_method(const String& p_method)=0;
- virtual void add_callback(const String& p_function,StringArray p_args)=0;
+ virtual void add_callback(const String& p_function,PoolStringArray p_args)=0;
virtual void update_settings()=0;
virtual void set_debugger_active(bool p_active)=0;
virtual bool can_lose_focus_on_node_selection() { return true; }
@@ -118,7 +118,7 @@ class EditorScriptCodeCompletionCache;
class ScriptEditor : public VBoxContainer {
- OBJ_TYPE(ScriptEditor, VBoxContainer );
+ GDCLASS(ScriptEditor, VBoxContainer );
EditorNode *editor;
@@ -179,7 +179,7 @@ class ScriptEditor : public VBoxContainer {
String current_theme;
- TextureFrame *script_icon;
+ TextureRect *script_icon;
Label *script_name_label;
ToolButton *script_back;
@@ -219,9 +219,10 @@ class ScriptEditor : public VBoxContainer {
bool _test_script_times_on_disk(Ref<Script> p_for_script=Ref<Script>());
- void _close_tab(int p_idx);
+ void _close_tab(int p_idx, bool p_save=true);
void _close_current_tab();
+ void _close_discard_current_tab(const String& p_str);
void _close_docs_tab();
void _close_all_tabs();
@@ -243,7 +244,7 @@ class ScriptEditor : public VBoxContainer {
int edit_pass;
- void _add_callback(Object *p_obj, const String& p_function, const StringArray& p_args);
+ void _add_callback(Object *p_obj, const String& p_function, const PoolStringArray& p_args);
void _res_saved_callback(const Ref<Resource>& p_res);
bool trim_trailing_whitespace_on_save;
@@ -343,7 +344,7 @@ public:
class ScriptEditorPlugin : public EditorPlugin {
- OBJ_TYPE( ScriptEditorPlugin, EditorPlugin );
+ GDCLASS( ScriptEditorPlugin, EditorPlugin );
ScriptEditor *script_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/script_text_editor.cpp b/tools/editor/plugins/script_text_editor.cpp
index 40fc3a7bda..e26a3b23bc 100644
--- a/tools/editor/plugins/script_text_editor.cpp
+++ b/tools/editor/plugins/script_text_editor.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "script_text_editor.h"
+
#include "tools/editor/editor_settings.h"
#include "os/keyboard.h"
#include "tools/editor/script_editor_debugger.h"
@@ -60,7 +61,7 @@ void ScriptTextEditor::apply_code() {
if (script.is_null())
return;
-// print_line("applying code");
+ //print_line("applying code");
script->set_source_code(code_editor->get_text_edit()->get_text());
script->update_exports();
}
@@ -100,31 +101,32 @@ void ScriptTextEditor::_load_theme_settings() {
/* keyword color */
- text_edit->set_custom_bg_color(EDITOR_DEF("text_editor/background_color",Color(0,0,0,0)));
- text_edit->add_color_override("completion_background_color", EDITOR_DEF("text_editor/completion_background_color", Color(0,0,0,0)));
- text_edit->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/completion_selected_color", Color::html("434244")));
- text_edit->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/completion_existing_color", Color::html("21dfdfdf")));
- text_edit->add_color_override("completion_scroll_color", EDITOR_DEF("text_editor/completion_scroll_color", Color::html("ffffff")));
- text_edit->add_color_override("completion_font_color", EDITOR_DEF("text_editor/completion_font_color", Color::html("aaaaaa")));
- text_edit->add_color_override("font_color",EDITOR_DEF("text_editor/text_color",Color(0,0,0)));
- text_edit->add_color_override("line_number_color",EDITOR_DEF("text_editor/line_number_color",Color(0,0,0)));
- text_edit->add_color_override("caret_color",EDITOR_DEF("text_editor/caret_color",Color(0,0,0)));
- text_edit->add_color_override("caret_background_color",EDITOR_DEF("text_editor/caret_background_color",Color(0,0,0)));
- text_edit->add_color_override("font_selected_color",EDITOR_DEF("text_editor/text_selected_color",Color(1,1,1)));
- text_edit->add_color_override("selection_color",EDITOR_DEF("text_editor/selection_color",Color(0.2,0.2,1)));
- text_edit->add_color_override("brace_mismatch_color",EDITOR_DEF("text_editor/brace_mismatch_color",Color(1,0.2,0.2)));
- text_edit->add_color_override("current_line_color",EDITOR_DEF("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15)));
- text_edit->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15)));
- text_edit->add_color_override("number_color",EDITOR_DEF("text_editor/number_color",Color(0.9,0.6,0.0,2)));
- text_edit->add_color_override("function_color",EDITOR_DEF("text_editor/function_color",Color(0.4,0.6,0.8)));
- text_edit->add_color_override("member_variable_color",EDITOR_DEF("text_editor/member_variable_color",Color(0.9,0.3,0.3)));
- text_edit->add_color_override("mark_color", EDITOR_DEF("text_editor/mark_color", Color(1.0,0.4,0.4,0.4)));
- text_edit->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2)));
- text_edit->add_color_override("search_result_color",EDITOR_DEF("text_editor/search_result_color",Color(0.05,0.25,0.05,1)));
- text_edit->add_color_override("search_result_border_color",EDITOR_DEF("text_editor/search_result_border_color",Color(0.1,0.45,0.1,1)));
- text_edit->add_constant_override("line_spacing", EDITOR_DEF("text_editor/line_spacing",4));
-
- Color keyword_color= EDITOR_DEF("text_editor/keyword_color",Color(0.5,0.0,0.2));
+ text_edit->add_color_override("background_color", EDITOR_DEF("text_editor/highlighting/background_color",Color(0,0,0,0)));
+ text_edit->add_color_override("completion_background_color", EDITOR_DEF("text_editor/highlighting/completion_background_color", Color(0,0,0,0)));
+ text_edit->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/highlighting/completion_selected_color", Color::html("434244")));
+ text_edit->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/highlighting/completion_existing_color", Color::html("21dfdfdf")));
+ text_edit->add_color_override("completion_scroll_color", EDITOR_DEF("text_editor/highlighting/completion_scroll_color", Color::html("ffffff")));
+ text_edit->add_color_override("completion_font_color", EDITOR_DEF("text_editor/highlighting/completion_font_color", Color::html("aaaaaa")));
+ text_edit->add_color_override("font_color",EDITOR_DEF("text_editor/highlighting/text_color",Color(0,0,0)));
+ text_edit->add_color_override("line_number_color",EDITOR_DEF("text_editor/highlighting/line_number_color",Color(0,0,0)));
+ text_edit->add_color_override("caret_color",EDITOR_DEF("text_editor/highlighting/caret_color",Color(0,0,0)));
+ text_edit->add_color_override("caret_background_color",EDITOR_DEF("text_editor/highlighting/caret_background_color",Color(0,0,0)));
+ text_edit->add_color_override("font_selected_color",EDITOR_DEF("text_editor/highlighting/text_selected_color",Color(1,1,1)));
+ text_edit->add_color_override("selection_color",EDITOR_DEF("text_editor/highlighting/selection_color",Color(0.2,0.2,1)));
+ text_edit->add_color_override("brace_mismatch_color",EDITOR_DEF("text_editor/highlighting/brace_mismatch_color",Color(1,0.2,0.2)));
+ text_edit->add_color_override("current_line_color",EDITOR_DEF("text_editor/highlighting/current_line_color",Color(0.3,0.5,0.8,0.15)));
+ text_edit->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/highlighting/word_highlighted_color",Color(0.8,0.9,0.9,0.15)));
+ text_edit->add_color_override("number_color",EDITOR_DEF("text_editor/highlighting/number_color",Color(0.9,0.6,0.0,2)));
+ text_edit->add_color_override("function_color",EDITOR_DEF("text_editor/highlighting/function_color",Color(0.4,0.6,0.8)));
+ text_edit->add_color_override("member_variable_color",EDITOR_DEF("text_editor/highlighting/member_variable_color",Color(0.9,0.3,0.3)));
+ text_edit->add_color_override("mark_color", EDITOR_DEF("text_editor/highlighting/mark_color", Color(1.0,0.4,0.4,0.4)));
+ text_edit->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/highlighting/breakpoint_color", Color(0.8,0.8,0.4,0.2)));
+ text_edit->add_color_override("search_result_color",EDITOR_DEF("text_editor/highlighting/search_result_color",Color(0.05,0.25,0.05,1)));
+ text_edit->add_color_override("search_result_border_color",EDITOR_DEF("text_editor/highlighting/search_result_border_color",Color(0.1,0.45,0.1,1)));
+ text_edit->add_color_override("symbol_color",EDITOR_DEF("text_editor/highlighting/symbol_color",Color::hex(0x005291ff)));
+ text_edit->add_constant_override("line_spacing", EDITOR_DEF("text_editor/theme/line_spacing",4));
+
+ Color keyword_color= EDITOR_DEF("text_editor/highlighting/keyword_color",Color(0.5,0.0,0.2));
List<String> keywords;
script->get_language()->get_reserved_words(&keywords);
@@ -134,7 +136,7 @@ void ScriptTextEditor::_load_theme_settings() {
}
//colorize core types
- Color basetype_color= EDITOR_DEF("text_editor/base_type_color",Color(0.3,0.3,0.0));
+ Color basetype_color= EDITOR_DEF("text_editor/highlighting/base_type_color",Color(0.3,0.3,0.0));
text_edit->add_keyword_color("Vector2",basetype_color);
text_edit->add_keyword_color("Vector3",basetype_color);
@@ -150,10 +152,10 @@ void ScriptTextEditor::_load_theme_settings() {
text_edit->add_keyword_color("NodePath",basetype_color);
//colorize engine types
- Color type_color= EDITOR_DEF("text_editor/engine_type_color",Color(0.0,0.2,0.4));
+ Color type_color= EDITOR_DEF("text_editor/highlighting/engine_type_color",Color(0.0,0.2,0.4));
List<StringName> types;
- ObjectTypeDB::get_type_list(&types);
+ ClassDB::get_class_list(&types);
for(List<StringName>::Element *E=types.front();E;E=E->next()) {
@@ -165,7 +167,7 @@ void ScriptTextEditor::_load_theme_settings() {
}
//colorize comments
- Color comment_color = EDITOR_DEF("text_editor/comment_color",Color::hex(0x797e7eff));
+ Color comment_color = EDITOR_DEF("text_editor/highlighting/comment_color",Color::hex(0x797e7eff));
List<String> comments;
script->get_language()->get_comment_delimiters(&comments);
@@ -179,7 +181,7 @@ void ScriptTextEditor::_load_theme_settings() {
}
//colorize strings
- Color string_color = EDITOR_DEF("text_editor/string_color",Color::hex(0x6b6f00ff));
+ Color string_color = EDITOR_DEF("text_editor/highlighting/string_color",Color::hex(0x6b6f00ff));
List<String> strings;
script->get_language()->get_string_delimiters(&strings);
@@ -190,11 +192,6 @@ void ScriptTextEditor::_load_theme_settings() {
String end = string.get_slice_count(" ")>1?string.get_slice(" ",1):String();
text_edit->add_color_region(beg,end,string_color,end=="");
}
-
- //colorize symbols
- Color symbol_color= EDITOR_DEF("text_editor/symbol_color",Color::hex(0x005291ff));
- text_edit->set_symbol_color(symbol_color);
-
}
@@ -229,7 +226,7 @@ void ScriptTextEditor::_notification(int p_what) {
}
}
-void ScriptTextEditor::add_callback(const String& p_function,StringArray p_args) {
+void ScriptTextEditor::add_callback(const String& p_function,PoolStringArray p_args) {
String code = code_editor->get_text_edit()->get_text();
int pos = script->get_language()->find_function(p_function,code);
@@ -336,7 +333,7 @@ String ScriptTextEditor::get_name() {
} else if (script->get_name()!="")
name=script->get_name();
else
- name=script->get_type()+"("+itos(script->get_instance_ID())+")";
+ name=script->get_class()+"("+itos(script->get_instance_ID())+")";
return name;
@@ -344,8 +341,8 @@ String ScriptTextEditor::get_name() {
Ref<Texture> ScriptTextEditor::get_icon() {
- if (get_parent_control() && get_parent_control()->has_icon(script->get_type(),"EditorIcons")) {
- return get_parent_control()->get_icon(script->get_type(),"EditorIcons");
+ if (get_parent_control() && get_parent_control()->has_icon(script->get_class(),"EditorIcons")) {
+ return get_parent_control()->get_icon(script->get_class(),"EditorIcons");
}
return Ref<Texture>();
@@ -442,7 +439,7 @@ static void _find_changed_scripts_for_external_editor(Node* p_base, Node*p_curre
void ScriptEditor::_update_modified_scripts_for_external_editor(Ref<Script> p_for_script) {
- if (!bool(EditorSettings::get_singleton()->get("external_editor/use_external_editor")))
+ if (!bool(EditorSettings::get_singleton()->get("text_editor/external/use_external_editor")))
return;
Set<Ref<Script> > scripts;
@@ -469,7 +466,7 @@ void ScriptEditor::_update_modified_scripts_for_external_editor(Ref<Script> p_fo
if (last_date!=date) {
- Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_type(),true);
+ Ref<Script> rel_script = ResourceLoader::load(script->get_path(),script->get_class(),true);
ERR_CONTINUE(!rel_script.is_valid());
script->set_source_code( rel_script->get_source_code() );
script->set_last_modified_time( rel_script->get_last_modified_time() );
@@ -488,7 +485,7 @@ void ScriptTextEditor::_code_complete_scripts(void* p_ud,const String& p_code, L
void ScriptTextEditor::_code_complete_script(const String& p_code, List<String>* r_options) {
- if (color_panel->is_visible()) return;
+ if (color_panel->is_visible_in_tree()) return;
Node *base = get_tree()->get_edited_scene_root();
if (base) {
base = _find_node_for_script(base,base,script);
@@ -548,10 +545,10 @@ void ScriptTextEditor::_lookup_symbol(const String& p_symbol,int p_row, int p_co
StringName cname = result.class_name;
bool success;
while(true) {
- ObjectTypeDB::get_integer_constant(cname,result.class_member,&success);
+ ClassDB::get_integer_constant(cname,result.class_member,&success);
if (success) {
result.class_name=cname;
- cname=ObjectTypeDB::type_inherits_from(cname);
+ cname=ClassDB::get_parent_class(cname);
} else {
break;
}
@@ -570,9 +567,9 @@ void ScriptTextEditor::_lookup_symbol(const String& p_symbol,int p_row, int p_co
StringName cname = result.class_name;
while(true) {
- if (ObjectTypeDB::has_method(cname,result.class_member)) {
+ if (ClassDB::has_method(cname,result.class_member)) {
result.class_name=cname;
- cname=ObjectTypeDB::type_inherits_from(cname);
+ cname=ClassDB::get_parent_class(cname);
} else {
break;
}
@@ -977,19 +974,19 @@ void ScriptTextEditor::_edit_option(int p_op) {
void ScriptTextEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_validate_script",&ScriptTextEditor::_validate_script);
- ObjectTypeDB::bind_method("_load_theme_settings",&ScriptTextEditor::_load_theme_settings);
- ObjectTypeDB::bind_method("_breakpoint_toggled",&ScriptTextEditor::_breakpoint_toggled);
- ObjectTypeDB::bind_method("_edit_option",&ScriptTextEditor::_edit_option);
- ObjectTypeDB::bind_method("_goto_line",&ScriptTextEditor::_goto_line);
- ObjectTypeDB::bind_method("_lookup_symbol",&ScriptTextEditor::_lookup_symbol);
- ObjectTypeDB::bind_method("_text_edit_input_event", &ScriptTextEditor::_text_edit_input_event);
- ObjectTypeDB::bind_method("_color_changed", &ScriptTextEditor::_color_changed);
+ ClassDB::bind_method("_validate_script",&ScriptTextEditor::_validate_script);
+ ClassDB::bind_method("_load_theme_settings",&ScriptTextEditor::_load_theme_settings);
+ ClassDB::bind_method("_breakpoint_toggled",&ScriptTextEditor::_breakpoint_toggled);
+ ClassDB::bind_method("_edit_option",&ScriptTextEditor::_edit_option);
+ ClassDB::bind_method("_goto_line",&ScriptTextEditor::_goto_line);
+ ClassDB::bind_method("_lookup_symbol",&ScriptTextEditor::_lookup_symbol);
+ ClassDB::bind_method("_text_edit_gui_input", &ScriptTextEditor::_text_edit_gui_input);
+ ClassDB::bind_method("_color_changed", &ScriptTextEditor::_color_changed);
- ObjectTypeDB::bind_method("get_drag_data_fw",&ScriptTextEditor::get_drag_data_fw);
- ObjectTypeDB::bind_method("can_drop_data_fw",&ScriptTextEditor::can_drop_data_fw);
- ObjectTypeDB::bind_method("drop_data_fw",&ScriptTextEditor::drop_data_fw);
+ ClassDB::bind_method("get_drag_data_fw",&ScriptTextEditor::get_drag_data_fw);
+ ClassDB::bind_method("can_drop_data_fw",&ScriptTextEditor::can_drop_data_fw);
+ ClassDB::bind_method("drop_data_fw",&ScriptTextEditor::drop_data_fw);
}
@@ -1163,7 +1160,7 @@ void ScriptTextEditor::drop_data_fw(const Point2& p_point,const Variant& p_data,
}
-void ScriptTextEditor::_text_edit_input_event(const InputEvent& ev) {
+void ScriptTextEditor::_text_edit_gui_input(const InputEvent& ev) {
if (ev.type == InputEvent::MOUSE_BUTTON) {
InputEventMouseButton mb = ev.mouse_button;
if (mb.button_index == BUTTON_RIGHT && !mb.pressed) {
@@ -1198,7 +1195,7 @@ void ScriptTextEditor::_text_edit_input_event(const InputEvent& ev) {
Vector<float> color = stripped.split_floats(",");
if (color.size() > 2) {
float alpha = color.size() > 3 ? color[3] : 1.0f;
- color_picker->set_color(Color(color[0], color[1], color[2], alpha));
+ color_picker->set_pick_color(Color(color[0], color[1], color[2], alpha));
}
color_panel->set_pos(get_global_transform().xform(get_local_mouse_pos()));
Size2 ms = Size2(300, color_picker->get_combined_minimum_size().height+10);
@@ -1230,20 +1227,21 @@ void ScriptTextEditor::_make_context_menu(bool p_selection, bool p_color) {
context_menu->clear();
if (p_selection) {
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"));
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"));
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/cut"), EDIT_CUT);
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/copy"), EDIT_COPY);
}
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"));
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/paste"), EDIT_PASTE);
context_menu->add_separator();
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"));
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"));
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL);
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO);
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO);
if (p_selection) {
context_menu->add_separator();
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"));
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_right"));
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_comment"));
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"), EDIT_INDENT_LEFT);
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_right"), EDIT_INDENT_RIGHT);
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_comment"), EDIT_TOGGLE_COMMENT);
}
if (p_color) {
context_menu->add_separator();
@@ -1268,22 +1266,22 @@ ScriptTextEditor::ScriptTextEditor() {
update_settings();
code_editor->get_text_edit()->set_callhint_settings(
- EditorSettings::get_singleton()->get("text_editor/put_callhint_tooltip_below_current_line"),
- EditorSettings::get_singleton()->get("text_editor/callhint_tooltip_offset"));
+ EditorSettings::get_singleton()->get("text_editor/completion/put_callhint_tooltip_below_current_line"),
+ EditorSettings::get_singleton()->get("text_editor/completion/callhint_tooltip_offset"));
code_editor->get_text_edit()->set_select_identifiers_on_hover(true);
code_editor->get_text_edit()->set_context_menu_enabled(false);
- code_editor->get_text_edit()->connect("input_event", this, "_text_edit_input_event");
+ code_editor->get_text_edit()->connect("gui_input", this, "_text_edit_gui_input");
context_menu = memnew(PopupMenu);
add_child(context_menu);
- context_menu->connect("item_pressed", this, "_edit_option");
+ context_menu->connect("id_pressed", this, "_edit_option");
color_panel = memnew(PopupPanel);
add_child(color_panel);
color_picker = memnew(ColorPicker);
color_panel->add_child(color_picker);
- color_panel->set_child_rect(color_picker);
+ color_panel->set_child_rect(color_picker); //NOT
color_picker->connect("color_changed", this, "_color_changed");
edit_hb = memnew (HBoxContainer);
@@ -1313,7 +1311,7 @@ ScriptTextEditor::ScriptTextEditor() {
#endif
edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/trim_trailing_whitespace"), EDIT_TRIM_TRAILING_WHITESAPCE);
edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/auto_indent"), EDIT_AUTO_INDENT);
- edit_menu->get_popup()->connect("item_pressed", this,"_edit_option");
+ edit_menu->get_popup()->connect("id_pressed", this,"_edit_option");
edit_menu->get_popup()->add_separator();
edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_breakpoint"), DEBUG_TOGGLE_BREAKPOINT);
edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/remove_all_breakpoints"), DEBUG_REMOVE_ALL_BREAKPOINTS);
@@ -1333,7 +1331,7 @@ ScriptTextEditor::ScriptTextEditor() {
search_menu->get_popup()->add_separator();
search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/contextual_help"), HELP_CONTEXTUAL);
- search_menu->get_popup()->connect("item_pressed", this,"_edit_option");
+ search_menu->get_popup()->connect("id_pressed", this,"_edit_option");
edit_hb->add_child(edit_menu);
@@ -1367,8 +1365,12 @@ void ScriptTextEditor::register_editor() {
ED_SHORTCUT("script_text_editor/select_all", TTR("Select All"), KEY_MASK_CMD|KEY_A);
ED_SHORTCUT("script_text_editor/move_up", TTR("Move Up"), KEY_MASK_ALT|KEY_UP);
ED_SHORTCUT("script_text_editor/move_down", TTR("Move Down"), KEY_MASK_ALT|KEY_DOWN);
- ED_SHORTCUT("script_text_editor/indent_left", TTR("Indent Left"), KEY_MASK_ALT|KEY_LEFT);
- ED_SHORTCUT("script_text_editor/indent_right", TTR("Indent Right"), KEY_MASK_ALT|KEY_RIGHT);
+
+ //leave these at zero, same can be accomplished with tab/shift-tab, including selection
+ //the next/previous in history shortcut in this case makes a lot more sene.
+
+ ED_SHORTCUT("script_text_editor/indent_left", TTR("Indent Left"), 0);
+ ED_SHORTCUT("script_text_editor/indent_right", TTR("Indent Right"), 0);
ED_SHORTCUT("script_text_editor/toggle_comment", TTR("Toggle Comment"), KEY_MASK_CMD|KEY_K);
ED_SHORTCUT("script_text_editor/clone_down", TTR("Clone Down"), KEY_MASK_CMD|KEY_B);
#ifdef OSX_ENABLED
diff --git a/tools/editor/plugins/script_text_editor.h b/tools/editor/plugins/script_text_editor.h
index ceef50f0bc..e30a78340e 100644
--- a/tools/editor/plugins/script_text_editor.h
+++ b/tools/editor/plugins/script_text_editor.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,7 +35,7 @@
class ScriptTextEditor : public ScriptEditorBase {
- OBJ_TYPE( ScriptTextEditor, ScriptEditorBase );
+ GDCLASS( ScriptTextEditor, ScriptEditorBase );
CodeTextEditor *code_editor;
@@ -105,7 +105,7 @@ protected:
void _edit_option(int p_op);
void _make_context_menu(bool p_selection, bool p_color);
- void _text_edit_input_event(const InputEvent& ev);
+ void _text_edit_gui_input(const InputEvent& ev);
void _color_changed(const Color& p_color);
void _goto_line(int p_line) { goto_line(p_line); }
@@ -137,7 +137,7 @@ public:
virtual void reload(bool p_soft);
virtual void get_breakpoints(List<int> *p_breakpoints);
- virtual void add_callback(const String& p_function,StringArray p_args);
+ virtual void add_callback(const String& p_function,PoolStringArray p_args);
virtual void update_settings();
virtual bool goto_method(const String& p_method);
diff --git a/tools/editor/plugins/shader_editor_plugin.cpp b/tools/editor/plugins/shader_editor_plugin.cpp
index 861f5678f6..56a8fccb9c 100644
--- a/tools/editor/plugins/shader_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,8 +27,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "shader_editor_plugin.h"
-#include "tools/editor/editor_settings.h"
+#include "tools/editor/editor_settings.h"
#include "spatial_editor_plugin.h"
#include "scene/resources/shader_graph.h"
#include "io/resource_loader.h"
@@ -37,7 +37,7 @@
#include "tools/editor/editor_node.h"
#include "tools/editor/property_editor.h"
#include "os/os.h"
-
+#include "servers/visual/shader_types.h"
/*** SETTINGS EDITOR ****/
@@ -51,19 +51,14 @@ Ref<Shader> ShaderTextEditor::get_edited_shader() const {
return shader;
}
-void ShaderTextEditor::set_edited_shader(const Ref<Shader>& p_shader,ShaderLanguage::ShaderType p_type) {
+void ShaderTextEditor::set_edited_shader(const Ref<Shader>& p_shader) {
shader=p_shader;
- type=p_type;
+
_load_theme_settings();
- if (p_type==ShaderLanguage::SHADER_MATERIAL_LIGHT || p_type==ShaderLanguage::SHADER_CANVAS_ITEM_LIGHT)
- get_text_edit()->set_text(shader->get_light_code());
- else if (p_type==ShaderLanguage::SHADER_MATERIAL_VERTEX || p_type==ShaderLanguage::SHADER_CANVAS_ITEM_VERTEX)
- get_text_edit()->set_text(shader->get_vertex_code());
- else
- get_text_edit()->set_text(shader->get_fragment_code());
+ get_text_edit()->set_text(p_shader->get_code());
_line_col_changed();
@@ -77,34 +72,53 @@ void ShaderTextEditor::_load_theme_settings() {
/* keyword color */
- get_text_edit()->set_custom_bg_color(EDITOR_DEF("text_editor/background_color",Color(0,0,0,0)));
- get_text_edit()->add_color_override("completion_background_color", EDITOR_DEF("text_editor/completion_background_color", Color(0,0,0,0)));
- get_text_edit()->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/completion_selected_color", Color::html("434244")));
- get_text_edit()->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/completion_existing_color", Color::html("21dfdfdf")));
- get_text_edit()->add_color_override("completion_scroll_color", EDITOR_DEF("text_editor/completion_scroll_color", Color::html("ffffff")));
- get_text_edit()->add_color_override("completion_font_color", EDITOR_DEF("text_editor/completion_font_color", Color::html("aaaaaa")));
- get_text_edit()->add_color_override("font_color",EDITOR_DEF("text_editor/text_color",Color(0,0,0)));
- get_text_edit()->add_color_override("line_number_color",EDITOR_DEF("text_editor/line_number_color",Color(0,0,0)));
- get_text_edit()->add_color_override("caret_color",EDITOR_DEF("text_editor/caret_color",Color(0,0,0)));
- get_text_edit()->add_color_override("caret_background_color",EDITOR_DEF("text_editor/caret_background_color",Color(0,0,0)));
- get_text_edit()->add_color_override("font_selected_color",EDITOR_DEF("text_editor/text_selected_color",Color(1,1,1)));
- get_text_edit()->add_color_override("selection_color",EDITOR_DEF("text_editor/selection_color",Color(0.2,0.2,1)));
- get_text_edit()->add_color_override("brace_mismatch_color",EDITOR_DEF("text_editor/brace_mismatch_color",Color(1,0.2,0.2)));
- get_text_edit()->add_color_override("current_line_color",EDITOR_DEF("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15)));
- get_text_edit()->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15)));
- get_text_edit()->add_color_override("number_color",EDITOR_DEF("text_editor/number_color",Color(0.9,0.6,0.0,2)));
- get_text_edit()->add_color_override("function_color",EDITOR_DEF("text_editor/function_color",Color(0.4,0.6,0.8)));
- get_text_edit()->add_color_override("member_variable_color",EDITOR_DEF("text_editor/member_variable_color",Color(0.9,0.3,0.3)));
- get_text_edit()->add_color_override("mark_color", EDITOR_DEF("text_editor/mark_color", Color(1.0,0.4,0.4,0.4)));
- get_text_edit()->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2)));
- get_text_edit()->add_color_override("search_result_color",EDITOR_DEF("text_editor/search_result_color",Color(0.05,0.25,0.05,1)));
- get_text_edit()->add_color_override("search_result_border_color",EDITOR_DEF("text_editor/search_result_border_color",Color(0.1,0.45,0.1,1)));
-
- Color keyword_color= EDITOR_DEF("text_editor/keyword_color",Color(0.5,0.0,0.2));
+ get_text_edit()->add_color_override("background_color", EDITOR_DEF("text_editor/highlighting/background_color",Color(0,0,0,0)));
+ get_text_edit()->add_color_override("completion_background_color", EDITOR_DEF("text_editor/highlighting/completion_background_color", Color(0,0,0,0)));
+ get_text_edit()->add_color_override("completion_selected_color", EDITOR_DEF("text_editor/highlighting/completion_selected_color", Color::html("434244")));
+ get_text_edit()->add_color_override("completion_existing_color", EDITOR_DEF("text_editor/highlighting/completion_existing_color", Color::html("21dfdfdf")));
+ get_text_edit()->add_color_override("completion_scroll_color", EDITOR_DEF("text_editor/highlighting/completion_scroll_color", Color::html("ffffff")));
+ get_text_edit()->add_color_override("completion_font_color", EDITOR_DEF("text_editor/highlighting/completion_font_color", Color::html("aaaaaa")));
+ get_text_edit()->add_color_override("font_color",EDITOR_DEF("text_editor/highlighting/text_color",Color(0,0,0)));
+ get_text_edit()->add_color_override("line_number_color",EDITOR_DEF("text_editor/highlighting/line_number_color",Color(0,0,0)));
+ get_text_edit()->add_color_override("caret_color",EDITOR_DEF("text_editor/highlighting/caret_color",Color(0,0,0)));
+ get_text_edit()->add_color_override("caret_background_color",EDITOR_DEF("text_editor/highlighting/caret_background_color",Color(0,0,0)));
+ get_text_edit()->add_color_override("font_selected_color",EDITOR_DEF("text_editor/highlighting/text_selected_color",Color(1,1,1)));
+ get_text_edit()->add_color_override("selection_color",EDITOR_DEF("text_editor/highlighting/selection_color",Color(0.2,0.2,1)));
+ get_text_edit()->add_color_override("brace_mismatch_color",EDITOR_DEF("text_editor/highlighting/brace_mismatch_color",Color(1,0.2,0.2)));
+ get_text_edit()->add_color_override("current_line_color",EDITOR_DEF("text_editor/highlighting/current_line_color",Color(0.3,0.5,0.8,0.15)));
+ get_text_edit()->add_color_override("word_highlighted_color",EDITOR_DEF("text_editor/highlighting/word_highlighted_color",Color(0.8,0.9,0.9,0.15)));
+ get_text_edit()->add_color_override("number_color",EDITOR_DEF("text_editor/highlighting/number_color",Color(0.9,0.6,0.0,2)));
+ get_text_edit()->add_color_override("function_color",EDITOR_DEF("text_editor/highlighting/function_color",Color(0.4,0.6,0.8)));
+ get_text_edit()->add_color_override("member_variable_color",EDITOR_DEF("text_editor/highlighting/member_variable_color",Color(0.9,0.3,0.3)));
+ get_text_edit()->add_color_override("mark_color", EDITOR_DEF("text_editor/highlighting/mark_color", Color(1.0,0.4,0.4,0.4)));
+ get_text_edit()->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/highlighting/breakpoint_color", Color(0.8,0.8,0.4,0.2)));
+ get_text_edit()->add_color_override("search_result_color",EDITOR_DEF("text_editor/highlighting/search_result_color",Color(0.05,0.25,0.05,1)));
+ get_text_edit()->add_color_override("search_result_border_color",EDITOR_DEF("text_editor/highlighting/search_result_border_color",Color(0.1,0.45,0.1,1)));
+ get_text_edit()->add_color_override("symbol_color",EDITOR_DEF("text_editor/highlighting/symbol_color",Color::hex(0x005291ff)));
+
+ Color keyword_color= EDITOR_DEF("text_editor/highlighting/keyword_color",Color(0.5,0.0,0.2));
List<String> keywords;
- ShaderLanguage::get_keyword_list(type,&keywords);
+ ShaderLanguage::get_keyword_list(&keywords);
+
+ if (shader.is_valid()) {
+
+
+ for(const Map< StringName, Map<StringName,ShaderLanguage::DataType> >::Element *E=ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())).front();E;E=E->next()) {
+
+ for (const Map<StringName,ShaderLanguage::DataType>::Element *F=E->get().front();F;F=F->next()) {
+ keywords.push_back(F->key());
+ }
+
+ }
+
+ for(const Set<String>::Element *E =ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode())).front();E;E=E->next()) {
+
+ keywords.push_back(E->get());
+
+ }
+ }
for(List<String>::Element *E=keywords.front();E;E=E->next()) {
@@ -113,11 +127,11 @@ void ShaderTextEditor::_load_theme_settings() {
}
//colorize core types
-// Color basetype_color= EDITOR_DEF("text_editor/base_type_color",Color(0.3,0.3,0.0));
+ //Color basetype_color= EDITOR_DEF("text_editor/base_type_color",Color(0.3,0.3,0.0));
//colorize comments
- Color comment_color = EDITOR_DEF("text_editor/comment_color",Color::hex(0x797e7eff));
+ Color comment_color = EDITOR_DEF("text_editor/highlighting/comment_color",Color::hex(0x797e7eff));
get_text_edit()->add_color_region("/*","*/",comment_color,false);
get_text_edit()->add_color_region("//","",comment_color,false);
@@ -135,29 +149,36 @@ void ShaderTextEditor::_load_theme_settings() {
String end = string.get_slice_count(" ")>1?string.get_slice(" ",1):String();
get_text_edit()->add_color_region(beg,end,string_color,end=="");
}*/
+}
- //colorize symbols
- Color symbol_color= EDITOR_DEF("text_editor/symbol_color",Color::hex(0x005291ff));
- get_text_edit()->set_symbol_color(symbol_color);
+void ShaderTextEditor::_code_complete_script(const String& p_code, List<String>* r_options) {
-}
+ print_line("code complete");
+ ShaderLanguage sl;
+ String calltip;
-void ShaderTextEditor::_validate_script() {
+ Error err = sl.complete(p_code,ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())),ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode())),r_options,calltip);
- String errortxt;
- int line,col;
+ if (calltip!="") {
+ get_text_edit()->set_code_hint(calltip);
+ }
+}
+
+void ShaderTextEditor::_validate_script() {
String code=get_text_edit()->get_text();
//List<StringName> params;
//shader->get_param_list(&params);
- Error err = ShaderLanguage::compile(code,type,NULL,NULL,&errortxt,&line,&col);
+ ShaderLanguage sl;
+
+ Error err = sl.compile(code,ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())),ShaderTypes::get_singleton()->get_modes(VisualServer::ShaderMode(shader->get_mode())));
if (err!=OK) {
- String error_text="error("+itos(line+1)+","+itos(col+1)+"): "+errortxt;
+ String error_text="error("+itos(sl.get_error_line())+"): "+sl.get_error_text();
set_error(error_text);
- get_text_edit()->set_line_as_marked(line,true);
+ get_text_edit()->set_line_as_marked(sl.get_error_line(),true);
} else {
for(int i=0;i<get_text_edit()->get_line_count();i++)
@@ -187,9 +208,7 @@ ShaderTextEditor::ShaderTextEditor() {
void ShaderEditor::_menu_option(int p_option) {
- ShaderTextEditor *current = tab_container->get_current_tab_control()->cast_to<ShaderTextEditor>();
- if (!current)
- return;
+ ShaderTextEditor *current = shader_editor;
switch(p_option) {
case EDIT_UNDO: {
@@ -234,9 +253,9 @@ void ShaderEditor::_menu_option(int p_option) {
current->get_find_replace_bar()->popup_replace();
} break;
-// case SEARCH_LOCATE_SYMBOL: {
+ //case SEARCH_LOCATE_SYMBOL: {
-// } break;
+ //} break;
case SEARCH_GOTO_LINE: {
goto_line_dialog->popup_find_line(current->get_text_edit());
@@ -245,24 +264,11 @@ void ShaderEditor::_menu_option(int p_option) {
}
}
-void ShaderEditor::_tab_changed(int p_which) {
-
- ShaderTextEditor *shader_editor = tab_container->get_tab_control(p_which)->cast_to<ShaderTextEditor>();
-
- if (shader_editor && is_inside_tree())
- shader_editor->get_text_edit()->grab_focus();
-
- ensure_select_current();
-}
void ShaderEditor::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
- close->set_normal_texture( get_icon("Close","EditorIcons"));
- close->set_hover_texture( get_icon("CloseHover","EditorIcons"));
- close->set_pressed_texture( get_icon("Close","EditorIcons"));
- close->connect("pressed",this,"_close_callback");
}
if (p_what==NOTIFICATION_DRAW) {
@@ -365,27 +371,32 @@ void ShaderEditor::clear() {
void ShaderEditor::_params_changed() {
- fragment_editor->_validate_script();
- vertex_editor->_validate_script();
- light_editor->_validate_script();
+ shader_editor->_validate_script();
}
void ShaderEditor::_editor_settings_changed() {
- vertex_editor->update_editor_settings();
- fragment_editor->update_editor_settings();
- light_editor->update_editor_settings();
+ shader_editor->get_text_edit()->set_auto_brace_completion(EditorSettings::get_singleton()->get("text_editor/completion/auto_brace_complete"));
+ shader_editor->get_text_edit()->set_scroll_pass_end_of_file(EditorSettings::get_singleton()->get("text_editor/cursor/scroll_past_end_of_file"));
+ shader_editor->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/indent/tab_size"));
+ shader_editor->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/indent/draw_tabs"));
+ shader_editor->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_line_numbers"));
+ shader_editor->get_text_edit()->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/highlighting/syntax_highlighting"));
+ shader_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlighting/highlight_all_occurrences"));
+ shader_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink"));
+ shader_editor->get_text_edit()->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink_speed"));
+ shader_editor->get_text_edit()->add_constant_override("line_spacing", EditorSettings::get_singleton()->get("text_editor/theme/line_spacing"));
+ shader_editor->get_text_edit()->cursor_set_block_mode(EditorSettings::get_singleton()->get("text_editor/cursor/block_caret"));
}
void ShaderEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_editor_settings_changed",&ShaderEditor::_editor_settings_changed);
- ObjectTypeDB::bind_method("_tab_changed",&ShaderEditor::_tab_changed);
- ObjectTypeDB::bind_method("_menu_option",&ShaderEditor::_menu_option);
- ObjectTypeDB::bind_method("_params_changed",&ShaderEditor::_params_changed);
- ObjectTypeDB::bind_method("_close_callback",&ShaderEditor::_close_callback);
- ObjectTypeDB::bind_method("apply_shaders",&ShaderEditor::apply_shaders);
-// ObjectTypeDB::bind_method("_close_current_tab",&ShaderEditor::_close_current_tab);
+ ClassDB::bind_method("_editor_settings_changed",&ShaderEditor::_editor_settings_changed);
+
+ ClassDB::bind_method("_menu_option",&ShaderEditor::_menu_option);
+ ClassDB::bind_method("_params_changed",&ShaderEditor::_params_changed);
+ ClassDB::bind_method("apply_shaders",&ShaderEditor::apply_shaders);
+ //ClassDB::bind_method("_close_current_tab",&ShaderEditor::_close_current_tab);
}
void ShaderEditor::ensure_select_current() {
@@ -409,16 +420,7 @@ void ShaderEditor::edit(const Ref<Shader>& p_shader) {
shader=p_shader;
- if (shader->get_mode()==Shader::MODE_MATERIAL) {
- vertex_editor->set_edited_shader(p_shader,ShaderLanguage::SHADER_MATERIAL_VERTEX);
- fragment_editor->set_edited_shader(p_shader,ShaderLanguage::SHADER_MATERIAL_FRAGMENT);
- light_editor->set_edited_shader(shader,ShaderLanguage::SHADER_MATERIAL_LIGHT);
- } else if (shader->get_mode()==Shader::MODE_CANVAS_ITEM) {
-
- vertex_editor->set_edited_shader(p_shader,ShaderLanguage::SHADER_CANVAS_ITEM_VERTEX);
- fragment_editor->set_edited_shader(p_shader,ShaderLanguage::SHADER_CANVAS_ITEM_FRAGMENT);
- light_editor->set_edited_shader(shader,ShaderLanguage::SHADER_CANVAS_ITEM_LIGHT);
- }
+ shader_editor->set_edited_shader(p_shader);
//vertex_editor->set_edited_shader(shader,ShaderLanguage::SHADER_MATERIAL_VERTEX);
// see if already has it
@@ -442,35 +444,21 @@ void ShaderEditor::apply_shaders() {
if (shader.is_valid()) {
- shader->set_code(vertex_editor->get_text_edit()->get_text(),fragment_editor->get_text_edit()->get_text(),light_editor->get_text_edit()->get_text(),0,0);
+ shader->set_code(shader_editor->get_text_edit()->get_text());
shader->set_edited(true);
}
}
-void ShaderEditor::_close_callback() {
-
- hide();
-}
-
ShaderEditor::ShaderEditor() {
- tab_container = memnew( TabContainer );
- add_child(tab_container);
- tab_container->set_area_as_parent_rect();
- tab_container->set_begin(Point2(0,0));
- //tab_container->set_begin(Point2(0,0));
-
- close = memnew( TextureButton );
- close->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_END,20);
- close->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,4);
- close->set_anchor_and_margin(MARGIN_TOP,ANCHOR_BEGIN,2);
- add_child(close);
+ HBoxContainer *hbc = memnew( HBoxContainer);
+ add_child(hbc);
edit_menu = memnew( MenuButton );
- add_child(edit_menu);
+ hbc->add_child(edit_menu);
edit_menu->set_pos(Point2(5,-1));
edit_menu->set_text(TTR("Edit"));
edit_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/undo", TTR("Undo"), KEY_MASK_CMD|KEY_Z), EDIT_UNDO);
@@ -481,11 +469,11 @@ ShaderEditor::ShaderEditor() {
edit_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/paste", TTR("Paste"), KEY_MASK_CMD|KEY_V), EDIT_PASTE);
edit_menu->get_popup()->add_separator();
edit_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/select_all", TTR("Select All"), KEY_MASK_CMD|KEY_A), EDIT_SELECT_ALL);
- edit_menu->get_popup()->connect("item_pressed", this,"_menu_option");
+ edit_menu->get_popup()->connect("id_pressed", this,"_menu_option");
search_menu = memnew( MenuButton );
- add_child(search_menu);
+ hbc->add_child(search_menu);
search_menu->set_pos(Point2(38,-1));
search_menu->set_text(TTR("Search"));
search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find", TTR("Find.."), KEY_MASK_CMD|KEY_F), SEARCH_FIND);
@@ -493,39 +481,20 @@ ShaderEditor::ShaderEditor() {
search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/find_previous", TTR("Find Previous"), KEY_MASK_SHIFT|KEY_F3), SEARCH_FIND_PREV);
search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/replace", TTR("Replace.."), KEY_MASK_CMD|KEY_R), SEARCH_REPLACE);
search_menu->get_popup()->add_separator();
-// search_menu->get_popup()->add_item("Locate Symbol..",SEARCH_LOCATE_SYMBOL,KEY_MASK_CMD|KEY_K);
+ //search_menu->get_popup()->add_item("Locate Symbol..",SEARCH_LOCATE_SYMBOL,KEY_MASK_CMD|KEY_K);
search_menu->get_popup()->add_shortcut(ED_SHORTCUT("script_editor/goto_line", TTR("Goto Line.."), KEY_MASK_CMD|KEY_L), SEARCH_GOTO_LINE);
- search_menu->get_popup()->connect("item_pressed", this,"_menu_option");
-
-
- tab_container->connect("tab_changed", this,"_tab_changed");
-
- erase_tab_confirm = memnew( ConfirmationDialog );
- add_child(erase_tab_confirm);
- erase_tab_confirm->connect("confirmed", this,"_close_current_tab");
+ search_menu->get_popup()->connect("id_pressed", this,"_menu_option");
goto_line_dialog = memnew(GotoLineDialog);
add_child(goto_line_dialog);
- vertex_editor = memnew( ShaderTextEditor );
- tab_container->add_child(vertex_editor);
- vertex_editor->set_name(TTR("Vertex"));
+ shader_editor = memnew( ShaderTextEditor );
+ add_child(shader_editor);
+ shader_editor->set_v_size_flags(SIZE_EXPAND_FILL);
- fragment_editor = memnew( ShaderTextEditor );
- tab_container->add_child(fragment_editor);
- fragment_editor->set_name(TTR("Fragment"));
- light_editor = memnew( ShaderTextEditor );
- tab_container->add_child(light_editor);
- light_editor->set_name(TTR("Lighting"));
-
- tab_container->set_current_tab(1);
-
-
- vertex_editor->connect("script_changed", this,"apply_shaders");
- fragment_editor->connect("script_changed", this,"apply_shaders");
- light_editor->connect("script_changed", this,"apply_shaders");
+ shader_editor->connect("script_changed", this,"apply_shaders");
EditorSettings::get_singleton()->connect("settings_changed",this,"_editor_settings_changed");
_editor_settings_changed();
@@ -535,15 +504,7 @@ ShaderEditor::ShaderEditor() {
void ShaderEditorPlugin::edit(Object *p_object) {
Shader* s = p_object->cast_to<Shader>();
- if (!s || s->cast_to<ShaderGraph>()) {
- shader_editor->hide(); //Dont edit ShaderGraph
- return;
- }
-
- if (_2d && s->get_mode()==Shader::MODE_CANVAS_ITEM)
- shader_editor->edit(s);
- else if (!_2d && s->get_mode()==Shader::MODE_MATERIAL)
- shader_editor->edit(s);
+ shader_editor->edit(s);
}
@@ -551,24 +512,27 @@ bool ShaderEditorPlugin::handles(Object *p_object) const {
bool handles = true;
Shader *shader=p_object->cast_to<Shader>();
+ /*
if (!shader || shader->cast_to<ShaderGraph>()) // Dont handle ShaderGraph's
handles = false;
- if (handles && _2d)
- handles = shader->get_mode()==Shader::MODE_CANVAS_ITEM;
- else if (handles && !_2d)
- return shader->get_mode()==Shader::MODE_MATERIAL;
-
- if (!handles)
- shader_editor->hide();
- return handles;
+ */
+
+ return shader!=NULL;
}
void ShaderEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
- shader_editor->show();
+ button->show();
+ editor->make_bottom_panel_item_visible(shader_editor);
+
} else {
+
+ button->hide();
+ if (shader_editor->is_visible_in_tree())
+ editor->hide_bottom_panel();
shader_editor->apply_shaders();
+
}
}
@@ -602,19 +566,14 @@ void ShaderEditorPlugin::apply_changes() {
shader_editor->apply_shaders();
}
-ShaderEditorPlugin::ShaderEditorPlugin(EditorNode *p_node, bool p_2d) {
+ShaderEditorPlugin::ShaderEditorPlugin(EditorNode *p_node) {
+
editor=p_node;
shader_editor = memnew( ShaderEditor );
- _2d=p_2d;
- if (p_2d)
- add_control_to_container(CONTAINER_CANVAS_EDITOR_BOTTOM,shader_editor);
- else
- add_control_to_container(CONTAINER_SPATIAL_EDITOR_BOTTOM,shader_editor);
-// editor->get_viewport()->add_child(shader_editor);
-// shader_editor->set_area_as_parent_rect();
- shader_editor->hide();
+ shader_editor->set_custom_minimum_size(Size2(0,300));
+ button=editor->add_bottom_panel_item("Shader",shader_editor);
}
@@ -622,3 +581,4 @@ ShaderEditorPlugin::ShaderEditorPlugin(EditorNode *p_node, bool p_2d) {
ShaderEditorPlugin::~ShaderEditorPlugin() {
}
+
diff --git a/tools/editor/plugins/shader_editor_plugin.h b/tools/editor/plugins/shader_editor_plugin.h
index 9219a1fbc2..e94b4d9c25 100644
--- a/tools/editor/plugins/shader_editor_plugin.h
+++ b/tools/editor/plugins/shader_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,33 +38,34 @@
#include "scene/resources/shader.h"
#include "servers/visual/shader_language.h"
-
class ShaderTextEditor : public CodeTextEditor {
- OBJ_TYPE( ShaderTextEditor, CodeTextEditor );
+ GDCLASS( ShaderTextEditor, CodeTextEditor );
Ref<Shader> shader;
- ShaderLanguage::ShaderType type;
protected:
static void _bind_methods();
virtual void _load_theme_settings();
+
+ virtual void _code_complete_script(const String& p_code, List<String>* r_options);
+
public:
virtual void _validate_script();
Ref<Shader> get_edited_shader() const;
- void set_edited_shader(const Ref<Shader>& p_shader,ShaderLanguage::ShaderType p_type);
+ void set_edited_shader(const Ref<Shader>& p_shader);
ShaderTextEditor();
};
-class ShaderEditor : public Control {
+class ShaderEditor : public VBoxContainer {
- OBJ_TYPE(ShaderEditor, Control );
+ GDCLASS(ShaderEditor, VBoxContainer );
enum {
@@ -88,22 +89,17 @@ class ShaderEditor : public Control {
MenuButton *settings_menu;
uint64_t idle;
- TabContainer *tab_container;
GotoLineDialog *goto_line_dialog;
ConfirmationDialog *erase_tab_confirm;
- TextureButton *close;
- ShaderTextEditor *vertex_editor;
- ShaderTextEditor *fragment_editor;
- ShaderTextEditor *light_editor;
+ ShaderTextEditor *shader_editor;
+
- void _tab_changed(int p_which);
void _menu_option(int p_optin);
void _params_changed();
mutable Ref<Shader> shader;
- void _close_callback();
void _editor_settings_changed();
@@ -129,11 +125,13 @@ public:
class ShaderEditorPlugin : public EditorPlugin {
- OBJ_TYPE( ShaderEditorPlugin, EditorPlugin );
+ GDCLASS( ShaderEditorPlugin, EditorPlugin );
bool _2d;
ShaderEditor *shader_editor;
EditorNode *editor;
+ Button *button;
+
public:
virtual String get_name() const { return "Shader"; }
@@ -150,8 +148,9 @@ public:
virtual void save_external_data();
virtual void apply_changes();
- ShaderEditorPlugin(EditorNode *p_node,bool p_2d);
+ ShaderEditorPlugin(EditorNode *p_node);
~ShaderEditorPlugin();
};
+
#endif
diff --git a/tools/editor/plugins/shader_graph_editor_plugin.cpp b/tools/editor/plugins/shader_graph_editor_plugin.cpp
index 3ab906f84e..d86fec11d8 100644
--- a/tools/editor/plugins/shader_graph_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_graph_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,6 +28,7 @@
/*************************************************************************/
#include "shader_graph_editor_plugin.h"
+#if 0
#include "scene/gui/check_box.h"
#include "scene/gui/menu_button.h"
@@ -36,7 +37,7 @@
#include "os/keyboard.h"
#include "canvas_item_editor_plugin.h"
-void GraphColorRampEdit::_input_event(const InputEvent& p_event) {
+void GraphColorRampEdit::_gui_input(const InputEvent& p_event) {
if (p_event.type==InputEvent::KEY && p_event.key.pressed && p_event.key.scancode==KEY_DELETE && grabbed!=-1) {
@@ -295,8 +296,8 @@ Vector<Color> GraphColorRampEdit::get_colors() const{
void GraphColorRampEdit::_bind_methods(){
- ObjectTypeDB::bind_method(_MD("_input_event"),&GraphColorRampEdit::_input_event);
- ObjectTypeDB::bind_method(_MD("_color_changed"),&GraphColorRampEdit::_color_changed);
+ ClassDB::bind_method(_MD("_gui_input"),&GraphColorRampEdit::_gui_input);
+ ClassDB::bind_method(_MD("_color_changed"),&GraphColorRampEdit::_color_changed);
ADD_SIGNAL(MethodInfo("ramp_changed"));
}
@@ -309,13 +310,13 @@ GraphColorRampEdit::GraphColorRampEdit(){
popup = memnew( PopupPanel );
picker = memnew( ColorPicker );
popup->add_child(picker);
- popup->set_child_rect(picker);
+ /popup->set_child_rect(picker);
add_child(popup);
}
////////////
-void GraphCurveMapEdit::_input_event(const InputEvent& p_event) {
+void GraphCurveMapEdit::_gui_input(const InputEvent& p_event) {
if (p_event.type==InputEvent::KEY && p_event.key.pressed && p_event.key.scancode==KEY_DELETE && grabbed!=-1) {
@@ -463,8 +464,7 @@ void GraphCurveMapEdit::_plot_curve(const Vector2& p_a,const Vector2& p_b,const
/* compose the basis and geometry matrices */
- static const float CR_basis[4][4] =
- {
+ static const float CR_basis[4][4] = {
{ -0.5, 1.5, -1.5, 0.5 },
{ 1.0, -2.5, 2.0, -0.5 },
{ -0.5, 0.0, 0.5, 0.0 },
@@ -657,7 +657,7 @@ Vector<Vector2> GraphCurveMapEdit::get_points() const {
void GraphCurveMapEdit::_bind_methods(){
- ObjectTypeDB::bind_method(_MD("_input_event"),&GraphCurveMapEdit::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&GraphCurveMapEdit::_gui_input);
ADD_SIGNAL(MethodInfo("curve_changed"));
}
@@ -985,13 +985,13 @@ void ShaderGraphView::_color_ramp_changed(int p_id,Node* p_ramp) {
Vector<float> offsets=cr->get_offsets();
Vector<Color> colors=cr->get_colors();
- DVector<float> new_offsets;
- DVector<Color> new_colors;
+ PoolVector<float> new_offsets;
+ PoolVector<Color> new_colors;
{
new_offsets.resize(offsets.size());
new_colors.resize(colors.size());
- DVector<float>::Write ow=new_offsets.write();
- DVector<Color>::Write cw=new_colors.write();
+ PoolVector<float>::Write ow=new_offsets.write();
+ PoolVector<Color>::Write cw=new_colors.write();
for(int i=0;i<new_offsets.size();i++) {
ow[i]=offsets[i];
cw[i]=colors[i];
@@ -1000,8 +1000,8 @@ void ShaderGraphView::_color_ramp_changed(int p_id,Node* p_ramp) {
}
- DVector<float> old_offsets=graph->color_ramp_node_get_offsets(type,p_id);
- DVector<Color> old_colors=graph->color_ramp_node_get_colors(type,p_id);
+ PoolVector<float> old_offsets=graph->color_ramp_node_get_offsets(type,p_id);
+ PoolVector<Color> old_colors=graph->color_ramp_node_get_colors(type,p_id);
if (old_offsets.size()!=new_offsets.size())
ur->create_action(TTR("Add/Remove to Color Ramp"));
@@ -1026,10 +1026,10 @@ void ShaderGraphView::_curve_changed(int p_id,Node* p_curve) {
Vector<Point2> points=cr->get_points();
- DVector<Vector2> new_points;
+ PoolVector<Vector2> new_points;
{
new_points.resize(points.size());
- DVector<Vector2>::Write ow=new_points.write();
+ PoolVector<Vector2>::Write ow=new_points.write();
for(int i=0;i<new_points.size();i++) {
ow[i]=points[i];
}
@@ -1037,7 +1037,7 @@ void ShaderGraphView::_curve_changed(int p_id,Node* p_curve) {
}
- DVector<Vector2> old_points=graph->curve_map_node_get_points(type,p_id);
+ PoolVector<Vector2> old_points=graph->curve_map_node_get_points(type,p_id);
if (old_points.size()!=new_points.size())
ur->create_action(TTR("Add/Remove to Curve Map"));
@@ -1377,7 +1377,7 @@ ToolButton *ShaderGraphView::make_editor(String text,GraphNode* gn,int p_id,int
edit->set_icon(ped_popup->get_icon("Matrix", "EditorIcons"));
break;
case Variant::COLOR: {
- Image icon_color = Image(15,15,false,Image::FORMAT_RGB);
+ Image icon_color = Image(15,15,false,Image::FORMAT_RGB8);
Color c = graph->default_get_value(type,p_id,param);
for (int x=1;x<14;x++)
for (int y=1;y<14;y++)
@@ -2130,14 +2130,14 @@ void ShaderGraphView::_create_node(int p_id) {
gn->set_title("ColorRamp");
GraphColorRampEdit * ramp = memnew( GraphColorRampEdit );
- DVector<real_t> offsets = graph->color_ramp_node_get_offsets(type,p_id);
- DVector<Color> colors = graph->color_ramp_node_get_colors(type,p_id);
+ PoolVector<real_t> offsets = graph->color_ramp_node_get_offsets(type,p_id);
+ PoolVector<Color> colors = graph->color_ramp_node_get_colors(type,p_id);
int oc = offsets.size();
if (oc) {
- DVector<real_t>::Read rofs = offsets.read();
- DVector<Color>::Read rcol = colors.read();
+ PoolVector<real_t>::Read rofs = offsets.read();
+ PoolVector<Color>::Read rcol = colors.read();
Vector<float> ofsv;
Vector<Color> colorv;
@@ -2183,12 +2183,12 @@ void ShaderGraphView::_create_node(int p_id) {
gn->set_title("CurveMap");
GraphCurveMapEdit * map = memnew( GraphCurveMapEdit );
- DVector<Vector2> points = graph->curve_map_node_get_points(type,p_id);
+ PoolVector<Vector2> points = graph->curve_map_node_get_points(type,p_id);
int oc = points.size();
if (oc) {
- DVector<Vector2>::Read rofs = points.read();
+ PoolVector<Vector2>::Read rofs = points.read();
Vector<Vector2> ofsv;
@@ -2314,12 +2314,12 @@ void ShaderGraphView::_create_node(int p_id) {
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
le->connect("text_entered",this,"_input_name_changed",varray(p_id,le));
- TextureFrame *tex = memnew( TextureFrame );
+ TextureRect *tex = memnew( TextureRect );
tex->set_expand(true);
tex->set_custom_minimum_size(Size2(80,80));
tex->set_drag_forwarding(this);
gn->add_child(tex);
- tex->set_ignore_mouse(false);
+ tex->set_mouse_filter(MOUSE_FILTER_PASS);
tex->set_texture(graph->texture_input_node_get_value(type,p_id));
ToolButton *edit = memnew( ToolButton );
edit->set_text("edit..");
@@ -2529,7 +2529,7 @@ void ShaderGraphView::_sg_updated() {
Variant ShaderGraphView::get_drag_data_fw(const Point2 &p_point, Control *p_from)
{
- TextureFrame* frame = p_from->cast_to<TextureFrame>();
+ TextureRect* frame = p_from->cast_to<TextureRect>();
if (!frame)
return Variant();
@@ -2575,7 +2575,7 @@ void ShaderGraphView::drop_data_fw(const Point2 &p_point, const Variant &p_data,
if (!can_drop_data_fw(p_point, p_data, p_from))
return;
- TextureFrame *frame = p_from->cast_to<TextureFrame>();
+ TextureRect *frame = p_from->cast_to<TextureRect>();
if (!frame)
return;
@@ -2694,49 +2694,49 @@ void ShaderGraphView::add_node(int p_type, const Vector2 &location) {
void ShaderGraphView::_bind_methods() {
- ObjectTypeDB::bind_method("_update_graph",&ShaderGraphView::_update_graph);
- ObjectTypeDB::bind_method("_begin_node_move", &ShaderGraphView::_begin_node_move);
- ObjectTypeDB::bind_method("_node_moved",&ShaderGraphView::_node_moved);
- ObjectTypeDB::bind_method("_end_node_move", &ShaderGraphView::_end_node_move);
- ObjectTypeDB::bind_method("_move_node",&ShaderGraphView::_move_node);
- ObjectTypeDB::bind_method("_node_removed",&ShaderGraphView::_node_removed);
- ObjectTypeDB::bind_method("_connection_request",&ShaderGraphView::_connection_request);
- ObjectTypeDB::bind_method("_disconnection_request",&ShaderGraphView::_disconnection_request);
- ObjectTypeDB::bind_method("_duplicate_nodes_request", &ShaderGraphView::_duplicate_nodes_request);
- ObjectTypeDB::bind_method("_duplicate_nodes", &ShaderGraphView::_duplicate_nodes);
- ObjectTypeDB::bind_method("_delete_nodes_request", &ShaderGraphView::_delete_nodes_request);
-
- ObjectTypeDB::bind_method("_default_changed",&ShaderGraphView::_default_changed);
- ObjectTypeDB::bind_method("_scalar_const_changed",&ShaderGraphView::_scalar_const_changed);
- ObjectTypeDB::bind_method("_vec_const_changed",&ShaderGraphView::_vec_const_changed);
- ObjectTypeDB::bind_method("_rgb_const_changed",&ShaderGraphView::_rgb_const_changed);
- ObjectTypeDB::bind_method("_xform_const_changed",&ShaderGraphView::_xform_const_changed);
- ObjectTypeDB::bind_method("_scalar_op_changed",&ShaderGraphView::_scalar_op_changed);
- ObjectTypeDB::bind_method("_vec_op_changed",&ShaderGraphView::_vec_op_changed);
- ObjectTypeDB::bind_method("_vec_scalar_op_changed",&ShaderGraphView::_vec_scalar_op_changed);
- ObjectTypeDB::bind_method("_rgb_op_changed",&ShaderGraphView::_rgb_op_changed);
- ObjectTypeDB::bind_method("_xform_inv_rev_changed",&ShaderGraphView::_xform_inv_rev_changed);
- ObjectTypeDB::bind_method("_scalar_func_changed",&ShaderGraphView::_scalar_func_changed);
- ObjectTypeDB::bind_method("_vec_func_changed",&ShaderGraphView::_vec_func_changed);
- ObjectTypeDB::bind_method("_scalar_input_changed",&ShaderGraphView::_scalar_input_changed);
- ObjectTypeDB::bind_method("_vec_input_changed",&ShaderGraphView::_vec_input_changed);
- ObjectTypeDB::bind_method("_xform_input_changed",&ShaderGraphView::_xform_input_changed);
- ObjectTypeDB::bind_method("_rgb_input_changed",&ShaderGraphView::_rgb_input_changed);
- ObjectTypeDB::bind_method("_tex_input_change",&ShaderGraphView::_tex_input_change);
- ObjectTypeDB::bind_method("_cube_input_change",&ShaderGraphView::_cube_input_change);
- ObjectTypeDB::bind_method("_input_name_changed",&ShaderGraphView::_input_name_changed);
- ObjectTypeDB::bind_method("_tex_edited",&ShaderGraphView::_tex_edited);
- ObjectTypeDB::bind_method("_variant_edited",&ShaderGraphView::_variant_edited);
- ObjectTypeDB::bind_method("_cube_edited",&ShaderGraphView::_cube_edited);
- ObjectTypeDB::bind_method("_comment_edited",&ShaderGraphView::_comment_edited);
- ObjectTypeDB::bind_method("_color_ramp_changed",&ShaderGraphView::_color_ramp_changed);
- ObjectTypeDB::bind_method("_curve_changed",&ShaderGraphView::_curve_changed);
-
- ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &ShaderGraphView::get_drag_data_fw);
- ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &ShaderGraphView::can_drop_data_fw);
- ObjectTypeDB::bind_method(_MD("drop_data_fw"), &ShaderGraphView::drop_data_fw);
-
- ObjectTypeDB::bind_method("_sg_updated",&ShaderGraphView::_sg_updated);
+ ClassDB::bind_method("_update_graph",&ShaderGraphView::_update_graph);
+ ClassDB::bind_method("_begin_node_move", &ShaderGraphView::_begin_node_move);
+ ClassDB::bind_method("_node_moved",&ShaderGraphView::_node_moved);
+ ClassDB::bind_method("_end_node_move", &ShaderGraphView::_end_node_move);
+ ClassDB::bind_method("_move_node",&ShaderGraphView::_move_node);
+ ClassDB::bind_method("_node_removed",&ShaderGraphView::_node_removed);
+ ClassDB::bind_method("_connection_request",&ShaderGraphView::_connection_request);
+ ClassDB::bind_method("_disconnection_request",&ShaderGraphView::_disconnection_request);
+ ClassDB::bind_method("_duplicate_nodes_request", &ShaderGraphView::_duplicate_nodes_request);
+ ClassDB::bind_method("_duplicate_nodes", &ShaderGraphView::_duplicate_nodes);
+ ClassDB::bind_method("_delete_nodes_request", &ShaderGraphView::_delete_nodes_request);
+
+ ClassDB::bind_method("_default_changed",&ShaderGraphView::_default_changed);
+ ClassDB::bind_method("_scalar_const_changed",&ShaderGraphView::_scalar_const_changed);
+ ClassDB::bind_method("_vec_const_changed",&ShaderGraphView::_vec_const_changed);
+ ClassDB::bind_method("_rgb_const_changed",&ShaderGraphView::_rgb_const_changed);
+ ClassDB::bind_method("_xform_const_changed",&ShaderGraphView::_xform_const_changed);
+ ClassDB::bind_method("_scalar_op_changed",&ShaderGraphView::_scalar_op_changed);
+ ClassDB::bind_method("_vec_op_changed",&ShaderGraphView::_vec_op_changed);
+ ClassDB::bind_method("_vec_scalar_op_changed",&ShaderGraphView::_vec_scalar_op_changed);
+ ClassDB::bind_method("_rgb_op_changed",&ShaderGraphView::_rgb_op_changed);
+ ClassDB::bind_method("_xform_inv_rev_changed",&ShaderGraphView::_xform_inv_rev_changed);
+ ClassDB::bind_method("_scalar_func_changed",&ShaderGraphView::_scalar_func_changed);
+ ClassDB::bind_method("_vec_func_changed",&ShaderGraphView::_vec_func_changed);
+ ClassDB::bind_method("_scalar_input_changed",&ShaderGraphView::_scalar_input_changed);
+ ClassDB::bind_method("_vec_input_changed",&ShaderGraphView::_vec_input_changed);
+ ClassDB::bind_method("_xform_input_changed",&ShaderGraphView::_xform_input_changed);
+ ClassDB::bind_method("_rgb_input_changed",&ShaderGraphView::_rgb_input_changed);
+ ClassDB::bind_method("_tex_input_change",&ShaderGraphView::_tex_input_change);
+ ClassDB::bind_method("_cube_input_change",&ShaderGraphView::_cube_input_change);
+ ClassDB::bind_method("_input_name_changed",&ShaderGraphView::_input_name_changed);
+ ClassDB::bind_method("_tex_edited",&ShaderGraphView::_tex_edited);
+ ClassDB::bind_method("_variant_edited",&ShaderGraphView::_variant_edited);
+ ClassDB::bind_method("_cube_edited",&ShaderGraphView::_cube_edited);
+ ClassDB::bind_method("_comment_edited",&ShaderGraphView::_comment_edited);
+ ClassDB::bind_method("_color_ramp_changed",&ShaderGraphView::_color_ramp_changed);
+ ClassDB::bind_method("_curve_changed",&ShaderGraphView::_curve_changed);
+
+ ClassDB::bind_method(_MD("get_drag_data_fw"), &ShaderGraphView::get_drag_data_fw);
+ ClassDB::bind_method(_MD("can_drop_data_fw"), &ShaderGraphView::can_drop_data_fw);
+ ClassDB::bind_method(_MD("drop_data_fw"), &ShaderGraphView::drop_data_fw);
+
+ ClassDB::bind_method("_sg_updated",&ShaderGraphView::_sg_updated);
}
ShaderGraphView::ShaderGraphView(ShaderGraph::ShaderType p_type) {
@@ -2806,7 +2806,7 @@ void ShaderGraphEditor::_notification(int p_what) {
if (addsep)
popup->add_separator();
}
- popup->connect("item_pressed",this,"_add_node");
+ popup->connect("id_pressed",this,"_add_node");
}
@@ -2814,8 +2814,8 @@ void ShaderGraphEditor::_notification(int p_what) {
void ShaderGraphEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_add_node",&ShaderGraphEditor::_add_node);
- ObjectTypeDB::bind_method("_popup_requested",&ShaderGraphEditor::_popup_requested);
+ ClassDB::bind_method("_add_node",&ShaderGraphEditor::_add_node);
+ ClassDB::bind_method("_popup_requested",&ShaderGraphEditor::_popup_requested);
}
@@ -2932,9 +2932,9 @@ ShaderGraphEditorPlugin::ShaderGraphEditorPlugin(EditorNode *p_node, bool p_2d)
SpatialEditor::get_singleton()->get_shader_split()->add_child(shader_editor);
- // editor->get_viewport()->add_child(shader_editor);
- // shader_editor->set_area_as_parent_rect();
- // shader_editor->hide();
+ //editor->get_viewport()->add_child(shader_editor);
+ //shader_editor->set_area_as_parent_rect();
+ //shader_editor->hide();
}
@@ -2945,3 +2945,4 @@ ShaderGraphEditorPlugin::~ShaderGraphEditorPlugin()
+#endif
diff --git a/tools/editor/plugins/shader_graph_editor_plugin.h b/tools/editor/plugins/shader_graph_editor_plugin.h
index 67ee5e2d45..477a45bd1f 100644
--- a/tools/editor/plugins/shader_graph_editor_plugin.h
+++ b/tools/editor/plugins/shader_graph_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -43,10 +43,10 @@
@author Juan Linietsky <reduzio@gmail.com>
*/
-
+#if 0
class GraphColorRampEdit : public Control {
- OBJ_TYPE(GraphColorRampEdit,Control);
+ GDCLASS(GraphColorRampEdit,Control);
struct Point {
@@ -70,7 +70,7 @@ class GraphColorRampEdit : public Control {
void _color_changed(const Color& p_color);
protected:
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void _notification(int p_what);
static void _bind_methods();
public:
@@ -85,7 +85,7 @@ public:
class GraphCurveMapEdit : public Control {
- OBJ_TYPE(GraphCurveMapEdit,Control);
+ GDCLASS(GraphCurveMapEdit,Control);
struct Point {
@@ -104,7 +104,7 @@ class GraphCurveMapEdit : public Control {
void _plot_curve(const Vector2& p_a,const Vector2& p_b,const Vector2& p_c,const Vector2& p_d);
protected:
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void _notification(int p_what);
static void _bind_methods();
public:
@@ -117,7 +117,7 @@ public:
class ShaderGraphView : public Control {
- OBJ_TYPE(ShaderGraphView,Control);
+ GDCLASS(ShaderGraphView,Control);
@@ -198,7 +198,7 @@ public:
class ShaderGraphEditor : public VBoxContainer {
- OBJ_TYPE(ShaderGraphEditor,VBoxContainer);
+ GDCLASS(ShaderGraphEditor,VBoxContainer);
PopupMenu *popup;
TabContainer *tabs;
@@ -220,7 +220,7 @@ public:
class ShaderGraphEditorPlugin : public EditorPlugin {
- OBJ_TYPE( ShaderGraphEditorPlugin, EditorPlugin );
+ GDCLASS( ShaderGraphEditorPlugin, EditorPlugin );
bool _2d;
ShaderGraphEditor *shader_editor;
@@ -239,4 +239,4 @@ public:
};
#endif
-
+#endif
diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp
index 6dcc71422a..9f8367ff1d 100644
--- a/tools/editor/plugins/spatial_editor_plugin.cpp
+++ b/tools/editor/plugins/spatial_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,8 +27,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "spatial_editor_plugin.h"
-#include "print_string.h"
+#include "print_string.h"
#include "os/keyboard.h"
#include "scene/3d/visual_instance.h"
#include "scene/3d/camera.h"
@@ -61,8 +61,8 @@ void SpatialEditorViewport::_update_camera() {
Transform camera_transform;
camera_transform.translate(cursor.pos);
- camera_transform.basis.rotate(Vector3(0, 1, 0), cursor.y_rot);
- camera_transform.basis.rotate(Vector3(1, 0, 0), cursor.x_rot);
+ camera_transform.basis.rotate(Vector3(1, 0, 0), -cursor.x_rot);
+ camera_transform.basis.rotate(Vector3(0, 1, 0), -cursor.y_rot);
if (orthogonal)
camera_transform.translate(0, 0, 4096);
@@ -274,11 +274,11 @@ ObjectID SpatialEditorViewport::_select_ray(const Point2& p_pos, bool p_append,b
Vector3 ray=_get_ray(p_pos);
Vector3 pos=_get_ray_pos(p_pos);
- Vector<RID> instances=VisualServer::get_singleton()->instances_cull_ray(pos,ray,get_tree()->get_root()->get_world()->get_scenario() );
+ Vector<ObjectID> instances=VisualServer::get_singleton()->instances_cull_ray(pos,ray,get_tree()->get_root()->get_world()->get_scenario() );
Set<Ref<SpatialEditorGizmo> > found_gizmos;
//uint32_t closest=0;
-// float closest_dist=0;
+ //float closest_dist=0;
r_includes_current=false;
@@ -286,8 +286,7 @@ ObjectID SpatialEditorViewport::_select_ray(const Point2& p_pos, bool p_append,b
for (int i=0;i<instances.size();i++) {
- uint32_t id=VisualServer::get_singleton()->instance_get_object_instance_ID(instances[i]);
- Object *obj=ObjectDB::get_instance(id);
+ Object *obj=ObjectDB::get_instance(instances[i]);
if (!obj)
continue;
@@ -405,15 +404,15 @@ void SpatialEditorViewport::_find_items_at_pos(const Point2& p_pos,bool &r_inclu
Vector3 ray=_get_ray(p_pos);
Vector3 pos=_get_ray_pos(p_pos);
- Vector<RID> instances=VisualServer::get_singleton()->instances_cull_ray(pos,ray,get_tree()->get_root()->get_world()->get_scenario() );
+ Vector<ObjectID> instances=VisualServer::get_singleton()->instances_cull_ray(pos,ray,get_tree()->get_root()->get_world()->get_scenario() );
Set<Ref<SpatialEditorGizmo> > found_gizmos;
r_includes_current=false;
for (int i=0;i<instances.size();i++) {
- uint32_t id=VisualServer::get_singleton()->instance_get_object_instance_ID(instances[i]);
- Object *obj=ObjectDB::get_instance(id);
+ Object *obj=ObjectDB::get_instance(instances[i]);
+
if (!obj)
continue;
@@ -469,14 +468,14 @@ Vector3 SpatialEditorViewport::_get_screen_to_space(const Vector3& p_pos) {
CameraMatrix cm;
- cm.set_perspective(get_fov(),get_size().get_aspect(),get_znear(),get_zfar());
+ cm.set_perspective(get_fov(),get_size().aspect(),get_znear(),get_zfar());
float screen_w,screen_h;
cm.get_viewport_size(screen_w,screen_h);
Transform camera_transform;
camera_transform.translate( cursor.pos );
- camera_transform.basis.rotate(Vector3(0,1,0),cursor.y_rot);
- camera_transform.basis.rotate(Vector3(1,0,0),cursor.x_rot);
+ camera_transform.basis.rotate(Vector3(1,0,0),-cursor.x_rot);
+ camera_transform.basis.rotate(Vector3(0,1,0),-cursor.y_rot);
camera_transform.translate(0,0,cursor.distance);
return camera_transform.xform(Vector3( ((p_pos.x/get_size().width)*2.0-1.0)*screen_w, ((1.0-(p_pos.y/get_size().height))*2.0-1.0)*screen_h,-get_znear()));
@@ -534,14 +533,12 @@ void SpatialEditorViewport::_select_region() {
frustum.push_back( far );
- Vector<RID> instances=VisualServer::get_singleton()->instances_cull_convex(frustum,get_tree()->get_root()->get_world()->get_scenario());
+ Vector<ObjectID> instances=VisualServer::get_singleton()->instances_cull_convex(frustum,get_tree()->get_root()->get_world()->get_scenario());
for (int i=0;i<instances.size();i++) {
- uint32_t id=VisualServer::get_singleton()->instance_get_object_instance_ID(instances[i]);
-
- Object *obj=ObjectDB::get_instance(id);
+ Object *obj=ObjectDB::get_instance(instances[i]);
if (!obj)
continue;
Spatial *sp = obj->cast_to<Spatial>();
@@ -583,8 +580,8 @@ void SpatialEditorViewport::_compute_edit(const Point2& p_point) {
List<Node*> &selection = editor_selection->get_selected_node_list();
-// Vector3 center;
-// int nc=0;
+ //Vector3 center;
+ //int nc=0;
for(List<Node*>::Element *E=selection.front();E;E=E->next()) {
Spatial *sp = E->get()->cast_to<Spatial>();
@@ -596,16 +593,14 @@ void SpatialEditorViewport::_compute_edit(const Point2& p_point) {
continue;
se->original=se->sp->get_global_transform();
-// center+=se->original.origin;
-// nc++;
+ //center+=se->original.origin;
+ //nc++;
}
-
-// if (nc)
-// _edit.center=center/float(nc);
-
-
-
+ /*
+ if (nc)
+ _edit.center=center/float(nc);
+ */
}
static int _get_key_modifier(const String& p_property) {
@@ -621,23 +616,6 @@ static int _get_key_modifier(const String& p_property) {
return 0;
}
-SpatialEditorViewport::NavigationScheme SpatialEditorViewport::_get_navigation_schema(const String& p_property) {
- switch(EditorSettings::get_singleton()->get(p_property).operator int()) {
- case 0: return NAVIGATION_GODOT;
- case 1: return NAVIGATION_MAYA;
- case 2: return NAVIGATION_MODO;
- }
- return NAVIGATION_GODOT;
-}
-
-SpatialEditorViewport::NavigationZoomStyle SpatialEditorViewport::_get_navigation_zoom_style(const String& p_property) {
- switch(EditorSettings::get_singleton()->get(p_property).operator int()) {
- case 0: return NAVIGATION_ZOOM_VERTICAL;
- case 1: return NAVIGATION_ZOOM_HORIZONTAL;
- }
- return NAVIGATION_ZOOM_VERTICAL;
-}
-
bool SpatialEditorViewport::_gizmo_select(const Vector2& p_screenpos,bool p_hilite_only) {
if (!spatial_editor->is_gizmo_visible())
@@ -795,7 +773,7 @@ void SpatialEditorViewport::_list_select(InputEventMouseButton b) {
if (spat->has_meta("_editor_icon"))
icon=spat->get_meta("_editor_icon");
else
- icon=get_icon( has_icon(spat->get_type(),"EditorIcons")?spat->get_type():String("Object"),"EditorIcons");
+ icon=get_icon( has_icon(spat->get_class(),"EditorIcons")?spat->get_class():String("Object"),"EditorIcons");
String node_path="/"+root_name+"/"+root_path.rel_path_to(spat->get_path());
@@ -803,7 +781,7 @@ void SpatialEditorViewport::_list_select(InputEventMouseButton b) {
selection_menu->set_item_icon(i, icon );
selection_menu->set_item_metadata(i, node_path);
selection_menu->set_item_tooltip(i,String(spat->get_name())+
- "\nType: "+spat->get_type()+"\nPath: "+node_path);
+ "\nType: "+spat->get_class()+"\nPath: "+node_path);
}
selection_menu->set_global_pos(Vector2( b.global_x, b.global_y ));
@@ -827,7 +805,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
EditorPluginList *over_plugin_list = en->get_editor_plugins_over();
if (!over_plugin_list->empty()) {
- bool discard = over_plugin_list->forward_spatial_input_event(camera,p_event);
+ bool discard = over_plugin_list->forward_spatial_gui_input(camera,p_event);
if (discard)
return;
}
@@ -857,7 +835,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
} break;
case BUTTON_RIGHT: {
- NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme");
+ NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation_scheme").operator int();
if (b.pressed && _edit.gizmo.is_valid()) {
//restore
@@ -877,7 +855,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
if (b.mod.control) {
- Vector<RID> instances=VisualServer::get_singleton()->instances_cull_ray(ray_origin,ray_dir,get_tree()->get_root()->get_world()->get_scenario() );
+ Vector<ObjectID> instances=VisualServer::get_singleton()->instances_cull_ray(ray_origin,ray_dir,get_tree()->get_root()->get_world()->get_scenario() );
Plane p(ray_origin,_get_camera_normal());
@@ -886,8 +864,9 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
for (int i=0;i<instances.size();i++) {
- uint32_t id=VisualServer::get_singleton()->instance_get_object_instance_ID(instances[i]);
- Object *obj=ObjectDB::get_instance(id);
+
+ Object *obj=ObjectDB::get_instance(instances[i]);
+
if (!obj)
continue;
@@ -896,14 +875,14 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
continue;
//optimize by checking AABB (although should pre sort by distance)
- AABB aabb = vi->get_global_transform().xform(vi->get_aabb());
+ Rect3 aabb = vi->get_global_transform().xform(vi->get_aabb());
if (p.distance_to(aabb.get_support(-ray_dir))>min_d)
continue;
- DVector<Face3> faces = vi->get_faces(VisualInstance::FACES_SOLID);
+ PoolVector<Face3> faces = vi->get_faces(VisualInstance::FACES_SOLID);
int c = faces.size();
if (c>0) {
- DVector<Face3>::Read r = faces.read();
+ PoolVector<Face3>::Read r = faces.read();
for(int j=0;j<c;j++) {
@@ -1016,7 +995,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
if (b.pressed) {
- NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme");
+ NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation_scheme").operator int();
if ( (nav_scheme==NAVIGATION_MAYA || nav_scheme==NAVIGATION_MODO) && b.mod.alt) {
break;
}
@@ -1253,7 +1232,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
}
- NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme");
+ NavigationScheme nav_scheme = (NavigationScheme)EditorSettings::get_singleton()->get("editors/3d/navigation_scheme").operator int();
NavigationMode nav_mode = NAVIGATION_NONE;
if (_edit.gizmo.is_valid()) {
@@ -1354,7 +1333,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
Transform original=se->original;
- Transform base=Transform( Matrix3(), _edit.center);
+ Transform base=Transform( Basis(), _edit.center);
Transform t=base * (r * (base.inverse() * original));
sp->set_global_transform(t);
@@ -1486,7 +1465,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
Transform r;
- r.basis.rotate(plane.normal,-angle);
+ r.basis.rotate(plane.normal,angle);
List<Node*> &selection = editor_selection->get_selected_node_list();
@@ -1503,8 +1482,8 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
Transform original=se->original;
- Transform base=Transform( Matrix3(), _edit.center);
- Transform t=base * (r * (base.inverse() * original));
+ Transform base=Transform( Basis(), _edit.center);
+ Transform t=base * r * base.inverse() * original;
sp->set_global_transform(t);
}
@@ -1548,11 +1527,11 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
if (m.mod.meta)
mod=KEY_META;
- if (mod == _get_key_modifier("3d_editor/pan_modifier"))
+ if (mod == _get_key_modifier("editors/3d/pan_modifier"))
nav_mode = NAVIGATION_PAN;
- else if (mod == _get_key_modifier("3d_editor/zoom_modifier"))
+ else if (mod == _get_key_modifier("editors/3d/zoom_modifier"))
nav_mode = NAVIGATION_ZOOM;
- else if (mod == _get_key_modifier("3d_editor/orbit_modifier"))
+ else if (mod == _get_key_modifier("editors/3d/orbit_modifier"))
nav_mode = NAVIGATION_ORBIT;
} else if (nav_scheme == NAVIGATION_MAYA) {
@@ -1560,7 +1539,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
nav_mode = NAVIGATION_PAN;
}
- } else if (EditorSettings::get_singleton()->get("3d_editor/emulate_3_button_mouse")) {
+ } else if (EditorSettings::get_singleton()->get("editors/3d/emulate_3_button_mouse")) {
// Handle trackpad (no external mouse) use case
int mod = 0;
if (m.mod.shift)
@@ -1573,11 +1552,11 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
mod=KEY_META;
if(mod){
- if (mod == _get_key_modifier("3d_editor/pan_modifier"))
+ if (mod == _get_key_modifier("editors/3d/pan_modifier"))
nav_mode = NAVIGATION_PAN;
- else if (mod == _get_key_modifier("3d_editor/zoom_modifier"))
+ else if (mod == _get_key_modifier("editors/3d/zoom_modifier"))
nav_mode = NAVIGATION_ZOOM;
- else if (mod == _get_key_modifier("3d_editor/orbit_modifier"))
+ else if (mod == _get_key_modifier("editors/3d/orbit_modifier"))
nav_mode = NAVIGATION_ORBIT;
}
}
@@ -1593,8 +1572,8 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
Transform camera_transform;
camera_transform.translate(cursor.pos);
- camera_transform.basis.rotate(Vector3(0,1,0),cursor.y_rot);
- camera_transform.basis.rotate(Vector3(1,0,0),cursor.x_rot);
+ camera_transform.basis.rotate(Vector3(1,0,0),-cursor.x_rot);
+ camera_transform.basis.rotate(Vector3(0,1,0),-cursor.y_rot);
Vector3 translation(-m.relative_x*pan_speed,m.relative_y*pan_speed,0);
translation*=cursor.distance/DISTANCE_DEFAULT;
camera_transform.translate(translation);
@@ -1608,7 +1587,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
if (nav_scheme==NAVIGATION_MAYA && m.mod.shift)
zoom_speed *= zoom_speed_modifier;
- NavigationZoomStyle zoom_style = _get_navigation_zoom_style("3d_editor/zoom_style");
+ NavigationZoomStyle zoom_style = (NavigationZoomStyle)EditorSettings::get_singleton()->get("editors/3d/zoom_style").operator int();
if (zoom_style == NAVIGATION_ZOOM_HORIZONTAL) {
if ( m.relative_x > 0)
cursor.distance*=1-m.relative_x*zoom_speed;
@@ -1742,7 +1721,7 @@ void SpatialEditorViewport::_notification(int p_what) {
if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
- bool visible=is_visible();
+ bool visible=is_visible_in_tree();
set_process(visible);
@@ -1793,7 +1772,7 @@ void SpatialEditorViewport::_notification(int p_what) {
if (se->aabb.has_no_surface()) {
- se->aabb=vi?vi->get_aabb():AABB( Vector3(-0.2,-0.2,-0.2),Vector3(0.4,0.4,0.4));
+ se->aabb=vi?vi->get_aabb():Rect3( Vector3(-0.2,-0.2,-0.2),Vector3(0.4,0.4,0.4));
}
Transform t=sp->get_global_transform();
@@ -1825,13 +1804,37 @@ void SpatialEditorViewport::_notification(int p_what) {
surface->update();
}
+ //update shadow atlas if changed
+
+ int shadowmap_size = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/size");
+ int atlas_q0 = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/quadrant_0_subdiv");
+ int atlas_q1 = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/quadrant_1_subdiv");
+ int atlas_q2 = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/quadrant_2_subdiv");
+ int atlas_q3 = GlobalConfig::get_singleton()->get("rendering/shadow_atlas/quadrant_3_subdiv");
+
+
+ viewport->set_shadow_atlas_size(shadowmap_size);
+ viewport->set_shadow_atlas_quadrant_subdiv(0,Viewport::ShadowAtlasQuadrantSubdiv(atlas_q0));
+ viewport->set_shadow_atlas_quadrant_subdiv(1,Viewport::ShadowAtlasQuadrantSubdiv(atlas_q1));
+ viewport->set_shadow_atlas_quadrant_subdiv(2,Viewport::ShadowAtlasQuadrantSubdiv(atlas_q2));
+ viewport->set_shadow_atlas_quadrant_subdiv(3,Viewport::ShadowAtlasQuadrantSubdiv(atlas_q3));
+
+ //update msaa if changed
+
+ int msaa_mode = GlobalConfig::get_singleton()->get("rendering/quality/msaa");
+ viewport->set_msaa(Viewport::MSAA(msaa_mode));
+
+ bool hdr = GlobalConfig::get_singleton()->get("rendering/quality/hdr");
+ viewport->set_hdr(hdr);
+
+
}
if (p_what==NOTIFICATION_ENTER_TREE) {
surface->connect("draw",this,"_draw");
- surface->connect("input_event",this,"_sinput");
- surface->connect("mouse_enter",this,"_smouseenter");
+ surface->connect("gui_input",this,"_sinput");
+ surface->connect("mouse_entered",this,"_smouseenter");
preview_camera->set_icon(get_icon("Camera","EditorIcons"));
_init_gizmo_instance(index);
}
@@ -1892,8 +1895,8 @@ void SpatialEditorViewport::_draw() {
if (previewing) {
- Size2 ss = Size2( Globals::get_singleton()->get("display/width"), Globals::get_singleton()->get("display/height") );
- float aspect = ss.get_aspect();
+ Size2 ss = Size2( GlobalConfig::get_singleton()->get("display/width"), GlobalConfig::get_singleton()->get("display/height") );
+ float aspect = ss.aspect();
Size2 s = get_size();
Rect2 draw_rect;
@@ -2066,9 +2069,9 @@ void SpatialEditorViewport::_menu_option(int p_option) {
bool current = view_menu->get_popup()->is_item_checked( idx );
current=!current;
if (current)
- camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_EDIT_LAYER)|(1<<GIZMO_GRID_LAYER) );
+ camera->set_cull_mask( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_EDIT_LAYER)|(1<<GIZMO_GRID_LAYER) );
else
- camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_GRID_LAYER) );
+ camera->set_cull_mask( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+index))|(1<<GIZMO_GRID_LAYER) );
view_menu->get_popup()->set_item_checked( idx, current );
} break;
@@ -2094,7 +2097,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
move_gizmo_instance[i]=VS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(move_gizmo_instance[i],spatial_editor->get_move_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(move_gizmo_instance[i],get_tree()->get_root()->get_world()->get_scenario());
- VS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i],VS::INSTANCE_FLAG_VISIBLE,false);
+ VS::get_singleton()->instance_set_visible(move_gizmo_instance[i],false);
//VS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(move_gizmo_instance[i],layer);
@@ -2102,7 +2105,7 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
rotate_gizmo_instance[i]=VS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(rotate_gizmo_instance[i],spatial_editor->get_rotate_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(rotate_gizmo_instance[i],get_tree()->get_root()->get_world()->get_scenario());
- VS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i],VS::INSTANCE_FLAG_VISIBLE,false);
+ VS::get_singleton()->instance_set_visible(rotate_gizmo_instance[i],false);
//VS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[i],layer);
@@ -2128,9 +2131,9 @@ void SpatialEditorViewport::_toggle_camera_preview(bool p_activate) {
if (!p_activate) {
- previewing->disconnect("exit_tree",this,"_preview_exited_scene");
+ previewing->disconnect("tree_exited",this,"_preview_exited_scene");
previewing=NULL;
- VS::get_singleton()->viewport_attach_camera( viewport->get_viewport(), camera->get_camera() ); //restore
+ VS::get_singleton()->viewport_attach_camera( viewport->get_viewport_rid(), camera->get_camera() ); //restore
if (!preview)
preview_camera->hide();
view_menu->show();
@@ -2139,8 +2142,8 @@ void SpatialEditorViewport::_toggle_camera_preview(bool p_activate) {
} else {
previewing=preview;
- previewing->connect("exit_tree",this,"_preview_exited_scene");
- VS::get_singleton()->viewport_attach_camera( viewport->get_viewport(), preview->get_camera() ); //replace
+ previewing->connect("tree_exited",this,"_preview_exited_scene");
+ VS::get_singleton()->viewport_attach_camera( viewport->get_viewport_rid(), preview->get_camera() ); //replace
view_menu->hide();
surface->update();
@@ -2183,7 +2186,7 @@ void SpatialEditorViewport::set_can_preview(Camera* p_preview) {
void SpatialEditorViewport::update_transform_gizmo_view() {
- if (!is_visible())
+ if (!is_visible_in_tree())
return;
Transform xform = spatial_editor->get_gizmo_transform();
@@ -2200,7 +2203,7 @@ void SpatialEditorViewport::update_transform_gizmo_view() {
if (dd==0)
dd=0.0001;
- float gsize = EditorSettings::get_singleton()->get("3d_editor/manipulator_gizmo_size");
+ float gsize = EditorSettings::get_singleton()->get("editors/3d/manipulator_gizmo_size");
gizmo_scale=(gsize/Math::abs(dd));
Vector3 scale = Vector3(1,1,1) * gizmo_scale;
@@ -2211,9 +2214,9 @@ void SpatialEditorViewport::update_transform_gizmo_view() {
for(int i=0;i<3;i++) {
VisualServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], xform );
- VisualServer::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i],VS::INSTANCE_FLAG_VISIBLE,spatial_editor->is_gizmo_visible()&& (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_MOVE) );
+ VisualServer::get_singleton()->instance_set_visible(move_gizmo_instance[i],spatial_editor->is_gizmo_visible()&& (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_MOVE) );
VisualServer::get_singleton()->instance_set_transform(rotate_gizmo_instance[i], xform );
- VisualServer::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i],VS::INSTANCE_FLAG_VISIBLE,spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_ROTATE) );
+ VisualServer::get_singleton()->instance_set_visible(rotate_gizmo_instance[i],spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode()==SpatialEditor::TOOL_MODE_ROTATE) );
}
}
@@ -2244,8 +2247,8 @@ void SpatialEditorViewport::set_state(const Dictionary& p_state) {
Node *pv = EditorNode::get_singleton()->get_edited_scene()->get_node(p_state["previewing"]);
if (pv && pv->cast_to<Camera>()) {
previewing=pv->cast_to<Camera>();
- previewing->connect("exit_tree",this,"_preview_exited_scene");
- VS::get_singleton()->viewport_attach_camera( viewport->get_viewport(), previewing->get_camera() ); //replace
+ previewing->connect("tree_exited",this,"_preview_exited_scene");
+ VS::get_singleton()->viewport_attach_camera( viewport->get_viewport_rid(), previewing->get_camera() ); //replace
view_menu->hide();
surface->update();
preview_camera->set_pressed(true);
@@ -2274,15 +2277,15 @@ Dictionary SpatialEditorViewport::get_state() const {
void SpatialEditorViewport::_bind_methods(){
- ObjectTypeDB::bind_method(_MD("_draw"),&SpatialEditorViewport::_draw);
- ObjectTypeDB::bind_method(_MD("_smouseenter"),&SpatialEditorViewport::_smouseenter);
- ObjectTypeDB::bind_method(_MD("_sinput"),&SpatialEditorViewport::_sinput);
- ObjectTypeDB::bind_method(_MD("_menu_option"),&SpatialEditorViewport::_menu_option);
- ObjectTypeDB::bind_method(_MD("_toggle_camera_preview"),&SpatialEditorViewport::_toggle_camera_preview);
- ObjectTypeDB::bind_method(_MD("_preview_exited_scene"),&SpatialEditorViewport::_preview_exited_scene);
- ObjectTypeDB::bind_method(_MD("update_transform_gizmo_view"),&SpatialEditorViewport::update_transform_gizmo_view);
- ObjectTypeDB::bind_method(_MD("_selection_result_pressed"),&SpatialEditorViewport::_selection_result_pressed);
- ObjectTypeDB::bind_method(_MD("_selection_menu_hide"),&SpatialEditorViewport::_selection_menu_hide);
+ ClassDB::bind_method(_MD("_draw"),&SpatialEditorViewport::_draw);
+ ClassDB::bind_method(_MD("_smouseenter"),&SpatialEditorViewport::_smouseenter);
+ ClassDB::bind_method(_MD("_sinput"),&SpatialEditorViewport::_sinput);
+ ClassDB::bind_method(_MD("_menu_option"),&SpatialEditorViewport::_menu_option);
+ ClassDB::bind_method(_MD("_toggle_camera_preview"),&SpatialEditorViewport::_toggle_camera_preview);
+ ClassDB::bind_method(_MD("_preview_exited_scene"),&SpatialEditorViewport::_preview_exited_scene);
+ ClassDB::bind_method(_MD("update_transform_gizmo_view"),&SpatialEditorViewport::update_transform_gizmo_view);
+ ClassDB::bind_method(_MD("_selection_result_pressed"),&SpatialEditorViewport::_selection_result_pressed);
+ ClassDB::bind_method(_MD("_selection_menu_hide"),&SpatialEditorViewport::_selection_menu_hide);
ADD_SIGNAL( MethodInfo("toggle_maximize_view", PropertyInfo(Variant::OBJECT, "viewport")) );
}
@@ -2294,10 +2297,10 @@ void SpatialEditorViewport::reset() {
message_time=0;
message="";
last_message="";
- name=TTR("Top");
+ name="";
- cursor.x_rot=0;
- cursor.y_rot=0;
+ cursor.x_rot=0.5;
+ cursor.y_rot=0.5;
cursor.distance=4;
cursor.region_select=false;
_update_name();
@@ -2347,7 +2350,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
index=p_index;
editor=p_editor;
- editor_selection=editor->get_editor_selection();;
+ editor_selection=editor->get_editor_selection();
undo_redo=editor->get_undo_redo();
clicked=0;
clicked_includes_current=false;
@@ -2355,18 +2358,20 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
message_time=0;
spatial_editor=p_spatial_editor;
- Control *c=memnew(Control);
+ ViewportContainer *c=memnew(ViewportContainer);
+ c->set_stretch(true);
add_child(c);
c->set_area_as_parent_rect();
viewport = memnew( Viewport );
viewport->set_disable_input(true);
+
c->add_child(viewport);
surface = memnew( Control );
add_child(surface);
surface->set_area_as_parent_rect();
camera = memnew(Camera);
camera->set_disable_gizmo(true);
- camera->set_visible_layers( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+p_index))|(1<<GIZMO_EDIT_LAYER)|(1<<GIZMO_GRID_LAYER) );
+ camera->set_cull_mask( ((1<<20)-1)|(1<<(GIZMO_BASE_LAYER+p_index))|(1<<GIZMO_EDIT_LAYER)|(1<<GIZMO_GRID_LAYER) );
//camera->set_environment(SpatialEditor::get_singleton()->get_viewport_environment());
viewport->add_child(camera);
camera->make_current();
@@ -2375,7 +2380,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
view_menu = memnew( MenuButton );
surface->add_child(view_menu);
view_menu->set_pos( Point2(4,4));
- view_menu->set_self_opacity(0.5);
+ view_menu->set_self_modulate(Color(1,1,1,0.5));
view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/top_view"), VIEW_TOP);
view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/bottom_view"), VIEW_BOTTOM);
view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/left_view"), VIEW_LEFT);
@@ -2399,7 +2404,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/focus_origin"), VIEW_CENTER_TO_ORIGIN);
view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/focus_selection"), VIEW_CENTER_TO_SELECTION);
view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/align_selection_with_view"), VIEW_ALIGN_SELECTION_WITH_VIEW);
- view_menu->get_popup()->connect("item_pressed",this,"_menu_option");
+ view_menu->get_popup()->connect("id_pressed",this,"_menu_option");
preview_camera = memnew( Button );
preview_camera->set_toggle_mode(true);
@@ -2416,7 +2421,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
selection_menu = memnew( PopupMenu );
add_child(selection_menu);
selection_menu->set_custom_minimum_size(Vector2(100, 0));
- selection_menu->connect("item_pressed", this, "_selection_result_pressed");
+ selection_menu->connect("id_pressed", this, "_selection_result_pressed");
selection_menu->connect("popup_hide", this, "_selection_menu_hide");
if (p_index==0) {
@@ -2462,10 +2467,10 @@ void SpatialEditor::select_gizmo_hilight_axis(int p_axis) {
void SpatialEditor::update_transform_gizmo() {
List<Node*> &selection = editor_selection->get_selected_node_list();
- AABB center;
+ Rect3 center;
bool first=true;
- Matrix3 gizmo_basis;
+ Basis gizmo_basis;
bool local_gizmo_coords = transform_menu->get_popup()->is_item_checked( transform_menu->get_popup()->get_item_index(MENU_TRANSFORM_LOCAL_COORDS) );
@@ -2489,9 +2494,9 @@ void SpatialEditor::update_transform_gizmo() {
}
} else {
center.expand_to(xf.origin);
- gizmo_basis=Matrix3();
+ gizmo_basis=Basis();
}
-// count++;
+ //count++;
}
Vector3 pcenter = center.pos+center.size*0.5;
@@ -2527,7 +2532,7 @@ Object *SpatialEditor::_get_editor_data(Object *p_what) {
void SpatialEditor::_generate_selection_box() {
- AABB aabb( Vector3(), Vector3(1,1,1) );
+ Rect3 aabb( Vector3(), Vector3(1,1,1) );
aabb.grow_by( aabb.get_longest_axis_size()/20.0 );
Ref<SurfaceTool> st = memnew( SurfaceTool );
@@ -2555,11 +2560,12 @@ void SpatialEditor::_generate_selection_box() {
}
- Ref<FixedMaterial> mat = memnew( FixedMaterial );
- mat->set_flag(Material::FLAG_UNSHADED,true);
- mat->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1));
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true);
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY,true);
+ Ref<FixedSpatialMaterial> mat = memnew( FixedSpatialMaterial );
+ mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true);
+ mat->set_albedo(Color(1,1,1));
+ mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT,true);
+ mat->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR,true);
+ mat->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR,true);
st->set_material(mat);
selection_box = st->commit();
}
@@ -2600,12 +2606,12 @@ Dictionary SpatialEditor::get_state() const {
d["viewports"]=vpdata;
- d["default_light"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_LIGHT) );;
- d["ambient_light_color"]=settings_ambient_color->get_color();
+ d["default_light"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_LIGHT) );
+ d["ambient_light_color"]=settings_ambient_color->get_pick_color();
- d["default_srgb"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB) );;
- d["show_grid"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_GRID) );;
- d["show_origin"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN) );;
+ d["default_srgb"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB) );
+ d["show_grid"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_GRID) );
+ d["show_origin"]=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN) );
d["fov"]=get_fov();
d["znear"]=get_znear();
d["zfar"]=get_zfar();
@@ -2666,11 +2672,11 @@ void SpatialEditor::set_state(const Dictionary& p_state) {
}
if (d.has("zfar"))
- settings_zfar->set_val(float(d["zfar"]));
+ settings_zfar->set_value(float(d["zfar"]));
if (d.has("znear"))
- settings_znear->set_val(float(d["znear"]));
+ settings_znear->set_value(float(d["znear"]));
if (d.has("fov"))
- settings_fov->set_val(float(d["fov"]));
+ settings_fov->set_value(float(d["fov"]));
if (d.has("default_light")) {
bool use = d["default_light"];
@@ -2690,15 +2696,15 @@ void SpatialEditor::set_state(const Dictionary& p_state) {
}
if (d.has("ambient_light_color")) {
- settings_ambient_color->set_color(d["ambient_light_color"]);
- viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,d["ambient_light_color"]);
+ settings_ambient_color->set_pick_color(d["ambient_light_color"]);
+ //viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,d["ambient_light_color"]);
}
if (d.has("default_srgb")) {
bool use = d["default_srgb"];
- viewport_environment->set_enable_fx(Environment::FX_SRGB,use);
- view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB), use );
+ //viewport_environment->set_enable_fx(Environment::FX_SRGB,use);
+ //view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_DEFAULT_SRGB), use );
}
if (d.has("show_grid")) {
bool use = d["show_grid"];
@@ -2713,7 +2719,7 @@ void SpatialEditor::set_state(const Dictionary& p_state) {
if (use!=view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN))) {
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN), use );
- VisualServer::get_singleton()->instance_geometry_set_flag(origin_instance,VS::INSTANCE_FLAG_VISIBLE,use);
+ VisualServer::get_singleton()->instance_set_visible(origin_instance,use);
}
}
@@ -2753,16 +2759,16 @@ void SpatialEditor::edit(Spatial *p_spatial) {
}
}
+ /*
if (p_spatial) {
- //_validate_selection();
- //if (selected.has(p_spatial->get_instance_ID()) && selected.size()==1)
- // return;
- //_select(p_spatial->get_instance_ID(),false,true);
+ _validate_selection();
+ if (selected.has(p_spatial->get_instance_ID()) && selected.size()==1)
+ return;
+ _select(p_spatial->get_instance_ID(),false,true);
// should become the selection
}
-
-
+ */
}
void SpatialEditor::_xform_dialog_action() {
@@ -2778,21 +2784,10 @@ void SpatialEditor::_xform_dialog_action() {
rotate[i]=Math::deg2rad(xform_rotate[i]->get_text().to_double());
scale[i]=xform_scale[i]->get_text().to_double();
}
-
+
+ t.basis.scale(scale);
+ t.basis.rotate(rotate);
t.origin=translate;
- for(int i=0;i<3;i++) {
- if (!rotate[i])
- continue;
- Vector3 axis;
- axis[i]=1.0;
- t.basis.rotate(axis,rotate[i]);
- }
-
- for(int i=0;i<3;i++) {
- if (scale[i]==1)
- continue;
- t.basis.set_axis(i,t.basis.get_axis(i)*scale[i]);
- }
undo_redo->create_action(TTR("XForm Dialog"));
@@ -2840,8 +2835,8 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
tool_button[i]->set_pressed(i==p_option);
tool_mode=(ToolMode)p_option;
- // static const char *_mode[]={"Selection Mode.","Translation Mode.","Rotation Mode.","Scale Mode.","List Selection Mode."};
-// set_message(_mode[p_option],3);
+ //static const char *_mode[]={"Selection Mode.","Translation Mode.","Rotation Mode.","Scale Mode.","List Selection Mode."};
+ //set_message(_mode[p_option],3);
update_transform_gizmo();
} break;
@@ -2898,9 +2893,9 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
bool is_checked = view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(p_option) );
if (is_checked) {
- viewport_environment->set_enable_fx(Environment::FX_SRGB,false);
+ //viewport_environment->set_enable_fx(Environment::FX_SRGB,false);
} else {
- viewport_environment->set_enable_fx(Environment::FX_SRGB,true);
+ //viewport_environment->set_enable_fx(Environment::FX_SRGB,true);
}
is_checked = ! is_checked;
@@ -2938,9 +2933,9 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
}
viewports[0]->set_area_as_parent_rect();
- viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
+ //viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
viewports[2]->set_area_as_parent_rect();
- viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
+ //viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false );
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), true );
@@ -2962,9 +2957,9 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
}
viewports[0]->set_area_as_parent_rect();
- viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
+ //viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
viewports[2]->set_area_as_parent_rect();
- viewports[2]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
+ //viewports[2]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false );
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), false );
@@ -2984,13 +2979,13 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
viewports[i]->show();
}
viewports[0]->set_area_as_parent_rect();
- viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
+ //viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
viewports[2]->set_area_as_parent_rect();
- viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
- viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
+ //viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
+ //viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
viewports[3]->set_area_as_parent_rect();
- viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
- viewports[3]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
+ //viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
+ //viewports[3]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false );
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), false );
@@ -3010,13 +3005,13 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
viewports[i]->show();
}
viewports[0]->set_area_as_parent_rect();
- viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
- viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
+ //viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
+ //viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
viewports[2]->set_area_as_parent_rect();
- viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
- viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
+ //viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
+ //viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
viewports[3]->set_area_as_parent_rect();
- viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
+ //viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false );
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), false );
@@ -3033,17 +3028,17 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
viewports[i]->show();
}
viewports[0]->set_area_as_parent_rect();
- viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
- viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
+ //viewports[0]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
+ //viewports[0]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
viewports[1]->set_area_as_parent_rect();
- viewports[1]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
- viewports[1]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
+ //viewports[1]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
+ //viewports[1]->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_RATIO,0.5);
viewports[2]->set_area_as_parent_rect();
- viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
- viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
+ //viewports[2]->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_RATIO,0.5);
+ //viewports[2]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
viewports[3]->set_area_as_parent_rect();
- viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
- viewports[3]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
+ //viewports[3]->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_RATIO,0.5);
+ //viewports[3]->set_anchor_and_margin(MARGIN_TOP,ANCHOR_RATIO,0.5);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), false );
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), false );
@@ -3096,7 +3091,7 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
bool is_checked = view_menu->get_popup()->is_item_checked( view_menu->get_popup()->get_item_index(p_option) );
is_checked=!is_checked;
- VisualServer::get_singleton()->instance_geometry_set_flag(origin_instance,VS::INSTANCE_FLAG_VISIBLE,is_checked);
+ VisualServer::get_singleton()->instance_set_visible(origin_instance,is_checked);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(p_option), is_checked);
} break;
@@ -3108,7 +3103,7 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
for(int i=0;i<3;++i) {
if (grid_enable[i]) {
- VisualServer::get_singleton()->instance_geometry_set_flag(grid_instance[i],VS::INSTANCE_FLAG_VISIBLE,grid_enabled);
+ VisualServer::get_singleton()->instance_set_visible(grid_instance[i],grid_enabled);
grid_visible[i]=grid_enabled;
}
}
@@ -3135,7 +3130,7 @@ void SpatialEditor::_init_indicators() {
- light_transform.rotate(Vector3(1,0,0),Math_PI/5.0);
+ light_transform.rotate(Vector3(1,0,0),-Math_PI/5.0);
VisualServer::get_singleton()->instance_set_transform(light_instance,light_transform);
@@ -3146,18 +3141,20 @@ void SpatialEditor::_init_indicators() {
{
- indicator_mat = VisualServer::get_singleton()->fixed_material_create();
- VisualServer::get_singleton()->material_set_flag( indicator_mat, VisualServer::MATERIAL_FLAG_UNSHADED, true );
- VisualServer::get_singleton()->material_set_flag( indicator_mat, VisualServer::MATERIAL_FLAG_ONTOP, false );
- VisualServer::get_singleton()->fixed_material_set_flag(indicator_mat, VisualServer::FIXED_MATERIAL_FLAG_USE_ALPHA,true);
- VisualServer::get_singleton()->fixed_material_set_flag(indicator_mat, VisualServer::FIXED_MATERIAL_FLAG_USE_COLOR_ARRAY,true);
+ indicator_mat.instance();
+ indicator_mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true);
+ indicator_mat->set_flag(FixedSpatialMaterial::FLAG_ONTOP,true);
+ indicator_mat->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR,true);
+ indicator_mat->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR,true);
- DVector<Color> grid_colors[3];
- DVector<Vector3> grid_points[3];
+ indicator_mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT,true);
+
+ PoolVector<Color> grid_colors[3];
+ PoolVector<Vector3> grid_points[3];
Vector<Color> origin_colors;
Vector<Vector3> origin_points;
- Color grid_color = EditorSettings::get_singleton()->get("3d_editor/grid_color");
+ Color grid_color = EditorSettings::get_singleton()->get("editors/3d/grid_color");
for(int i=0;i<3;i++) {
Vector3 axis;
@@ -3192,13 +3189,13 @@ void SpatialEditor::_init_indicators() {
d.resize(VS::ARRAY_MAX);
d[VisualServer::ARRAY_VERTEX]=grid_points[i];
d[VisualServer::ARRAY_COLOR]=grid_colors[i];
- VisualServer::get_singleton()->mesh_add_surface(grid[i],VisualServer::PRIMITIVE_LINES,d);
- VisualServer::get_singleton()->mesh_surface_set_material(grid[i],0,indicator_mat);
+ VisualServer::get_singleton()->mesh_add_surface_from_arrays(grid[i],VisualServer::PRIMITIVE_LINES,d);
+ VisualServer::get_singleton()->mesh_surface_set_material(grid[i],0,indicator_mat->get_rid());
grid_instance[i] = VisualServer::get_singleton()->instance_create2(grid[i],get_tree()->get_root()->get_world()->get_scenario());
grid_visible[i]=false;
grid_enable[i]=false;
- VisualServer::get_singleton()->instance_geometry_set_flag(grid_instance[i],VS::INSTANCE_FLAG_VISIBLE,false);
+ VisualServer::get_singleton()->instance_set_visible(grid_instance[i],false);
VisualServer::get_singleton()->instance_geometry_set_cast_shadows_setting(grid_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(grid_instance[i], 1 << SpatialEditorViewport::GIZMO_GRID_LAYER);
@@ -3211,13 +3208,13 @@ void SpatialEditor::_init_indicators() {
d[VisualServer::ARRAY_VERTEX]=origin_points;
d[VisualServer::ARRAY_COLOR]=origin_colors;
- VisualServer::get_singleton()->mesh_add_surface(origin,VisualServer::PRIMITIVE_LINES,d);
- VisualServer::get_singleton()->mesh_surface_set_material(origin,0,indicator_mat);
+ VisualServer::get_singleton()->mesh_add_surface_from_arrays(origin,VisualServer::PRIMITIVE_LINES,d);
+ VisualServer::get_singleton()->mesh_surface_set_material(origin,0,indicator_mat->get_rid());
-// origin = VisualServer::get_singleton()->poly_create();
-// VisualServer::get_singleton()->poly_add_primitive(origin,origin_points,Vector<Vector3>(),origin_colors,Vector<Vector3>());
-// VisualServer::get_singleton()->poly_set_material(origin,indicator_mat,true);
+ //origin = VisualServer::get_singleton()->poly_create();
+ //VisualServer::get_singleton()->poly_add_primitive(origin,origin_points,Vector<Vector3>(),origin_colors,Vector<Vector3>());
+ //VisualServer::get_singleton()->poly_set_material(origin,indicator_mat,true);
origin_instance = VisualServer::get_singleton()->instance_create2(origin,get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_layer_mask(origin_instance,1<<SpatialEditorViewport::GIZMO_GRID_LAYER);
@@ -3225,7 +3222,7 @@ void SpatialEditor::_init_indicators() {
- VisualServer::get_singleton()->instance_geometry_set_flag(grid_instance[1],VS::INSTANCE_FLAG_VISIBLE,true);
+ VisualServer::get_singleton()->instance_set_visible(grid_instance[1],true);
grid_enable[1]=true;
grid_visible[1]=true;
grid_enabled=true;
@@ -3235,7 +3232,7 @@ void SpatialEditor::_init_indicators() {
{
cursor_mesh = VisualServer::get_singleton()->mesh_create();
- DVector<Vector3> cursor_points;
+ PoolVector<Vector3> cursor_points;
float cs = 0.25;
cursor_points.push_back(Vector3(+cs,0,0));
cursor_points.push_back(Vector3(-cs,0,0));
@@ -3243,17 +3240,15 @@ void SpatialEditor::_init_indicators() {
cursor_points.push_back(Vector3(0,-cs,0));
cursor_points.push_back(Vector3(0,0,+cs));
cursor_points.push_back(Vector3(0,0,-cs));
- cursor_material=VisualServer::get_singleton()->fixed_material_create();
- VisualServer::get_singleton()->fixed_material_set_param(cursor_material,VS::FIXED_MATERIAL_PARAM_DIFFUSE,Color(0,1,1));
- VisualServer::get_singleton()->material_set_flag( cursor_material, VisualServer::MATERIAL_FLAG_UNSHADED, true );
- VisualServer::get_singleton()->fixed_material_set_flag(cursor_material, VisualServer::FIXED_MATERIAL_FLAG_USE_ALPHA,true);
- VisualServer::get_singleton()->fixed_material_set_flag(cursor_material, VisualServer::FIXED_MATERIAL_FLAG_USE_COLOR_ARRAY,true);
+ cursor_material.instance();
+ cursor_material->set_albedo(Color(0,1,1));
+ cursor_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true);
Array d;
d.resize(VS::ARRAY_MAX);
d[VS::ARRAY_VERTEX]=cursor_points;
- VisualServer::get_singleton()->mesh_add_surface(cursor_mesh,VS::PRIMITIVE_LINES,d);
- VisualServer::get_singleton()->mesh_surface_set_material(cursor_mesh,0,cursor_material);
+ VisualServer::get_singleton()->mesh_add_surface_from_arrays(cursor_mesh,VS::PRIMITIVE_LINES,d);
+ VisualServer::get_singleton()->mesh_surface_set_material(cursor_mesh,0,cursor_material->get_rid());
cursor_instance = VisualServer::get_singleton()->instance_create2(cursor_mesh,get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_layer_mask(cursor_instance,1<<SpatialEditorViewport::GIZMO_GRID_LAYER);
@@ -3269,13 +3264,13 @@ void SpatialEditor::_init_indicators() {
//move gizmo
- float gizmo_alph = EditorSettings::get_singleton()->get("3d_editor/manipulator_gizmo_opacity");
+ float gizmo_alph = EditorSettings::get_singleton()->get("editors/3d/manipulator_gizmo_opacity");
- gizmo_hl = Ref<FixedMaterial>( memnew( FixedMaterial ) );
- gizmo_hl->set_flag(Material::FLAG_UNSHADED, true);
- gizmo_hl->set_flag(Material::FLAG_ONTOP, true);
- gizmo_hl->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- gizmo_hl->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,gizmo_alph+0.2f));
+ gizmo_hl = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ) );
+ gizmo_hl->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ gizmo_hl->set_flag(FixedSpatialMaterial::FLAG_ONTOP, true);
+ gizmo_hl->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ gizmo_hl->set_albedo(Color(1,1,1,gizmo_alph+0.2f));
for(int i=0;i<3;i++) {
@@ -3283,14 +3278,14 @@ void SpatialEditor::_init_indicators() {
rotate_gizmo[i]=Ref<Mesh>( memnew( Mesh ) );
- Ref<FixedMaterial> mat = memnew( FixedMaterial );
- mat->set_flag(Material::FLAG_UNSHADED, true);
- mat->set_flag(Material::FLAG_ONTOP, true);
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
+ Ref<FixedSpatialMaterial> mat = memnew( FixedSpatialMaterial );
+ mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ mat->set_flag(FixedSpatialMaterial::FLAG_ONTOP, true);
+ mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
Color col;
col[i]=1.0;
col.a= gizmo_alph;
- mat->set_parameter(FixedMaterial::PARAM_DIFFUSE,col);
+ mat->set_albedo(col);
gizmo_color[i]=mat;
@@ -3329,8 +3324,8 @@ void SpatialEditor::_init_indicators() {
for(int k = 0; k < 7 ; k++) {
- Matrix3 ma(ivec,Math_PI*2*float(k)/arrow_sides);
- Matrix3 mb(ivec,Math_PI*2*float(k+1)/arrow_sides);
+ Basis ma(ivec,Math_PI*2*float(k)/arrow_sides);
+ Basis mb(ivec,Math_PI*2*float(k+1)/arrow_sides);
for(int j=0;j<arrow_points-1;j++) {
@@ -3374,8 +3369,8 @@ void SpatialEditor::_init_indicators() {
for(int k = 0; k < 33 ; k++) {
- Matrix3 ma(ivec,Math_PI*2*float(k)/32);
- Matrix3 mb(ivec,Math_PI*2*float(k+1)/32);
+ Basis ma(ivec,Math_PI*2*float(k)/32);
+ Basis mb(ivec,Math_PI*2*float(k+1)/32);
for(int j=0;j<4;j++) {
@@ -3436,15 +3431,13 @@ void SpatialEditor::_finish_indicators() {
VisualServer::get_singleton()->free(cursor_instance);
VisualServer::get_singleton()->free(cursor_mesh);
- VisualServer::get_singleton()->free(indicator_mat);
- VisualServer::get_singleton()->free(cursor_material);
}
void SpatialEditor::_instance_scene() {
#if 0
EditorNode *en = get_scene()->get_root_node()->cast_to<EditorNode>();
ERR_FAIL_COND(!en);
- String path = en->get_scenes_dock()->get_selected_path();
+ String path = en->get_filesystem_dock()->get_selected_path();
if (path=="") {
set_message(TTR("No scene selected to instance!"));
return;
@@ -3472,7 +3465,7 @@ void SpatialEditor::_instance_scene() {
void SpatialEditor::_unhandled_key_input(InputEvent p_event) {
- if (!is_visible() || get_viewport()->gui_has_modal_stack())
+ if (!is_visible_in_tree() || get_viewport()->gui_has_modal_stack())
return;
#if 0
@@ -3482,7 +3475,7 @@ void SpatialEditor::_unhandled_key_input(InputEvent p_event) {
EditorNode *en = editor;
EditorPluginList *over_plugin_list = en->get_editor_plugins_over();
- if (!over_plugin_list->empty() && over_plugin_list->forward_input_event(p_event)) {
+ if (!over_plugin_list->empty() && over_plugin_list->forward_gui_input(p_event)) {
return; //ate the over input event
}
@@ -3679,17 +3672,17 @@ void SpatialEditor::_node_removed(Node* p_node) {
void SpatialEditor::_bind_methods() {
-// ObjectTypeDB::bind_method("_input_event",&SpatialEditor::_input_event);
- ObjectTypeDB::bind_method("_unhandled_key_input",&SpatialEditor::_unhandled_key_input);
- ObjectTypeDB::bind_method("_node_removed",&SpatialEditor::_node_removed);
- ObjectTypeDB::bind_method("_menu_item_pressed",&SpatialEditor::_menu_item_pressed);
- ObjectTypeDB::bind_method("_xform_dialog_action",&SpatialEditor::_xform_dialog_action);
- ObjectTypeDB::bind_method("_instance_scene",&SpatialEditor::_instance_scene);
- ObjectTypeDB::bind_method("_get_editor_data",&SpatialEditor::_get_editor_data);
- ObjectTypeDB::bind_method("_request_gizmo",&SpatialEditor::_request_gizmo);
- ObjectTypeDB::bind_method("_default_light_angle_input",&SpatialEditor::_default_light_angle_input);
- ObjectTypeDB::bind_method("_update_ambient_light_color",&SpatialEditor::_update_ambient_light_color);
- ObjectTypeDB::bind_method("_toggle_maximize_view",&SpatialEditor::_toggle_maximize_view);
+ //ClassDB::bind_method("_gui_input",&SpatialEditor::_gui_input);
+ ClassDB::bind_method("_unhandled_key_input",&SpatialEditor::_unhandled_key_input);
+ ClassDB::bind_method("_node_removed",&SpatialEditor::_node_removed);
+ ClassDB::bind_method("_menu_item_pressed",&SpatialEditor::_menu_item_pressed);
+ ClassDB::bind_method("_xform_dialog_action",&SpatialEditor::_xform_dialog_action);
+ ClassDB::bind_method("_instance_scene",&SpatialEditor::_instance_scene);
+ ClassDB::bind_method("_get_editor_data",&SpatialEditor::_get_editor_data);
+ ClassDB::bind_method("_request_gizmo",&SpatialEditor::_request_gizmo);
+ ClassDB::bind_method("_default_light_angle_input",&SpatialEditor::_default_light_angle_input);
+ ClassDB::bind_method("_update_ambient_light_color",&SpatialEditor::_update_ambient_light_color);
+ ClassDB::bind_method("_toggle_maximize_view",&SpatialEditor::_toggle_maximize_view);
ADD_SIGNAL( MethodInfo("transform_key_request") );
@@ -3698,9 +3691,9 @@ void SpatialEditor::_bind_methods() {
void SpatialEditor::clear() {
- settings_fov->set_val(EDITOR_DEF("3d_editor/default_fov",60.0));
- settings_znear->set_val(EDITOR_DEF("3d_editor/default_z_near",0.1));
- settings_zfar->set_val(EDITOR_DEF("3d_editor/default_z_far",1500.0));
+ settings_fov->set_value(EDITOR_DEF("editors/3d/default_fov",60.0));
+ settings_znear->set_value(EDITOR_DEF("editors/3d/default_z_near",0.1));
+ settings_zfar->set_value(EDITOR_DEF("editors/3d/default_z_far",1500.0));
for(int i=0;i<4;i++) {
viewports[i]->reset();
@@ -3710,11 +3703,11 @@ void SpatialEditor::clear() {
_menu_item_pressed(MENU_VIEW_DISPLAY_NORMAL);
- VisualServer::get_singleton()->instance_geometry_set_flag(origin_instance,VS::INSTANCE_FLAG_VISIBLE,true);
+ VisualServer::get_singleton()->instance_set_visible(origin_instance,true);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(MENU_VIEW_ORIGIN), true);
for(int i=0;i<3;++i) {
if (grid_enable[i]) {
- VisualServer::get_singleton()->instance_geometry_set_flag(grid_instance[i],VS::INSTANCE_FLAG_VISIBLE,true);
+ VisualServer::get_singleton()->instance_set_visible(grid_instance[i],true);
grid_visible[i]=true;
}
}
@@ -3730,8 +3723,8 @@ void SpatialEditor::clear() {
settings_default_light_rot_x=Math_PI*0.3;
settings_default_light_rot_y=Math_PI*0.2;
- viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,Color(0.15,0.15,0.15));
- settings_ambient_color->set_color(Color(0.15,0.15,0.15));
+ //viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,Color(0.15,0.15,0.15));
+ settings_ambient_color->set_pick_color(Color(0.15,0.15,0.15));
if (!light_instance.is_valid())
_menu_item_pressed(MENU_VIEW_USE_DEFAULT_LIGHT);
@@ -3743,15 +3736,15 @@ void SpatialEditor::clear() {
void SpatialEditor::_update_ambient_light_color(const Color& p_color) {
- viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,settings_ambient_color->get_color());
+ //viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,settings_ambient_color->get_color());
}
void SpatialEditor::_update_default_light_angle() {
Transform t;
- t.basis.rotate(Vector3(1,0,0),settings_default_light_rot_x);
- t.basis.rotate(Vector3(0,1,0),settings_default_light_rot_y);
+ t.basis.rotate(Vector3(1,0,0),-settings_default_light_rot_x);
+ t.basis.rotate(Vector3(0,1,0),-settings_default_light_rot_y);
settings_dlight->set_transform(t);
if (light_instance.is_valid()) {
VS::get_singleton()->instance_set_transform(light_instance,t);
@@ -3884,7 +3877,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
p->add_separator();
p->add_shortcut(ED_SHORTCUT("spatial_editor/transform_dialog", TTR("Transform Dialog..")), MENU_TRANSFORM_DIALOG);
- p->connect("item_pressed", this,"_menu_item_pressed");
+ p->connect("id_pressed", this,"_menu_item_pressed");
view_menu = memnew( MenuButton );
view_menu->set_text(TTR("View"));
@@ -3922,7 +3915,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
p->set_item_checked( p->get_item_index(MENU_VIEW_GRID), true );
- p->connect("item_pressed", this,"_menu_item_pressed");
+ p->connect("id_pressed", this,"_menu_item_pressed");
/* REST OF MENU */
@@ -3956,7 +3949,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
VBoxContainer *snap_dialog_vbc = memnew( VBoxContainer );
snap_dialog->add_child(snap_dialog_vbc);
- snap_dialog->set_child_rect(snap_dialog_vbc);
+ //snap_dialog->set_child_rect(snap_dialog_vbc);
snap_translate = memnew( LineEdit );
snap_translate->set_text("1");
@@ -3978,13 +3971,13 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
settings_vbc = memnew( VBoxContainer );
settings_vbc->set_custom_minimum_size(Size2(200,0));
settings_dialog->add_child(settings_vbc);
- settings_dialog->set_child_rect(settings_vbc);
+ //settings_dialog->set_child_rect(settings_vbc);
- settings_light_base = memnew( Control );
+ settings_light_base = memnew( ViewportContainer );
settings_light_base->set_custom_minimum_size(Size2(128,128));
- settings_light_base->connect("input_event",this,"_default_light_angle_input");
+ settings_light_base->connect("gui_input",this,"_default_light_angle_input");
settings_vbc->add_margin_child(TTR("Default Light Normal:"),settings_light_base);
settings_light_vp = memnew( Viewport );
settings_light_vp->set_disable_input(true);
@@ -4012,31 +4005,28 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
settings_ambient_color = memnew( ColorPickerButton );
settings_vbc->add_margin_child(TTR("Ambient Light Color:"),settings_ambient_color);
settings_ambient_color->connect("color_changed",this,"_update_ambient_light_color");
-
- viewport_environment->set_enable_fx(Environment::FX_AMBIENT_LIGHT,true);
- viewport_environment->fx_set_param(Environment::FX_PARAM_AMBIENT_LIGHT_COLOR,Color(0.15,0.15,0.15));
- settings_ambient_color->set_color(Color(0.15,0.15,0.15));
+ settings_ambient_color->set_pick_color(Color(0.15,0.15,0.15));
settings_fov = memnew( SpinBox );
settings_fov->set_max(179);
settings_fov->set_min(1);
settings_fov->set_step(0.01);
- settings_fov->set_val(EDITOR_DEF("3d_editor/default_fov",60.0));
+ settings_fov->set_value(EDITOR_DEF("editors/3d/default_fov",60.0));
settings_vbc->add_margin_child(TTR("Perspective FOV (deg.):"),settings_fov);
settings_znear = memnew( SpinBox );
settings_znear->set_max(10000);
settings_znear->set_min(0.1);
settings_znear->set_step(0.01);
- settings_znear->set_val(EDITOR_DEF("3d_editor/default_z_near",0.1));
+ settings_znear->set_value(EDITOR_DEF("editors/3d/default_z_near",0.1));
settings_vbc->add_margin_child(TTR("View Z-Near:"),settings_znear);
settings_zfar = memnew( SpinBox );
settings_zfar->set_max(10000);
settings_zfar->set_min(0.1);
settings_zfar->set_step(0.01);
- settings_zfar->set_val(EDITOR_DEF("3d_editor/default_z_far",1500));
+ settings_zfar->set_value(EDITOR_DEF("editors/3d/default_z_far",1500));
settings_vbc->add_margin_child(TTR("View Z-Far:"),settings_zfar);
//settings_dialog->get_cancel()->hide();
@@ -4104,9 +4094,9 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
set_process_unhandled_key_input(true);
add_to_group("_spatial_editor_group");
- EDITOR_DEF("3d_editor/manipulator_gizmo_size",80);
- EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT,"3d_editor/manipulator_gizmo_size",PROPERTY_HINT_RANGE,"16,1024,1"));
- EDITOR_DEF("3d_editor/manipulator_gizmo_opacity",0.2);
+ EDITOR_DEF("editors/3d/manipulator_gizmo_size",80);
+ EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT,"editors/3d/manipulator_gizmo_size",PROPERTY_HINT_RANGE,"16,1024,1"));
+ EDITOR_DEF("editors/3d/manipulator_gizmo_opacity",0.2);
over_gizmo_handle=-1;
}
@@ -4145,7 +4135,7 @@ void SpatialEditorPlugin::edit(Object *p_object) {
bool SpatialEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("Spatial");
+ return p_object->is_class("Spatial");
}
Dictionary SpatialEditorPlugin::get_state() const {
@@ -4159,12 +4149,12 @@ void SpatialEditorPlugin::set_state(const Dictionary& p_state) {
void SpatialEditor::snap_cursor_to_plane(const Plane& p_plane) {
-// cursor.pos=p_plane.project(cursor.pos);
+ //cursor.pos=p_plane.project(cursor.pos);
}
void SpatialEditorPlugin::_bind_methods() {
- ObjectTypeDB::bind_method("snap_cursor_to_plane",&SpatialEditorPlugin::snap_cursor_to_plane);
+ ClassDB::bind_method("snap_cursor_to_plane",&SpatialEditorPlugin::snap_cursor_to_plane);
}
diff --git a/tools/editor/plugins/spatial_editor_plugin.h b/tools/editor/plugins/spatial_editor_plugin.h
index 89587526ee..36f807c11f 100644
--- a/tools/editor/plugins/spatial_editor_plugin.h
+++ b/tools/editor/plugins/spatial_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -45,7 +45,7 @@ class SpatialEditorGizmos;
class SpatialEditorGizmo : public SpatialGizmo {
- OBJ_TYPE(SpatialEditorGizmo,SpatialGizmo);
+ GDCLASS(SpatialEditorGizmo,SpatialGizmo);
bool selected;
public:
@@ -66,7 +66,7 @@ public:
class SpatialEditorViewport : public Control {
- OBJ_TYPE( SpatialEditorViewport, Control );
+ GDCLASS( SpatialEditorViewport, Control );
friend class SpatialEditor;
enum {
@@ -156,13 +156,11 @@ private:
NAVIGATION_MAYA,
NAVIGATION_MODO,
};
- NavigationScheme _get_navigation_schema(const String& p_property);
enum NavigationZoomStyle {
NAVIGATION_ZOOM_VERTICAL,
NAVIGATION_ZOOM_HORIZONTAL
};
- NavigationZoomStyle _get_navigation_zoom_style(const String& p_property);
enum NavigationMode {
NAVIGATION_NONE,
@@ -210,7 +208,7 @@ private:
bool region_select;
Point2 region_begin,region_end;
- Cursor() { x_rot=y_rot=0; distance=4; region_select=false; }
+ Cursor() { x_rot=y_rot=0.5; distance=4; region_select=false; }
} cursor;
RID move_gizmo_instance[3], rotate_gizmo_instance[3];
@@ -267,11 +265,11 @@ public:
class SpatialEditorSelectedItem : public Object {
- OBJ_TYPE(SpatialEditorSelectedItem,Object);
+ GDCLASS(SpatialEditorSelectedItem,Object);
public:
- AABB aabb;
+ Rect3 aabb;
Transform original; // original location when moving
Transform last_xform; // last transform
Spatial *sp;
@@ -283,7 +281,7 @@ public:
class SpatialEditor : public VBoxContainer {
- OBJ_TYPE(SpatialEditor, VBoxContainer );
+ GDCLASS(SpatialEditor, VBoxContainer );
public:
enum ToolMode {
@@ -332,8 +330,8 @@ private:
bool grid_enabled;
Ref<Mesh> move_gizmo[3], rotate_gizmo[3];
- Ref<FixedMaterial> gizmo_color[3];
- Ref<FixedMaterial> gizmo_hl;
+ Ref<FixedSpatialMaterial> gizmo_color[3];
+ Ref<FixedSpatialMaterial> gizmo_hl;
int over_gizmo_handle;
@@ -345,8 +343,8 @@ private:
RID indicators_instance;
RID cursor_mesh;
RID cursor_instance;
- RID indicator_mat;
- RID cursor_material;
+ Ref<FixedSpatialMaterial> indicator_mat;
+ Ref<FixedSpatialMaterial> cursor_material;
/*
struct Selected {
@@ -431,7 +429,7 @@ private:
float settings_default_light_rot_x;
float settings_default_light_rot_y;
- Control *settings_light_base;
+ ViewportContainer *settings_light_base;
Viewport *settings_light_vp;
ColorPickerButton *settings_ambient_color;
Image settings_light_dir_image;
@@ -481,7 +479,7 @@ protected:
void _notification(int p_what);
- //void _input_event(InputEvent p_event);
+ //void _gui_input(InputEvent p_event);
void _unhandled_key_input(InputEvent p_event);
static void _bind_methods();
@@ -491,9 +489,9 @@ public:
static SpatialEditor *get_singleton() { return singleton; }
void snap_cursor_to_plane(const Plane& p_plane);
- float get_znear() const { return settings_znear->get_val(); }
- float get_zfar() const { return settings_zfar->get_val(); }
- float get_fov() const { return settings_fov->get_val(); }
+ float get_znear() const { return settings_znear->get_value(); }
+ float get_zfar() const { return settings_zfar->get_value(); }
+ float get_fov() const { return settings_fov->get_value(); }
Transform get_gizmo_transform() const { return gizmo.transform; }
bool is_gizmo_visible() const { return gizmo.visible; }
@@ -546,7 +544,7 @@ public:
class SpatialEditorPlugin : public EditorPlugin {
- OBJ_TYPE( SpatialEditorPlugin, EditorPlugin );
+ GDCLASS( SpatialEditorPlugin, EditorPlugin );
SpatialEditor *spatial_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/sprite_frames_editor_plugin.cpp b/tools/editor/plugins/sprite_frames_editor_plugin.cpp
index 41beaa96a1..095b059836 100644
--- a/tools/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/tools/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,7 +35,7 @@
-void SpriteFramesEditor::_input_event(InputEvent p_event) {
+void SpriteFramesEditor::_gui_input(InputEvent p_event) {
}
@@ -56,7 +56,7 @@ void SpriteFramesEditor::_notification(int p_what) {
if (p_what==NOTIFICATION_READY) {
-// NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true);
+ //NodePath("/root")->connect("node_removed", this,"_node_removed",Vector<Variant>(),true);
}
if (p_what==NOTIFICATION_DRAW) {
@@ -64,7 +64,7 @@ void SpriteFramesEditor::_notification(int p_what) {
}
}
-void SpriteFramesEditor::_file_load_request(const DVector<String>& p_path,int p_at_pos) {
+void SpriteFramesEditor::_file_load_request(const PoolVector<String>& p_path,int p_at_pos) {
ERR_FAIL_COND(!frames->has_animation(edited_anim));
@@ -605,7 +605,7 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) {
tree->select(tree->get_item_count()-1);
}
- anim_speed->set_val(frames->get_animation_speed(edited_anim));
+ anim_speed->set_value(frames->get_animation_speed(edited_anim));
anim_loop->set_pressed(frames->get_animation_loop(edited_anim));
updating=false;
@@ -700,7 +700,7 @@ bool SpriteFramesEditor::can_drop_data_fw(const Point2& p_point,const Variant& p
String file = files[0];
String ftype = EditorFileSystem::get_singleton()->get_file_type(file);
- if (!ObjectTypeDB::is_type(ftype,"Texture")) {
+ if (!ClassDB::is_parent_class(ftype,"Texture")) {
return false;
}
@@ -744,7 +744,7 @@ void SpriteFramesEditor::drop_data_fw(const Point2& p_point,const Variant& p_dat
if (String(d["type"])=="files") {
- DVector<String> files = d["files"];
+ PoolVector<String> files = d["files"];
_file_load_request(files,at_pos);
}
@@ -754,27 +754,27 @@ void SpriteFramesEditor::drop_data_fw(const Point2& p_point,const Variant& p_dat
void SpriteFramesEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_input_event"),&SpriteFramesEditor::_input_event);
- ObjectTypeDB::bind_method(_MD("_load_pressed"),&SpriteFramesEditor::_load_pressed);
- ObjectTypeDB::bind_method(_MD("_empty_pressed"),&SpriteFramesEditor::_empty_pressed);
- ObjectTypeDB::bind_method(_MD("_empty2_pressed"),&SpriteFramesEditor::_empty2_pressed);
- ObjectTypeDB::bind_method(_MD("_item_edited"),&SpriteFramesEditor::_item_edited);
- ObjectTypeDB::bind_method(_MD("_delete_pressed"),&SpriteFramesEditor::_delete_pressed);
- ObjectTypeDB::bind_method(_MD("_paste_pressed"),&SpriteFramesEditor::_paste_pressed);
- ObjectTypeDB::bind_method(_MD("_delete_confirm_pressed"),&SpriteFramesEditor::_delete_confirm_pressed);
- ObjectTypeDB::bind_method(_MD("_file_load_request","files","atpos"),&SpriteFramesEditor::_file_load_request,DEFVAL(-1));
- ObjectTypeDB::bind_method(_MD("_update_library","skipsel"),&SpriteFramesEditor::_update_library,DEFVAL(false));
- ObjectTypeDB::bind_method(_MD("_up_pressed"),&SpriteFramesEditor::_up_pressed);
- ObjectTypeDB::bind_method(_MD("_down_pressed"),&SpriteFramesEditor::_down_pressed);
- ObjectTypeDB::bind_method(_MD("_animation_select"),&SpriteFramesEditor::_animation_select);
- ObjectTypeDB::bind_method(_MD("_animation_name_edited"),&SpriteFramesEditor::_animation_name_edited);
- ObjectTypeDB::bind_method(_MD("_animation_add"),&SpriteFramesEditor::_animation_add);
- ObjectTypeDB::bind_method(_MD("_animation_remove"),&SpriteFramesEditor::_animation_remove);
- ObjectTypeDB::bind_method(_MD("_animation_loop_changed"),&SpriteFramesEditor::_animation_loop_changed);
- ObjectTypeDB::bind_method(_MD("_animation_fps_changed"),&SpriteFramesEditor::_animation_fps_changed);
- ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &SpriteFramesEditor::get_drag_data_fw);
- ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &SpriteFramesEditor::can_drop_data_fw);
- ObjectTypeDB::bind_method(_MD("drop_data_fw"), &SpriteFramesEditor::drop_data_fw);
+ ClassDB::bind_method(_MD("_gui_input"),&SpriteFramesEditor::_gui_input);
+ ClassDB::bind_method(_MD("_load_pressed"),&SpriteFramesEditor::_load_pressed);
+ ClassDB::bind_method(_MD("_empty_pressed"),&SpriteFramesEditor::_empty_pressed);
+ ClassDB::bind_method(_MD("_empty2_pressed"),&SpriteFramesEditor::_empty2_pressed);
+ ClassDB::bind_method(_MD("_item_edited"),&SpriteFramesEditor::_item_edited);
+ ClassDB::bind_method(_MD("_delete_pressed"),&SpriteFramesEditor::_delete_pressed);
+ ClassDB::bind_method(_MD("_paste_pressed"),&SpriteFramesEditor::_paste_pressed);
+ ClassDB::bind_method(_MD("_delete_confirm_pressed"),&SpriteFramesEditor::_delete_confirm_pressed);
+ ClassDB::bind_method(_MD("_file_load_request","files","atpos"),&SpriteFramesEditor::_file_load_request,DEFVAL(-1));
+ ClassDB::bind_method(_MD("_update_library","skipsel"),&SpriteFramesEditor::_update_library,DEFVAL(false));
+ ClassDB::bind_method(_MD("_up_pressed"),&SpriteFramesEditor::_up_pressed);
+ ClassDB::bind_method(_MD("_down_pressed"),&SpriteFramesEditor::_down_pressed);
+ ClassDB::bind_method(_MD("_animation_select"),&SpriteFramesEditor::_animation_select);
+ ClassDB::bind_method(_MD("_animation_name_edited"),&SpriteFramesEditor::_animation_name_edited);
+ ClassDB::bind_method(_MD("_animation_add"),&SpriteFramesEditor::_animation_add);
+ ClassDB::bind_method(_MD("_animation_remove"),&SpriteFramesEditor::_animation_remove);
+ ClassDB::bind_method(_MD("_animation_loop_changed"),&SpriteFramesEditor::_animation_loop_changed);
+ ClassDB::bind_method(_MD("_animation_fps_changed"),&SpriteFramesEditor::_animation_fps_changed);
+ ClassDB::bind_method(_MD("get_drag_data_fw"), &SpriteFramesEditor::get_drag_data_fw);
+ ClassDB::bind_method(_MD("can_drop_data_fw"), &SpriteFramesEditor::can_drop_data_fw);
+ ClassDB::bind_method(_MD("drop_data_fw"), &SpriteFramesEditor::drop_data_fw);
}
@@ -929,7 +929,7 @@ void SpriteFramesEditorPlugin::edit(Object *p_object) {
bool SpriteFramesEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("SpriteFrames");
+ return p_object->is_class("SpriteFrames");
}
void SpriteFramesEditorPlugin::make_visible(bool p_visible) {
@@ -937,14 +937,14 @@ void SpriteFramesEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
button->show();
editor->make_bottom_panel_item_visible(frames_editor);
-// frames_editor->set_process(true);
+ //frames_editor->set_process(true);
} else {
button->hide();
- if (frames_editor->is_visible())
+ if (frames_editor->is_visible_in_tree())
editor->hide_bottom_panel();
-// frames_editor->set_process(false);
+ //frames_editor->set_process(false);
}
}
diff --git a/tools/editor/plugins/sprite_frames_editor_plugin.h b/tools/editor/plugins/sprite_frames_editor_plugin.h
index f0aa84c23a..36a022b7e4 100644
--- a/tools/editor/plugins/sprite_frames_editor_plugin.h
+++ b/tools/editor/plugins/sprite_frames_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -41,7 +41,7 @@
class SpriteFramesEditor : public PanelContainer {
- OBJ_TYPE(SpriteFramesEditor, PanelContainer );
+ GDCLASS(SpriteFramesEditor, PanelContainer );
Button *load;
Button *_delete;
@@ -73,7 +73,7 @@ class SpriteFramesEditor : public PanelContainer {
void _load_pressed();
void _load_scene_pressed();
- void _file_load_request(const DVector<String>& p_path, int p_at_pos=-1);
+ void _file_load_request(const PoolVector<String>& p_path, int p_at_pos=-1);
void _paste_pressed();
void _empty_pressed();
void _empty2_pressed();
@@ -104,7 +104,7 @@ class SpriteFramesEditor : public PanelContainer {
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
static void _bind_methods();
public:
@@ -116,7 +116,7 @@ public:
class SpriteFramesEditorPlugin : public EditorPlugin {
- OBJ_TYPE( SpriteFramesEditorPlugin, EditorPlugin );
+ GDCLASS( SpriteFramesEditorPlugin, EditorPlugin );
SpriteFramesEditor *frames_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/stream_editor_plugin.cpp b/tools/editor/plugins/stream_editor_plugin.cpp
index d896784074..991c29b6db 100644
--- a/tools/editor/plugins/stream_editor_plugin.cpp
+++ b/tools/editor/plugins/stream_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -28,7 +28,7 @@
/*************************************************************************/
#include "stream_editor_plugin.h"
-
+#if 0
void StreamEditor::_notification(int p_what) {
@@ -59,8 +59,8 @@ void StreamEditor::_stop() {
void StreamEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_play"),&StreamEditor::_play);
- ObjectTypeDB::bind_method(_MD("_stop"),&StreamEditor::_stop);
+ ClassDB::bind_method(_MD("_play"),&StreamEditor::_play);
+ ClassDB::bind_method(_MD("_stop"),&StreamEditor::_stop);
}
@@ -104,7 +104,7 @@ void StreamEditorPlugin::edit(Object *p_object) {
bool StreamEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("StreamPlayer") || p_object->is_type("SpatialStreamPlayer");
+ return p_object->is_class("StreamPlayer") || p_object->is_class("SpatialStreamPlayer");
}
void StreamEditorPlugin::make_visible(bool p_visible) {
@@ -146,3 +146,4 @@ StreamEditorPlugin::~StreamEditorPlugin()
{
}
+#endif
diff --git a/tools/editor/plugins/stream_editor_plugin.h b/tools/editor/plugins/stream_editor_plugin.h
index 5730612d61..cc853d4661 100644
--- a/tools/editor/plugins/stream_editor_plugin.h
+++ b/tools/editor/plugins/stream_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,7 +29,7 @@
#ifndef STREAM_EDITOR_PLUGIN_H
#define STREAM_EDITOR_PLUGIN_H
-
+#if 0
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
#include "scene/audio/stream_player.h"
@@ -40,7 +40,7 @@
class StreamEditor : public Control {
- OBJ_TYPE(StreamEditor, Control );
+ GDCLASS(StreamEditor, Control );
Button * play;
Button * stop;
@@ -62,7 +62,7 @@ public:
class StreamEditorPlugin : public EditorPlugin {
- OBJ_TYPE( StreamEditorPlugin, EditorPlugin );
+ GDCLASS( StreamEditorPlugin, EditorPlugin );
StreamEditor *stream_editor;
EditorNode *editor;
@@ -81,3 +81,4 @@ public:
};
#endif // STREAM_EDITOR_PLUGIN_H
+#endif
diff --git a/tools/editor/plugins/style_box_editor_plugin.cpp b/tools/editor/plugins/style_box_editor_plugin.cpp
index d5c885bd55..396ebd0052 100644
--- a/tools/editor/plugins/style_box_editor_plugin.cpp
+++ b/tools/editor/plugins/style_box_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -48,10 +48,10 @@ void StyleBoxEditor::_sb_changed() {
void StyleBoxEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_sb_changed",&StyleBoxEditor::_sb_changed);
-// ObjectTypeDB::bind_method("_import",&StyleBoxEditor::_import);
-// ObjectTypeDB::bind_method("_import_accept",&StyleBoxEditor::_import_accept);
-// ObjectTypeDB::bind_method("_preview_text_changed",&StyleBoxEditor::_preview_text_changed);
+ ClassDB::bind_method("_sb_changed",&StyleBoxEditor::_sb_changed);
+ //ClassDB::bind_method("_import",&StyleBoxEditor::_import);
+ //ClassDB::bind_method("_import_accept",&StyleBoxEditor::_import_accept);
+ //ClassDB::bind_method("_preview_text_changed",&StyleBoxEditor::_preview_text_changed);
}
StyleBoxEditor::StyleBoxEditor() {
@@ -85,7 +85,7 @@ void StyleBoxEditorPlugin::edit(Object *p_node) {
bool StyleBoxEditorPlugin::handles(Object *p_node) const{
- return p_node->is_type("StyleBox");
+ return p_node->is_class("StyleBox");
}
void StyleBoxEditorPlugin::make_visible(bool p_visible){
@@ -95,7 +95,7 @@ void StyleBoxEditorPlugin::make_visible(bool p_visible){
EditorNode::get_singleton()->make_bottom_panel_item_visible(stylebox_editor);
} else {
- if (stylebox_editor->is_visible())
+ if (stylebox_editor->is_visible_in_tree())
EditorNode::get_singleton()->hide_bottom_panel();
button->hide();
}
diff --git a/tools/editor/plugins/style_box_editor_plugin.h b/tools/editor/plugins/style_box_editor_plugin.h
index 737f830bbb..29e98efd8b 100644
--- a/tools/editor/plugins/style_box_editor_plugin.h
+++ b/tools/editor/plugins/style_box_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -30,14 +30,14 @@
#define STYLE_BOX_EDITOR_PLUGIN_H
#include "scene/resources/style_box.h"
-#include "scene/gui/texture_frame.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/option_button.h"
#include "tools/editor/editor_node.h"
class StyleBoxEditor : public Control {
- OBJ_TYPE( StyleBoxEditor, Control );
+ GDCLASS( StyleBoxEditor, Control );
Panel *panel;
Panel *preview;
@@ -61,7 +61,7 @@ public:
class StyleBoxEditorPlugin : public EditorPlugin {
- OBJ_TYPE( StyleBoxEditorPlugin, EditorPlugin );
+ GDCLASS( StyleBoxEditorPlugin, EditorPlugin );
StyleBoxEditor *stylebox_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/texture_editor_plugin.cpp b/tools/editor/plugins/texture_editor_plugin.cpp
index 1305e91105..82cba7ac0e 100644
--- a/tools/editor/plugins/texture_editor_plugin.cpp
+++ b/tools/editor/plugins/texture_editor_plugin.cpp
@@ -1,10 +1,38 @@
+/*************************************************************************/
+/* texture_editor_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#include "texture_editor_plugin.h"
#include "io/resource_loader.h"
#include "globals.h"
#include "tools/editor/editor_settings.h"
-void TextureEditor::_input_event(InputEvent p_event) {
+void TextureEditor::_gui_input(InputEvent p_event) {
}
@@ -49,7 +77,7 @@ void TextureEditor::_notification(int p_what) {
if (texture->cast_to<ImageTexture>()) {
format = Image::get_format_name(texture->cast_to<ImageTexture>()->get_format());
} else {
- format=texture->get_type();
+ format=texture->get_class();
}
String text = itos(texture->get_width())+"x"+itos(texture->get_height())+" "+format;
@@ -84,7 +112,7 @@ void TextureEditor::edit(Ref<Texture> p_texture) {
void TextureEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_input_event"),&TextureEditor::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&TextureEditor::_gui_input);
}
@@ -106,18 +134,18 @@ void TextureEditorPlugin::edit(Object *p_object) {
bool TextureEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("Texture");
+ return p_object->is_class("Texture");
}
void TextureEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
texture_editor->show();
-// texture_editor->set_process(true);
+ //texture_editor->set_process(true);
} else {
texture_editor->hide();
-// texture_editor->set_process(false);
+ //texture_editor->set_process(false);
}
}
diff --git a/tools/editor/plugins/texture_editor_plugin.h b/tools/editor/plugins/texture_editor_plugin.h
index 5f58f4fcdb..456a5249de 100644
--- a/tools/editor/plugins/texture_editor_plugin.h
+++ b/tools/editor/plugins/texture_editor_plugin.h
@@ -1,3 +1,31 @@
+/*************************************************************************/
+/* texture_editor_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#ifndef TEXTURE_EDITOR_PLUGIN_H
#define TEXTURE_EDITOR_PLUGIN_H
@@ -10,14 +38,14 @@
class TextureEditor : public Control {
- OBJ_TYPE(TextureEditor, Control);
+ GDCLASS(TextureEditor, Control);
Ref<Texture> texture;
protected:
void _notification(int p_what);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
static void _bind_methods();
public:
@@ -28,7 +56,7 @@ public:
class TextureEditorPlugin : public EditorPlugin {
- OBJ_TYPE( TextureEditorPlugin, EditorPlugin );
+ GDCLASS( TextureEditorPlugin, EditorPlugin );
TextureEditor *texture_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/texture_region_editor_plugin.cpp b/tools/editor/plugins/texture_region_editor_plugin.cpp
index 6b918e6e8f..9b0ca0a482 100644
--- a/tools/editor/plugins/texture_region_editor_plugin.cpp
+++ b/tools/editor/plugins/texture_region_editor_plugin.cpp
@@ -1,11 +1,11 @@
/*************************************************************************/
-/* texture_region_editor_plugin.cpp */
+/* texture_region_editor_plugin.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Author: Mariano Suligoy */
/* */
@@ -28,9 +28,9 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+#include "texture_region_editor_plugin.h"
#include "core/core_string_names.h"
-#include "texture_region_editor_plugin.h"
#include "scene/gui/check_box.h"
#include "os/input.h"
#include "os/keyboard.h"
@@ -57,14 +57,13 @@ void TextureRegionEditor::_region_draw()
if (base_tex.is_null())
return;
- Matrix32 mtx;
+ Transform2D mtx;
mtx.elements[2]=-draw_ofs;
mtx.scale_basis(Vector2(draw_zoom,draw_zoom));
- VS::get_singleton()->canvas_item_set_clip(edit_draw->get_canvas_item(),true);
VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(),mtx);
edit_draw->draw_texture(base_tex,Point2());
- VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(),Matrix32());
+ VS::get_singleton()->canvas_item_add_set_transform(edit_draw->get_canvas_item(),Transform2D());
if (snap_mode == SNAP_GRID) {
Size2 s = edit_draw->get_size();
@@ -166,13 +165,13 @@ void TextureRegionEditor::_region_draw()
hscroll->set_min(scroll_rect.pos.x);
hscroll->set_max(scroll_rect.pos.x+scroll_rect.size.x);
hscroll->set_page(edit_draw->get_size().x);
- hscroll->set_val(draw_ofs.x);
+ hscroll->set_value(draw_ofs.x);
hscroll->set_step(0.001);
vscroll->set_min(scroll_rect.pos.y);
vscroll->set_max(scroll_rect.pos.y+scroll_rect.size.y);
vscroll->set_page(edit_draw->get_size().y);
- vscroll->set_val(draw_ofs.y);
+ vscroll->set_value(draw_ofs.y);
vscroll->set_step(0.001);
updating_scroll=false;
@@ -204,7 +203,7 @@ void TextureRegionEditor::_region_draw()
void TextureRegionEditor::_region_input(const InputEvent& p_input)
{
- Matrix32 mtx;
+ Transform2D mtx;
mtx.elements[2]=-draw_ofs;
mtx.scale_basis(Vector2(draw_zoom,draw_zoom));
@@ -388,9 +387,9 @@ void TextureRegionEditor::_region_input(const InputEvent& p_input)
drag_index = -1;
}
}
- } else if (mb.button_index == BUTTON_WHEEL_UP) {
+ } else if (mb.button_index == BUTTON_WHEEL_UP && mb.pressed) {
_zoom_in();
- } else if (mb.button_index == BUTTON_WHEEL_DOWN) {
+ } else if (mb.button_index == BUTTON_WHEEL_DOWN && mb.pressed) {
_zoom_out();
}
} else if (p_input.type==InputEvent::MOUSE_MOTION) {
@@ -400,8 +399,8 @@ void TextureRegionEditor::_region_input(const InputEvent& p_input)
if (mm.button_mask&BUTTON_MASK_MIDDLE || Input::get_singleton()->is_key_pressed(KEY_SPACE)) {
Vector2 draged(mm.relative_x,mm.relative_y);
- hscroll->set_val( hscroll->get_val()-draged.x );
- vscroll->set_val( vscroll->get_val()-draged.y );
+ hscroll->set_value( hscroll->get_value()-draged.x );
+ vscroll->set_value( vscroll->get_value()-draged.y );
} else if (drag) {
@@ -500,15 +499,15 @@ void TextureRegionEditor::_scroll_changed(float)
if (updating_scroll)
return;
- draw_ofs.x=hscroll->get_val();
- draw_ofs.y=vscroll->get_val();
+ draw_ofs.x=hscroll->get_value();
+ draw_ofs.y=vscroll->get_value();
edit_draw->update();
}
void TextureRegionEditor::_set_snap_mode(int p_mode)
{
- snap_mode = p_mode;
snap_mode_button->get_popup()->set_item_checked(snap_mode,false);
+ snap_mode = p_mode;
snap_mode_button->set_text(snap_mode_button->get_popup()->get_item_text(p_mode));
snap_mode_button->get_popup()->set_item_checked(snap_mode,true);
@@ -615,21 +614,21 @@ void TextureRegionEditor::_node_removed(Object *p_obj)
void TextureRegionEditor::_bind_methods()
{
- ObjectTypeDB::bind_method(_MD("_edit_region"),&TextureRegionEditor::_edit_region);
- ObjectTypeDB::bind_method(_MD("_region_draw"),&TextureRegionEditor::_region_draw);
- ObjectTypeDB::bind_method(_MD("_region_input"),&TextureRegionEditor::_region_input);
- ObjectTypeDB::bind_method(_MD("_scroll_changed"),&TextureRegionEditor::_scroll_changed);
- ObjectTypeDB::bind_method(_MD("_node_removed"),&TextureRegionEditor::_node_removed);
- ObjectTypeDB::bind_method(_MD("_set_snap_mode"),&TextureRegionEditor::_set_snap_mode);
- ObjectTypeDB::bind_method(_MD("_set_snap_off_x"),&TextureRegionEditor::_set_snap_off_x);
- ObjectTypeDB::bind_method(_MD("_set_snap_off_y"),&TextureRegionEditor::_set_snap_off_y);
- ObjectTypeDB::bind_method(_MD("_set_snap_step_x"),&TextureRegionEditor::_set_snap_step_x);
- ObjectTypeDB::bind_method(_MD("_set_snap_step_y"),&TextureRegionEditor::_set_snap_step_y);
- ObjectTypeDB::bind_method(_MD("_set_snap_sep_x"),&TextureRegionEditor::_set_snap_sep_x);
- ObjectTypeDB::bind_method(_MD("_set_snap_sep_y"),&TextureRegionEditor::_set_snap_sep_y);
- ObjectTypeDB::bind_method(_MD("_zoom_in"),&TextureRegionEditor::_zoom_in);
- ObjectTypeDB::bind_method(_MD("_zoom_reset"),&TextureRegionEditor::_zoom_reset);
- ObjectTypeDB::bind_method(_MD("_zoom_out"),&TextureRegionEditor::_zoom_out);
+ ClassDB::bind_method(_MD("_edit_region"),&TextureRegionEditor::_edit_region);
+ ClassDB::bind_method(_MD("_region_draw"),&TextureRegionEditor::_region_draw);
+ ClassDB::bind_method(_MD("_region_input"),&TextureRegionEditor::_region_input);
+ ClassDB::bind_method(_MD("_scroll_changed"),&TextureRegionEditor::_scroll_changed);
+ ClassDB::bind_method(_MD("_node_removed"),&TextureRegionEditor::_node_removed);
+ ClassDB::bind_method(_MD("_set_snap_mode"),&TextureRegionEditor::_set_snap_mode);
+ ClassDB::bind_method(_MD("_set_snap_off_x"),&TextureRegionEditor::_set_snap_off_x);
+ ClassDB::bind_method(_MD("_set_snap_off_y"),&TextureRegionEditor::_set_snap_off_y);
+ ClassDB::bind_method(_MD("_set_snap_step_x"),&TextureRegionEditor::_set_snap_step_x);
+ ClassDB::bind_method(_MD("_set_snap_step_y"),&TextureRegionEditor::_set_snap_step_y);
+ ClassDB::bind_method(_MD("_set_snap_sep_x"),&TextureRegionEditor::_set_snap_sep_x);
+ ClassDB::bind_method(_MD("_set_snap_sep_y"),&TextureRegionEditor::_set_snap_sep_y);
+ ClassDB::bind_method(_MD("_zoom_in"),&TextureRegionEditor::_zoom_in);
+ ClassDB::bind_method(_MD("_zoom_reset"),&TextureRegionEditor::_zoom_reset);
+ ClassDB::bind_method(_MD("_zoom_out"),&TextureRegionEditor::_zoom_out);
}
void TextureRegionEditor::edit(Object *p_obj)
@@ -644,7 +643,7 @@ void TextureRegionEditor::edit(Object *p_obj)
atlas_tex->disconnect("atlas_changed",this,"_edit_region");
if (p_obj) {
node_sprite = p_obj->cast_to<Sprite>();
- node_patch9 = p_obj->cast_to<Patch9Frame>();
+ node_patch9 = p_obj->cast_to<NinePatchRect>();
if (p_obj->cast_to<StyleBoxTexture>())
obj_styleBox = Ref<StyleBoxTexture>(p_obj->cast_to<StyleBoxTexture>());
if (p_obj->cast_to<AtlasTexture>()) {
@@ -654,17 +653,17 @@ void TextureRegionEditor::edit(Object *p_obj)
p_obj->connect("texture_changed",this,"_edit_region");
}
p_obj->add_change_receptor(this);
- p_obj->connect("exit_tree",this,"_node_removed",varray(p_obj),CONNECT_ONESHOT);
+ p_obj->connect("tree_exited",this,"_node_removed",varray(p_obj),CONNECT_ONESHOT);
_edit_region();
} else {
if(node_sprite)
- node_sprite->disconnect("exit_tree",this,"_node_removed");
+ node_sprite->disconnect("tree_exited",this,"_node_removed");
else if(node_patch9)
- node_patch9->disconnect("exit_tree",this,"_node_removed");
+ node_patch9->disconnect("tree_exited",this,"_node_removed");
else if(obj_styleBox.is_valid())
- obj_styleBox->disconnect("exit_tree",this,"_node_removed");
+ obj_styleBox->disconnect("tree_exited",this,"_node_removed");
else if(atlas_tex.is_valid())
- atlas_tex->disconnect("exit_tree",this,"_node_removed");
+ atlas_tex->disconnect("tree_exited",this,"_node_removed");
node_sprite = NULL;
node_patch9 = NULL;
@@ -818,7 +817,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
for (int i = 0; i < 4; i++)
p->set_item_as_checkable(i,true);
p->set_item_checked(0,true);
- p->connect("item_pressed", this, "_set_snap_mode");
+ p->connect("id_pressed", this, "_set_snap_mode");
hb_grid = memnew( HBoxContainer );
hb_tools->add_child(hb_grid);
hb_grid->add_child( memnew( VSeparator ));
@@ -829,7 +828,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_off_x->set_min(-256);
sb_off_x->set_max(256);
sb_off_x->set_step(1);
- sb_off_x->set_val(snap_offset.x);
+ sb_off_x->set_value(snap_offset.x);
sb_off_x->set_suffix("px");
sb_off_x->connect("value_changed", this, "_set_snap_off_x");
hb_grid->add_child(sb_off_x);
@@ -838,7 +837,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_off_y->set_min(-256);
sb_off_y->set_max(256);
sb_off_y->set_step(1);
- sb_off_y->set_val(snap_offset.y);
+ sb_off_y->set_value(snap_offset.y);
sb_off_y->set_suffix("px");
sb_off_y->connect("value_changed", this, "_set_snap_off_y");
hb_grid->add_child(sb_off_y);
@@ -850,7 +849,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_step_x->set_min(-256);
sb_step_x->set_max(256);
sb_step_x->set_step(1);
- sb_step_x->set_val(snap_step.x);
+ sb_step_x->set_value(snap_step.x);
sb_step_x->set_suffix("px");
sb_step_x->connect("value_changed", this, "_set_snap_step_x");
hb_grid->add_child(sb_step_x);
@@ -859,7 +858,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_step_y->set_min(-256);
sb_step_y->set_max(256);
sb_step_y->set_step(1);
- sb_step_y->set_val(snap_step.y);
+ sb_step_y->set_value(snap_step.y);
sb_step_y->set_suffix("px");
sb_step_y->connect("value_changed", this, "_set_snap_step_y");
hb_grid->add_child(sb_step_y);
@@ -871,7 +870,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_sep_x->set_min(0);
sb_sep_x->set_max(256);
sb_sep_x->set_step(1);
- sb_sep_x->set_val(snap_separation.x);
+ sb_sep_x->set_value(snap_separation.x);
sb_sep_x->set_suffix("px");
sb_sep_x->connect("value_changed", this, "_set_snap_sep_x");
hb_grid->add_child(sb_sep_x);
@@ -880,7 +879,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
sb_sep_y->set_min(0);
sb_sep_y->set_max(256);
sb_sep_y->set_step(1);
- sb_sep_y->set_val(snap_separation.y);
+ sb_sep_y->set_value(snap_separation.y);
sb_sep_y->set_suffix("px");
sb_sep_y->connect("value_changed", this, "_set_snap_sep_y");
hb_grid->add_child(sb_sep_y);
@@ -898,7 +897,7 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
separator->set_h_size_flags(Control::SIZE_EXPAND_FILL);
hb_tools->add_child(separator);
- icon_zoom = memnew( TextureFrame );
+ icon_zoom = memnew( TextureRect );
hb_tools->add_child(icon_zoom);
zoom_out = memnew( ToolButton );
@@ -921,10 +920,12 @@ TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
hscroll->connect("value_changed",this,"_scroll_changed");
edit_draw->connect("draw",this,"_region_draw");
- edit_draw->connect("input_event",this,"_region_input");
+ edit_draw->connect("gui_input",this,"_region_input");
draw_zoom=1.0;
updating_scroll=false;
+ edit_draw->set_clip_contents(true);
+
}
void TextureRegionEditorPlugin::edit(Object *p_node)
@@ -934,7 +935,7 @@ void TextureRegionEditorPlugin::edit(Object *p_node)
bool TextureRegionEditorPlugin::handles(Object *p_obj) const
{
- return p_obj->is_type("Sprite") || p_obj->is_type("Patch9Frame") || p_obj->is_type("StyleBoxTexture") || p_obj->is_type("AtlasTexture");
+ return p_obj->is_class("Sprite") || p_obj->is_class("Patch9Rect") || p_obj->is_class("StyleBoxTexture") || p_obj->is_class("AtlasTexture");
}
void TextureRegionEditorPlugin::make_visible(bool p_visible)
@@ -971,22 +972,22 @@ void TextureRegionEditorPlugin::set_state(const Dictionary& p_state){
if (state.has("snap_step")) {
Vector2 s = state["snap_step"];
- region_editor->sb_step_x->set_val(s.x);
- region_editor->sb_step_y->set_val(s.y);
+ region_editor->sb_step_x->set_value(s.x);
+ region_editor->sb_step_y->set_value(s.y);
region_editor->snap_step = s;
}
if (state.has("snap_offset")) {
Vector2 ofs = state["snap_offset"];
- region_editor->sb_off_x->set_val(ofs.x);
- region_editor->sb_off_y->set_val(ofs.y);
+ region_editor->sb_off_x->set_value(ofs.x);
+ region_editor->sb_off_y->set_value(ofs.y);
region_editor->snap_offset = ofs;
}
if (state.has("snap_separation")) {
Vector2 sep = state["snap_separation"];
- region_editor->sb_sep_x->set_val(sep.x);
- region_editor->sb_sep_y->set_val(sep.y);
+ region_editor->sb_sep_x->set_value(sep.x);
+ region_editor->sb_sep_y->set_value(sep.y);
region_editor->snap_separation = sep;
}
diff --git a/tools/editor/plugins/texture_region_editor_plugin.h b/tools/editor/plugins/texture_region_editor_plugin.h
index f0bb7c9bc2..da713a53d3 100644
--- a/tools/editor/plugins/texture_region_editor_plugin.h
+++ b/tools/editor/plugins/texture_region_editor_plugin.h
@@ -1,11 +1,11 @@
/*************************************************************************/
-/* texture_region_editor_plugin.h */
+/* texture_region_editor_plugin.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Author: Mariano Suligoy */
/* */
@@ -36,13 +36,13 @@
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
#include "scene/2d/sprite.h"
-#include "scene/gui/patch_9_frame.h"
+#include "scene/gui/patch_9_rect.h"
#include "scene/resources/style_box.h"
#include "scene/resources/texture.h"
class TextureRegionEditor : public Control {
- OBJ_TYPE(TextureRegionEditor, Control );
+ GDCLASS(TextureRegionEditor, Control );
enum SnapMode {
SNAP_NONE,
@@ -53,7 +53,7 @@ class TextureRegionEditor : public Control {
friend class TextureRegionEditorPlugin;
MenuButton *snap_mode_button;
- TextureFrame *icon_zoom;
+ TextureRect *icon_zoom;
ToolButton *zoom_in;
ToolButton *zoom_reset;
ToolButton *zoom_out;
@@ -81,7 +81,7 @@ class TextureRegionEditor : public Control {
Vector2 snap_step;
Vector2 snap_separation;
- Patch9Frame *node_patch9;
+ NinePatchRect *node_patch9;
Sprite *node_sprite;
Ref<StyleBoxTexture> obj_styleBox;
Ref<AtlasTexture> atlas_tex;
@@ -132,7 +132,7 @@ public:
class TextureRegionEditorPlugin : public EditorPlugin
{
- OBJ_TYPE( TextureRegionEditorPlugin, EditorPlugin );
+ GDCLASS( TextureRegionEditorPlugin, EditorPlugin );
Button *region_button;
TextureRegionEditor *region_editor;
diff --git a/tools/editor/plugins/theme_editor_plugin.cpp b/tools/editor/plugins/theme_editor_plugin.cpp
index 84568aa8c0..4b8fea5a45 100644
--- a/tools/editor/plugins/theme_editor_plugin.cpp
+++ b/tools/editor/plugins/theme_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,8 +26,9 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "version.h"
#include "theme_editor_plugin.h"
+
+#include "version.h"
#include "os/file_access.h"
void ThemeEditor::edit(const Ref<Theme>& p_theme) {
@@ -584,7 +585,7 @@ void ThemeEditor::_theme_menu_cbk(int p_option) {
List<StringName> types;
base_theme->get_type_list(&types);
- type_menu->get_popup()->clear();;
+ type_menu->get_popup()->clear();
if (p_option==0 || p_option==1) {//add
@@ -631,12 +632,12 @@ void ThemeEditor::_notification(int p_what) {
void ThemeEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_type_menu_cbk",&ThemeEditor::_type_menu_cbk);
- ObjectTypeDB::bind_method("_name_menu_about_to_show",&ThemeEditor::_name_menu_about_to_show);
- ObjectTypeDB::bind_method("_name_menu_cbk",&ThemeEditor::_name_menu_cbk);
- ObjectTypeDB::bind_method("_theme_menu_cbk",&ThemeEditor::_theme_menu_cbk);
- ObjectTypeDB::bind_method("_dialog_cbk",&ThemeEditor::_dialog_cbk);
- ObjectTypeDB::bind_method("_save_template_cbk",&ThemeEditor::_save_template_cbk);
+ ClassDB::bind_method("_type_menu_cbk",&ThemeEditor::_type_menu_cbk);
+ ClassDB::bind_method("_name_menu_about_to_show",&ThemeEditor::_name_menu_about_to_show);
+ ClassDB::bind_method("_name_menu_cbk",&ThemeEditor::_name_menu_cbk);
+ ClassDB::bind_method("_theme_menu_cbk",&ThemeEditor::_theme_menu_cbk);
+ ClassDB::bind_method("_dialog_cbk",&ThemeEditor::_dialog_cbk);
+ ClassDB::bind_method("_save_template_cbk",&ThemeEditor::_save_template_cbk);
}
ThemeEditor::ThemeEditor() {
@@ -679,7 +680,7 @@ ThemeEditor::ThemeEditor() {
add_child(theme_menu);
theme_menu->set_pos(Vector2(3,3)*EDSCALE);
- theme_menu->get_popup()->connect("item_pressed", this,"_theme_menu_cbk");
+ theme_menu->get_popup()->connect("id_pressed", this,"_theme_menu_cbk");
HBoxContainer *main_hb = memnew( HBoxContainer );
@@ -693,9 +694,9 @@ ThemeEditor::ThemeEditor() {
-// main_panel->add_child(panel);
-// panel->set_area_as_parent_rect();
-// panel->set_margin( MARGIN_TOP,20 );
+ //main_panel->add_child(panel);
+ //panel->set_area_as_parent_rect();
+ //panel->set_margin( MARGIN_TOP,20 );
first_vb->add_child(memnew( Label("Label") ));
@@ -711,7 +712,7 @@ ThemeEditor::ThemeEditor() {
first_vb->add_child(cbx );
- ButtonGroup *bg = memnew( ButtonGroup );
+ VBoxContainer *bg = memnew( VBoxContainer );
bg->set_v_size_flags(SIZE_EXPAND_FILL);
VBoxContainer *gbvb = memnew( VBoxContainer );
gbvb->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -750,7 +751,7 @@ ThemeEditor::ThemeEditor() {
first_vb->add_child( memnew( HScrollBar ));
first_vb->add_child( memnew( SpinBox ));
ProgressBar *pb=memnew( ProgressBar );
- pb->set_val(50);
+ pb->set_value(50);
first_vb->add_child( pb);
Panel *pn=memnew( Panel );
pn->set_custom_minimum_size(Size2(40,40)*EDSCALE);
@@ -898,7 +899,7 @@ ThemeEditor::ThemeEditor() {
type_menu->set_text("..");
add_del_dialog->add_child(type_menu);
- type_menu->get_popup()->connect("item_pressed", this,"_type_menu_cbk");
+ type_menu->get_popup()->connect("id_pressed", this,"_type_menu_cbk");
l = memnew( Label );
l->set_pos( Point2(200,5)*EDSCALE );
@@ -918,7 +919,7 @@ ThemeEditor::ThemeEditor() {
add_del_dialog->add_child(name_menu);
name_menu->get_popup()->connect("about_to_show", this,"_name_menu_about_to_show");
- name_menu->get_popup()->connect("item_pressed", this,"_name_menu_cbk");
+ name_menu->get_popup()->connect("id_pressed", this,"_name_menu_cbk");
type_select_label= memnew( Label );
type_select_label->set_pos( Point2(400,5)*EDSCALE );
@@ -963,7 +964,7 @@ void ThemeEditorPlugin::edit(Object *p_node) {
bool ThemeEditorPlugin::handles(Object *p_node) const{
- return p_node->is_type("Theme");
+ return p_node->is_class("Theme");
}
void ThemeEditorPlugin::make_visible(bool p_visible){
@@ -975,7 +976,7 @@ void ThemeEditorPlugin::make_visible(bool p_visible){
} else {
theme_editor->set_process(false);
- if (theme_editor->is_visible())
+ if (theme_editor->is_visible_in_tree())
editor->hide_bottom_panel();
button->hide();
}
@@ -987,7 +988,7 @@ ThemeEditorPlugin::ThemeEditorPlugin(EditorNode *p_node) {
theme_editor = memnew( ThemeEditor );
theme_editor->set_custom_minimum_size(Size2(0,200));
-// p_node->get_viewport()->add_child(theme_editor);
+ //p_node->get_viewport()->add_child(theme_editor);
button=editor->add_bottom_panel_item("Theme",theme_editor);
button->hide();
diff --git a/tools/editor/plugins/theme_editor_plugin.h b/tools/editor/plugins/theme_editor_plugin.h
index ea8f8c1d3c..9251da8e07 100644
--- a/tools/editor/plugins/theme_editor_plugin.h
+++ b/tools/editor/plugins/theme_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -30,7 +30,7 @@
#define THEME_EDITOR_PLUGIN_H
#include "scene/resources/theme.h"
-#include "scene/gui/texture_frame.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/option_button.h"
#include "scene/gui/file_dialog.h"
#include "scene/gui/check_box.h"
@@ -44,7 +44,7 @@
class ThemeEditor : public Control {
- OBJ_TYPE( ThemeEditor, Control );
+ GDCLASS( ThemeEditor, Control );
ScrollContainer *scroll;
@@ -103,7 +103,7 @@ public:
class ThemeEditorPlugin : public EditorPlugin {
- OBJ_TYPE( ThemeEditorPlugin, EditorPlugin );
+ GDCLASS( ThemeEditorPlugin, EditorPlugin );
ThemeEditor *theme_editor;
EditorNode *editor;
diff --git a/tools/editor/plugins/tile_map_editor_plugin.cpp b/tools/editor/plugins/tile_map_editor_plugin.cpp
index 43fe7d7ea9..7c232f0c32 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_map_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,12 +26,10 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-
#include "tile_map_editor_plugin.h"
#include "os/keyboard.h"
#include "os/input.h"
-
#include "canvas_item_editor_plugin.h"
#include "tools/editor/editor_settings.h"
#include "tools/editor/editor_scale.h"
@@ -53,7 +51,7 @@ void TileMapEditor::_notification(int p_what) {
} break;
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
- if (is_visible()) {
+ if (is_visible_in_tree()) {
_update_palette();
}
} break;
@@ -189,7 +187,7 @@ void TileMapEditor::_sbox_input(const InputEvent& p_ie) {
p_ie.key.scancode == KEY_PAGEUP ||
p_ie.key.scancode == KEY_PAGEDOWN ) ) {
- palette->call("_input_event", p_ie);
+ palette->call("_gui_input", p_ie);
search_box->accept_event();
}
}
@@ -212,16 +210,16 @@ void TileMapEditor::_update_palette() {
if (tiles.empty())
return;
- float min_size = EDITOR_DEF("tile_map/preview_size", 64);
+ float min_size = EDITOR_DEF("editors/tile_map/preview_size", 64);
min_size *= EDSCALE;
- int hseparation = EDITOR_DEF("tile_map/palette_item_hseparation",8);
- bool show_tile_names = bool(EDITOR_DEF("tile_map/show_tile_names", true));
+ int hseparation = EDITOR_DEF("editors/tile_map/palette_item_hseparation",8);
+ bool show_tile_names = bool(EDITOR_DEF("editors/tile_map/show_tile_names", true));
palette->add_constant_override("hseparation", hseparation*EDSCALE);
palette->add_constant_override("vseparation", 8*EDSCALE);
palette->set_fixed_icon_size(Size2(min_size, min_size));
- palette->set_fixed_column_width(min_size * MAX(size_slider->get_val(), 1));
+ palette->set_fixed_column_width(min_size * MAX(size_slider->get_value(), 1));
String filter = search_box->get_text().strip_edges();
@@ -289,7 +287,7 @@ void TileMapEditor::_pick_tile(const Point2& p_pos) {
canvas_item_editor->update();
}
-DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase) {
+PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase, bool preview) {
int prev_id = node->get_cell(p_start.x, p_start.y);
int id = TileMap::INVALID_CELL;
@@ -297,14 +295,43 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase)
id = get_selected_tile();
if (id == TileMap::INVALID_CELL)
- return DVector<Vector2>();
+ return PoolVector<Vector2>();
}
- Rect2 r = node->get_item_rect();
+ Rect2i r = node->get_item_rect();
r.pos = r.pos/node->get_cell_size();
r.size = r.size/node->get_cell_size();
- DVector<Vector2> points;
+ int area = r.get_area();
+ if(preview) {
+ // Test if we can re-use the result from preview bucket fill
+ bool invalidate_cache = false;
+ // Area changed
+ if(r != bucket_cache_rect)
+ _clear_bucket_cache();
+ // Cache grid is not initialized
+ if(bucket_cache_visited == 0) {
+ bucket_cache_visited = new bool[area];
+ invalidate_cache = true;
+ }
+ // Tile ID changed or position wasn't visited by the previous fill
+ int loc = (p_start.x - r.get_pos().x) + (p_start.y - r.get_pos().y) * r.get_size().x;
+ if(prev_id != bucket_cache_tile || !bucket_cache_visited[loc]) {
+ invalidate_cache = true;
+ }
+ if(invalidate_cache) {
+ for(int i = 0; i < area; ++i)
+ bucket_cache_visited[i] = false;
+ bucket_cache = PoolVector<Vector2>();
+ bucket_cache_tile = prev_id;
+ bucket_cache_rect = r;
+ }
+ else {
+ return bucket_cache;
+ }
+ }
+
+ PoolVector<Vector2> points;
List<Point2i> queue;
queue.push_back(p_start);
@@ -319,9 +346,17 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase)
if (node->get_cell(n.x, n.y) == prev_id) {
- node->set_cellv(n, id, flip_h, flip_v, transpose);
-
- points.push_back(n);
+ if(preview) {
+ int loc = (n.x - r.get_pos().x) + (n.y - r.get_pos().y) * r.get_size().x;
+ if(bucket_cache_visited[loc])
+ continue;
+ bucket_cache_visited[loc] = true;
+ bucket_cache.push_back(n);
+ }
+ else {
+ node->set_cellv(n, id, flip_h, flip_v, transpose);
+ points.push_back(n);
+ }
queue.push_back(n + Point2i(0, 1));
queue.push_back(n + Point2i(0, -1));
@@ -330,13 +365,13 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase)
}
}
- return points;
+ return preview ? bucket_cache : points;
}
-void TileMapEditor::_fill_points(const DVector<Vector2> p_points, const Dictionary& p_op) {
+void TileMapEditor::_fill_points(const PoolVector<Vector2> p_points, const Dictionary& p_op) {
int len = p_points.size();
- DVector<Vector2>::Read pr = p_points.read();
+ PoolVector<Vector2>::Read pr = p_points.read();
int id = p_op["id"];
bool xf = p_op["flip_h"];
@@ -349,10 +384,10 @@ void TileMapEditor::_fill_points(const DVector<Vector2> p_points, const Dictiona
}
}
-void TileMapEditor::_erase_points(const DVector<Vector2> p_points) {
+void TileMapEditor::_erase_points(const PoolVector<Vector2> p_points) {
int len = p_points.size();
- DVector<Vector2>::Read pr = p_points.read();
+ PoolVector<Vector2>::Read pr = p_points.read();
for (int i=0;i<len;i++) {
@@ -380,7 +415,7 @@ void TileMapEditor::_select(const Point2i& p_from, const Point2i& p_to) {
canvas_item_editor->update();
}
-void TileMapEditor::_draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Matrix32& p_xform) {
+void TileMapEditor::_draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Transform2D& p_xform) {
Ref<Texture> t = node->get_tileset()->tile_get_texture(p_cell);
@@ -468,6 +503,25 @@ void TileMapEditor::_draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h
canvas_item_editor->draw_texture_rect_region(t, rect, r, Color(1,1,1,0.5), p_transpose);
}
+void TileMapEditor::_draw_fill_preview(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Transform2D& p_xform) {
+
+ PoolVector<Vector2> points = _bucket_fill(p_point, false, true);
+ PoolVector<Vector2>::Read pr = points.read();
+ int len = points.size();
+ int time_after = OS::get_singleton()->get_ticks_msec();
+
+ for(int i = 0; i < len; ++i) {
+ _draw_cell(p_cell, pr[i], p_flip_h, p_flip_v, p_transpose, p_xform);
+ }
+}
+
+void TileMapEditor::_clear_bucket_cache() {
+ if(bucket_cache_visited) {
+ delete[] bucket_cache_visited;
+ bucket_cache_visited = 0;
+ }
+}
+
void TileMapEditor::_update_copydata() {
copydata.clear();
@@ -539,13 +593,13 @@ static inline Vector<Point2i> line(int x0, int x1, int y0, int y1) {
return points;
}
-bool TileMapEditor::forward_input_event(const InputEvent& p_event) {
+bool TileMapEditor::forward_gui_input(const InputEvent& p_event) {
- if (!node || !node->get_tileset().is_valid() || !node->is_visible())
+ if (!node || !node->get_tileset().is_valid() || !node->is_visible_in_tree())
return false;
- Matrix32 xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * node->get_global_transform();
- Matrix32 xform_inv = xform.affine_inverse();
+ Transform2D xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform_inv = xform.affine_inverse();
switch(p_event.type) {
@@ -692,7 +746,7 @@ bool TileMapEditor::forward_input_event(const InputEvent& p_event) {
pop["flip_v"] = node->is_cell_y_flipped(over_tile.x, over_tile.y);
pop["transpose"] = node->is_cell_transposed(over_tile.x, over_tile.y);
- DVector<Vector2> points = _bucket_fill(over_tile);
+ PoolVector<Vector2> points = _bucket_fill(over_tile);
if (points.size() == 0)
return false;
@@ -798,7 +852,7 @@ bool TileMapEditor::forward_input_event(const InputEvent& p_event) {
pop["flip_v"] = node->is_cell_y_flipped(over_tile.x, over_tile.y);
pop["transpose"] = node->is_cell_transposed(over_tile.x, over_tile.y);
- DVector<Vector2> points = _bucket_fill(over_tile, true);
+ PoolVector<Vector2> points = _bucket_fill(over_tile, true);
if (points.size() == 0)
return false;
@@ -1015,10 +1069,10 @@ void TileMapEditor::_canvas_draw() {
if (!node)
return;
- Matrix32 cell_xf = node->get_cell_transform();
+ Transform2D cell_xf = node->get_cell_transform();
- Matrix32 xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * node->get_global_transform();
- Matrix32 xform_inv = xform.affine_inverse();
+ Transform2D xform = CanvasItemEditor::get_singleton()->get_canvas_transform() * node->get_global_transform();
+ Transform2D xform_inv = xform.affine_inverse();
Size2 screen_size=canvas_item_editor->get_size();
@@ -1148,8 +1202,8 @@ void TileMapEditor::_canvas_draw() {
canvas_item_editor->draw_line(endpoints[i],endpoints[(i+1)%4],col,2);
- if (tool==TOOL_SELECTING || tool==TOOL_PICKING || tool==TOOL_BUCKET) {
-
+ bool bucket_preview = EditorSettings::get_singleton()->get("editors/tile_map/bucket_fill_preview");
+ if (tool==TOOL_SELECTING || tool==TOOL_PICKING || !bucket_preview) {
return;
}
@@ -1214,6 +1268,11 @@ void TileMapEditor::_canvas_draw() {
canvas_item_editor->draw_colored_polygon(points, Color(0.2,1.0,0.8,0.2));
+ } else if(tool == TOOL_BUCKET) {
+
+ int tile = get_selected_tile();
+ _draw_fill_preview(tile, over_tile, flip_h, flip_v, transpose, xform);
+
} else {
int st = get_selected_tile();
@@ -1241,10 +1300,10 @@ void TileMapEditor::edit(Node *p_tile_map) {
node=p_tile_map->cast_to<TileMap>();
if (!canvas_item_editor->is_connected("draw",this,"_canvas_draw"))
canvas_item_editor->connect("draw",this,"_canvas_draw");
- if (!canvas_item_editor->is_connected("mouse_enter",this,"_canvas_mouse_enter"))
- canvas_item_editor->connect("mouse_enter",this,"_canvas_mouse_enter");
- if (!canvas_item_editor->is_connected("mouse_exit",this,"_canvas_mouse_exit"))
- canvas_item_editor->connect("mouse_exit",this,"_canvas_mouse_exit");
+ if (!canvas_item_editor->is_connected("mouse_entered",this,"_canvas_mouse_enter"))
+ canvas_item_editor->connect("mouse_entered",this,"_canvas_mouse_enter");
+ if (!canvas_item_editor->is_connected("mouse_exited",this,"_canvas_mouse_exit"))
+ canvas_item_editor->connect("mouse_exited",this,"_canvas_mouse_exit");
_update_palette();
@@ -1253,10 +1312,10 @@ void TileMapEditor::edit(Node *p_tile_map) {
if (canvas_item_editor->is_connected("draw",this,"_canvas_draw"))
canvas_item_editor->disconnect("draw",this,"_canvas_draw");
- if (canvas_item_editor->is_connected("mouse_enter",this,"_canvas_mouse_enter"))
- canvas_item_editor->disconnect("mouse_enter",this,"_canvas_mouse_enter");
- if (canvas_item_editor->is_connected("mouse_exit",this,"_canvas_mouse_exit"))
- canvas_item_editor->disconnect("mouse_exit",this,"_canvas_mouse_exit");
+ if (canvas_item_editor->is_connected("mouse_entered",this,"_canvas_mouse_enter"))
+ canvas_item_editor->disconnect("mouse_entered",this,"_canvas_mouse_enter");
+ if (canvas_item_editor->is_connected("mouse_exited",this,"_canvas_mouse_exit"))
+ canvas_item_editor->disconnect("mouse_exited",this,"_canvas_mouse_exit");
_update_palette();
}
@@ -1264,6 +1323,8 @@ void TileMapEditor::edit(Node *p_tile_map) {
if (node)
node->connect("settings_changed",this,"_tileset_settings_changed");
+ _clear_bucket_cache();
+
}
void TileMapEditor::_tileset_settings_changed() {
@@ -1283,20 +1344,20 @@ void TileMapEditor::_icon_size_changed(float p_value) {
void TileMapEditor::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_text_entered"),&TileMapEditor::_text_entered);
- ObjectTypeDB::bind_method(_MD("_text_changed"),&TileMapEditor::_text_changed);
- ObjectTypeDB::bind_method(_MD("_sbox_input"),&TileMapEditor::_sbox_input);
- ObjectTypeDB::bind_method(_MD("_menu_option"),&TileMapEditor::_menu_option);
- ObjectTypeDB::bind_method(_MD("_canvas_draw"),&TileMapEditor::_canvas_draw);
- ObjectTypeDB::bind_method(_MD("_canvas_mouse_enter"),&TileMapEditor::_canvas_mouse_enter);
- ObjectTypeDB::bind_method(_MD("_canvas_mouse_exit"),&TileMapEditor::_canvas_mouse_exit);
- ObjectTypeDB::bind_method(_MD("_tileset_settings_changed"),&TileMapEditor::_tileset_settings_changed);
- ObjectTypeDB::bind_method(_MD("_update_transform_buttons"),&TileMapEditor::_update_transform_buttons);
+ ClassDB::bind_method(_MD("_text_entered"),&TileMapEditor::_text_entered);
+ ClassDB::bind_method(_MD("_text_changed"),&TileMapEditor::_text_changed);
+ ClassDB::bind_method(_MD("_sbox_input"),&TileMapEditor::_sbox_input);
+ ClassDB::bind_method(_MD("_menu_option"),&TileMapEditor::_menu_option);
+ ClassDB::bind_method(_MD("_canvas_draw"),&TileMapEditor::_canvas_draw);
+ ClassDB::bind_method(_MD("_canvas_mouse_enter"),&TileMapEditor::_canvas_mouse_enter);
+ ClassDB::bind_method(_MD("_canvas_mouse_exit"),&TileMapEditor::_canvas_mouse_exit);
+ ClassDB::bind_method(_MD("_tileset_settings_changed"),&TileMapEditor::_tileset_settings_changed);
+ ClassDB::bind_method(_MD("_update_transform_buttons"),&TileMapEditor::_update_transform_buttons);
- ObjectTypeDB::bind_method(_MD("_fill_points"),&TileMapEditor::_fill_points);
- ObjectTypeDB::bind_method(_MD("_erase_points"),&TileMapEditor::_erase_points);
+ ClassDB::bind_method(_MD("_fill_points"),&TileMapEditor::_fill_points);
+ ClassDB::bind_method(_MD("_erase_points"),&TileMapEditor::_erase_points);
- ObjectTypeDB::bind_method(_MD("_icon_size_changed"), &TileMapEditor::_icon_size_changed);
+ ClassDB::bind_method(_MD("_icon_size_changed"), &TileMapEditor::_icon_size_changed);
}
TileMapEditor::CellOp TileMapEditor::_get_op_from_cell(const Point2i& p_pos)
@@ -1365,6 +1426,9 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
flip_v=false;
transpose=false;
+ bucket_cache_tile = -1;
+ bucket_cache_visited = 0;
+
ED_SHORTCUT("tile_map_editor/erase_selection", TTR("Erase selection"), KEY_DELETE);
ED_SHORTCUT("tile_map_editor/find_tile", TTR("Find tile"), KEY_MASK_CMD+KEY_F);
ED_SHORTCUT("tile_map_editor/transpose", TTR("Transpose"));
@@ -1375,7 +1439,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
search_box->set_h_size_flags(SIZE_EXPAND_FILL);
search_box->connect("text_entered", this, "_text_entered");
search_box->connect("text_changed", this, "_text_changed");
- search_box->connect("input_event", this, "_sbox_input");
+ search_box->connect("gui_input", this, "_sbox_input");
add_child(search_box);
size_slider = memnew( HSlider );
@@ -1383,11 +1447,11 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
size_slider->set_min(0.1f);
size_slider->set_max(4.0f);
size_slider->set_step(0.1f);
- size_slider->set_val(1.0f);
+ size_slider->set_value(1.0f);
size_slider->connect("value_changed", this, "_icon_size_changed");
add_child(size_slider);
- int mw = EDITOR_DEF("tile_map/palette_min_width", 80);
+ int mw = EDITOR_DEF("editors/tile_map/palette_min_width", 80);
// Add tile palette
palette = memnew( ItemList );
@@ -1423,7 +1487,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
p->add_shortcut(ED_SHORTCUT("tile_map_editor/duplicate_selection", TTR("Duplicate Selection"), KEY_MASK_CMD+KEY_D), OPTION_DUPLICATE);
p->add_shortcut(ED_GET_SHORTCUT("tile_map_editor/erase_selection"), OPTION_ERASE_SELECTION);
- p->connect("item_pressed", this, "_menu_option");
+ p->connect("id_pressed", this, "_menu_option");
toolbar->add_child(options);
@@ -1479,6 +1543,10 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
rotate_0->set_pressed(true);
}
+TileMapEditor::~TileMapEditor() {
+ _clear_bucket_cache();
+}
+
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
@@ -1490,7 +1558,7 @@ void TileMapEditorPlugin::edit(Object *p_object) {
bool TileMapEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("TileMap");
+ return p_object->is_class("TileMap");
}
void TileMapEditorPlugin::make_visible(bool p_visible) {
@@ -1509,9 +1577,10 @@ void TileMapEditorPlugin::make_visible(bool p_visible) {
TileMapEditorPlugin::TileMapEditorPlugin(EditorNode *p_node) {
- EDITOR_DEF("tile_map/preview_size",64);
- EDITOR_DEF("tile_map/palette_item_hseparation",8);
- EDITOR_DEF("tile_map/show_tile_names", true);
+ EDITOR_DEF("editors/tile_map/preview_size",64);
+ EDITOR_DEF("editors/tile_map/palette_item_hseparation",8);
+ EDITOR_DEF("editors/tile_map/show_tile_names", true);
+ EDITOR_DEF("editors/tile_map/bucket_fill_preview", true);
tile_map_editor = memnew( TileMapEditor(p_node) );
add_control_to_container(CONTAINER_CANVAS_EDITOR_SIDE, tile_map_editor);
diff --git a/tools/editor/plugins/tile_map_editor_plugin.h b/tools/editor/plugins/tile_map_editor_plugin.h
index 2f24002770..08032d9afd 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.h
+++ b/tools/editor/plugins/tile_map_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -44,7 +44,7 @@
class TileMapEditor : public VBoxContainer {
- OBJ_TYPE(TileMapEditor, VBoxContainer );
+ GDCLASS(TileMapEditor, VBoxContainer );
enum Tool {
@@ -106,6 +106,11 @@ class TileMapEditor : public VBoxContainer {
Point2i over_tile;
+ bool * bucket_cache_visited;
+ Rect2i bucket_cache_rect;
+ int bucket_cache_tile;
+ PoolVector<Vector2> bucket_cache;
+
struct CellOp {
int idx;
bool xf;
@@ -129,14 +134,17 @@ class TileMapEditor : public VBoxContainer {
void _pick_tile(const Point2& p_pos);
- DVector<Vector2> _bucket_fill(const Point2i& p_start, bool erase=false);
+ PoolVector<Vector2> _bucket_fill(const Point2i& p_start, bool erase=false, bool preview=false);
- void _fill_points(const DVector<Vector2> p_points, const Dictionary& p_op);
- void _erase_points(const DVector<Vector2> p_points);
+ void _fill_points(const PoolVector<Vector2> p_points, const Dictionary& p_op);
+ void _erase_points(const PoolVector<Vector2> p_points);
void _select(const Point2i& p_from, const Point2i& p_to);
- void _draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Matrix32& p_xform);
+ void _draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Transform2D& p_xform);
+ void _draw_fill_preview(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Transform2D& p_xform);
+ void _clear_bucket_cache();
+
void _update_copydata();
int get_selected_tile() const;
@@ -167,21 +175,22 @@ public:
HBoxContainer *get_toolbar() const { return toolbar; }
- bool forward_input_event(const InputEvent& p_event);
+ bool forward_gui_input(const InputEvent& p_event);
void edit(Node *p_tile_map);
TileMapEditor(EditorNode *p_editor);
+ ~TileMapEditor();
};
class TileMapEditorPlugin : public EditorPlugin {
- OBJ_TYPE( TileMapEditorPlugin, EditorPlugin );
+ GDCLASS( TileMapEditorPlugin, EditorPlugin );
TileMapEditor *tile_map_editor;
public:
- virtual bool forward_canvas_input_event(const Matrix32& p_canvas_xform,const InputEvent& p_event) { return tile_map_editor->forward_input_event(p_event); }
+ virtual bool forward_canvas_gui_input(const Transform2D& p_canvas_xform,const InputEvent& p_event) { return tile_map_editor->forward_gui_input(p_event); }
virtual String get_name() const { return "TileMap"; }
bool has_main_screen() const { return false; }
diff --git a/tools/editor/plugins/tile_set_editor_plugin.cpp b/tools/editor/plugins/tile_set_editor_plugin.cpp
index 39a15189e7..3db6c94917 100644
--- a/tools/editor/plugins/tile_set_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_set_editor_plugin.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,8 +27,10 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "tile_set_editor_plugin.h"
+
#include "scene/2d/sprite.h"
#include "scene/2d/physics_body_2d.h"
+
void TileSetEditor::edit(const Ref<TileSet>& p_tileset) {
tileset=p_tileset;
@@ -76,6 +78,8 @@ void TileSetEditor::_import_scene(Node *scene, Ref<TileSet> p_library, bool p_me
p_library->tile_set_texture(id,texture);
p_library->tile_set_material(id,material);
+ p_library->tile_set_modulate(id,mi->get_modulate());
+
Vector2 phys_offset;
Size2 s;
@@ -221,9 +225,9 @@ Error TileSetEditor::update_library_file(Node *p_base_scene, Ref<TileSet> ml,boo
void TileSetEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_menu_cbk",&TileSetEditor::_menu_cbk);
- ObjectTypeDB::bind_method("_menu_confirm",&TileSetEditor::_menu_confirm);
- ObjectTypeDB::bind_method("_name_dialog_confirm",&TileSetEditor::_name_dialog_confirm);
+ ClassDB::bind_method("_menu_cbk",&TileSetEditor::_menu_cbk);
+ ClassDB::bind_method("_menu_confirm",&TileSetEditor::_menu_confirm);
+ ClassDB::bind_method("_name_dialog_confirm",&TileSetEditor::_name_dialog_confirm);
}
TileSetEditor::TileSetEditor(EditorNode *p_editor) {
@@ -240,7 +244,7 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) {
options->get_popup()->add_separator();
options->get_popup()->add_item(TTR("Create from Scene"),MENU_OPTION_CREATE_FROM_SCENE);
options->get_popup()->add_item(TTR("Merge from Scene"),MENU_OPTION_MERGE_FROM_SCENE);
- options->get_popup()->connect("item_pressed", this,"_menu_cbk");
+ options->get_popup()->connect("id_pressed", this,"_menu_cbk");
editor=p_editor;
cd = memnew(ConfirmationDialog);
add_child(cd);
@@ -268,7 +272,7 @@ void TileSetEditorPlugin::edit(Object *p_node) {
bool TileSetEditorPlugin::handles(Object *p_node) const{
- return p_node->is_type("TileSet");
+ return p_node->is_class("TileSet");
}
void TileSetEditorPlugin::make_visible(bool p_visible){
diff --git a/tools/editor/plugins/tile_set_editor_plugin.h b/tools/editor/plugins/tile_set_editor_plugin.h
index 3f47520e2a..7fec7fa162 100644
--- a/tools/editor/plugins/tile_set_editor_plugin.h
+++ b/tools/editor/plugins/tile_set_editor_plugin.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -38,7 +38,7 @@
class TileSetEditor : public Control {
- OBJ_TYPE( TileSetEditor, Control );
+ GDCLASS( TileSetEditor, Control );
Ref<TileSet> tileset;
@@ -78,7 +78,7 @@ public:
class TileSetEditorPlugin : public EditorPlugin {
- OBJ_TYPE( TileSetEditorPlugin, EditorPlugin );
+ GDCLASS( TileSetEditorPlugin, EditorPlugin );
TileSetEditor *tileset_editor;
EditorNode *editor;
diff --git a/tools/editor/progress_dialog.cpp b/tools/editor/progress_dialog.cpp
index a950f7acfc..76626c4556 100644
--- a/tools/editor/progress_dialog.cpp
+++ b/tools/editor/progress_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,10 +27,12 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "progress_dialog.h"
+
#include "main/main.h"
#include "message_queue.h"
#include "os/os.h"
#include "editor_scale.h"
+
void BackgroundProgress::_add_task(const String& p_task,const String& p_label, int p_steps) {
_THREAD_SAFE_METHOD_
@@ -42,7 +44,7 @@ void BackgroundProgress::_add_task(const String& p_task,const String& p_label, i
t.hb->add_child(l);
t.progress = memnew( ProgressBar );
t.progress->set_max(p_steps);
- t.progress->set_val(p_steps);
+ t.progress->set_value(p_steps);
Control *ec = memnew( Control );
ec->set_h_size_flags(SIZE_EXPAND_FILL);
ec->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -83,9 +85,9 @@ void BackgroundProgress::_task_step(const String& p_task, int p_step){
Task &t=tasks[p_task];
if (p_step<0)
- t.progress->set_val(t.progress->get_val()+1);
+ t.progress->set_value(t.progress->get_value()+1);
else
- t.progress->set_val(p_step);
+ t.progress->set_value(p_step);
}
void BackgroundProgress::_end_task(const String& p_task){
@@ -101,10 +103,10 @@ void BackgroundProgress::_end_task(const String& p_task){
void BackgroundProgress::_bind_methods(){
- ObjectTypeDB::bind_method("_add_task",&BackgroundProgress::_add_task);
- ObjectTypeDB::bind_method("_task_step",&BackgroundProgress::_task_step);
- ObjectTypeDB::bind_method("_end_task",&BackgroundProgress::_end_task);
- ObjectTypeDB::bind_method("_update",&BackgroundProgress::_update);
+ ClassDB::bind_method("_add_task",&BackgroundProgress::_add_task);
+ ClassDB::bind_method("_task_step",&BackgroundProgress::_task_step);
+ ClassDB::bind_method("_end_task",&BackgroundProgress::_end_task);
+ ClassDB::bind_method("_update",&BackgroundProgress::_update);
}
@@ -182,7 +184,7 @@ void ProgressDialog::add_task(const String& p_task,const String& p_label,int p_s
t.vb->add_margin_child(p_label,vb2);
t.progress = memnew( ProgressBar );
t.progress->set_max(p_steps);
- t.progress->set_val(p_steps);
+ t.progress->set_value(p_steps);
vb2->add_child(t.progress);
t.state=memnew( Label );
t.state->set_clip_text(true);
@@ -206,9 +208,9 @@ void ProgressDialog::task_step(const String& p_task, const String& p_state, int
Task &t=tasks[p_task];
if (p_step<0)
- t.progress->set_val(t.progress->get_val()+1);
+ t.progress->set_value(t.progress->get_value()+1);
else
- t.progress->set_val(p_step);
+ t.progress->set_value(p_step);
t.state->set_text(p_state);
last_progress_tick=OS::get_singleton()->get_ticks_usec();
diff --git a/tools/editor/progress_dialog.h b/tools/editor/progress_dialog.h
index c254d45753..60acf825a9 100644
--- a/tools/editor/progress_dialog.h
+++ b/tools/editor/progress_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,7 +37,7 @@
class BackgroundProgress : public HBoxContainer {
- OBJ_TYPE(BackgroundProgress,HBoxContainer);
+ GDCLASS(BackgroundProgress,HBoxContainer);
_THREAD_SAFE_CLASS_
@@ -72,7 +72,7 @@ public:
class ProgressDialog : public Popup {
- OBJ_TYPE( ProgressDialog, Popup );
+ GDCLASS( ProgressDialog, Popup );
struct Task {
String task;
diff --git a/tools/editor/project_export.cpp b/tools/editor/project_export.cpp
index 103962716b..cacefaa1a2 100644
--- a/tools/editor/project_export.cpp
+++ b/tools/editor/project_export.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -31,12 +31,10 @@
#include "os/dir_access.h"
#include "os/file_access.h"
#include "globals.h"
-
#include "io/resource_loader.h"
#include "io/resource_saver.h"
#include "os/os.h"
#include "scene/gui/box_container.h"
-
#include "scene/gui/tab_container.h"
#include "scene/gui/scroll_container.h"
#include "editor_data.h"
@@ -67,14 +65,14 @@ bool ProjectExportDialog::_create_tree(TreeItem *p_parent,EditorFileSystemDirect
has_items=true;
}
-// int cc = p_options.get_slice_count(",");
+ //int cc = p_options.get_slice_count(",");
for (int i=0;i<p_dir->get_file_count();i++) {
TreeItem *fitem = tree->create_item(item);
//fitem->set_cell_mode(0,TreeItem::CELL_MODE_CHECK);
//fitem->set_editable(0,true);
- // fitem->set_checked(0,isfave);
+ //fitem->set_checked(0,isfave);
fitem->set_text(0,p_dir->get_file(i));
String path = p_dir->get_file_path(i);
fitem->set_tooltip(0,path);
@@ -164,8 +162,8 @@ void ProjectExportDialog::_platform_selected() {
String p =platforms->get_selected()->get_metadata(0);
_update_platform();
-// editor->save_import_export();
-// EditorFileSystem::get_singleton()->scan();
+ //editor->save_import_export();
+ //EditorFileSystem::get_singleton()->scan();
}
@@ -176,7 +174,7 @@ void ProjectExportDialog::_scan_finished() {
print_line("**********SCAN DONEEE********");
print_line("**********SCAN DONEEE********");*/
- if (!is_visible()) {
+ if (!is_visible_in_tree()) {
pending_update_tree=true;
return;
}
@@ -274,7 +272,7 @@ void ProjectExportDialog::_script_edited(Variant v) {
void ProjectExportDialog::_sample_convert_edited(int what) {
EditorImportExport::get_singleton()->sample_set_action( EditorImportExport::SampleAction(sample_mode->get_selected()));
- EditorImportExport::get_singleton()->sample_set_max_hz( sample_max_hz->get_val() );
+ EditorImportExport::get_singleton()->sample_set_max_hz( sample_max_hz->get_value() );
EditorImportExport::get_singleton()->sample_set_trim( sample_trim->is_pressed() );
_save_export_cfg();
@@ -288,7 +286,7 @@ void ProjectExportDialog::_notification(int p_what) {
CenterContainer *cc = memnew( CenterContainer );
- TextureFrame *tf = memnew( TextureFrame);
+ TextureRect *tf = memnew( TextureRect);
tf->set_texture(get_icon("ErrorSign","EditorIcons"));
cc->add_child(tf);
plat_errors->add_child(cc);
@@ -313,7 +311,7 @@ void ProjectExportDialog::_notification(int p_what) {
}
EditorFileSystem::get_singleton()->connect("filesystem_changed",this,"_scan_finished");
-// _rescan();
+ //_rescan();
_update_platform();
export_mode->select( EditorImportExport::get_singleton()->get_export_filter() );
convert_text_scenes->set_pressed( EditorImportExport::get_singleton()->get_convert_text_scenes() );
@@ -325,8 +323,8 @@ void ProjectExportDialog::_notification(int p_what) {
tree_vb->show();
image_action->select(EditorImportExport::get_singleton()->get_export_image_action());
- image_quality->set_val(EditorImportExport::get_singleton()->get_export_image_quality());
- image_shrink->set_val(EditorImportExport::get_singleton()->get_export_image_shrink());
+ image_quality->set_value(EditorImportExport::get_singleton()->get_export_image_quality());
+ image_shrink->set_value(EditorImportExport::get_singleton()->get_export_image_shrink());
_update_script();
@@ -343,14 +341,14 @@ void ProjectExportDialog::_notification(int p_what) {
}
image_formats->connect("item_edited",this,"_format_toggled");
group_add->set_icon(get_icon("Add","EditorIcons"));
-// group_del->set_icon(get_icon("Del","EditorIcons"));
+ //group_del->set_icon(get_icon("Del","EditorIcons"));
_update_group_list();
_update_group();
_update_group_tree();
sample_mode->select( EditorImportExport::get_singleton()->sample_get_action() );
- sample_max_hz->set_val( EditorImportExport::get_singleton()->sample_get_max_hz() );
+ sample_max_hz->set_value( EditorImportExport::get_singleton()->sample_get_max_hz() );
sample_trim->set_pressed( EditorImportExport::get_singleton()->sample_get_trim() );
sample_mode->connect("item_selected",this,"_sample_convert_edited");
@@ -368,7 +366,7 @@ void ProjectExportDialog::_notification(int p_what) {
} break;
case NOTIFICATION_VISIBILITY_CHANGED: {
- if (is_visible())
+ if (is_visible_in_tree())
_validate_platform();
} break;
@@ -448,7 +446,7 @@ void ProjectExportDialog::_export_mode_changed(int p_idx) {
void ProjectExportDialog::_export_action(const String& p_file) {
- String location = Globals::get_singleton()->globalize_path(p_file).get_base_dir().replace("\\","/");
+ String location = GlobalConfig::get_singleton()->globalize_path(p_file).get_base_dir().replace("\\","/");
while(true) {
@@ -589,6 +587,11 @@ void ProjectExportDialog::custom_action(const String&) {
return;
}
+ if (platform.to_lower()=="android" && _check_android_setting(exporter)==false){
+ // not filled all field for Android release
+ return;
+ }
+
String extension = exporter->get_binary_extension();
file_export_password->set_editable( exporter->requires_password(exporter->is_debugging_enabled()) );
@@ -602,6 +605,204 @@ void ProjectExportDialog::custom_action(const String&) {
}
+LineEdit* ProjectExportDialog::_create_keystore_input(Control* container, const String& p_label, const String& name) {
+
+ HBoxContainer* hb=memnew(HBoxContainer);
+ Label* lb=memnew(Label);
+ LineEdit* input=memnew(LineEdit);
+
+ lb->set_text(p_label);
+ lb->set_custom_minimum_size(Size2(140*EDSCALE,0));
+ lb->set_align(Label::ALIGN_RIGHT);
+
+ input->set_custom_minimum_size(Size2(170*EDSCALE,0));
+ input->set_name(name);
+
+ hb->add_constant_override("separation", 10*EDSCALE);
+ hb->add_child(lb);
+ hb->add_child(input);
+ container->add_child(hb);
+
+ return input;
+
+}
+
+void ProjectExportDialog::_create_android_keystore_window() {
+
+ keystore_file_dialog = memnew( EditorFileDialog );
+ add_child(keystore_file_dialog);
+ keystore_file_dialog->set_mode(EditorFileDialog::MODE_OPEN_DIR);
+ keystore_file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
+ keystore_file_dialog->set_current_dir( "res://" );
+
+ keystore_file_dialog->set_title(TTR("Target Path:"));
+ keystore_file_dialog->connect("dir_selected", this,"_keystore_dir_selected");
+
+ keystore_create_dialog=memnew(ConfirmationDialog);
+ VBoxContainer* vb=memnew(VBoxContainer);
+ vb->set_size(Size2(340*EDSCALE,0));
+ keystore_create_dialog->set_title(TTR("Create Android keystore"));
+
+ _create_keystore_input(vb, TTR("Full name"), "name");
+ _create_keystore_input(vb, TTR("Organizational unit"), "unit");
+ _create_keystore_input(vb, TTR("Organization"), "org");
+ _create_keystore_input(vb, TTR("City"), "city");
+ _create_keystore_input(vb, TTR("State"), "state");
+ _create_keystore_input(vb, TTR("2 letter country code"), "code");
+ _create_keystore_input(vb, TTR("User alias"), "alias");
+ LineEdit* pass=_create_keystore_input(vb, TTR("Password"), "pass");
+ pass->set_placeholder(TTR("at least 6 characters"));
+ _create_keystore_input(vb, TTR("File name"), "file");
+
+ Label* lb_path=memnew(Label);
+ LineEdit* path=memnew(LineEdit);
+ Button* btn=memnew(Button);
+ HBoxContainer* hb=memnew(HBoxContainer);
+
+ lb_path->set_text(TTR("Path : (better to save outside of project)"));
+ path->set_h_size_flags(SIZE_EXPAND_FILL);
+ path->set_name("path");
+ btn->set_text(" .. ");
+ btn->connect("pressed", keystore_file_dialog, "popup_centered_ratio");
+
+ vb->add_spacer();
+ vb->add_child(lb_path);
+ hb->add_child(path);
+ hb->add_child(btn);
+ vb->add_child(hb);
+
+ keystore_create_dialog->add_child(vb);
+ //keystore_create_dialog->set_child_rect(vb);
+ add_child(keystore_create_dialog);
+
+ keystore_create_dialog->connect("confirmed", this, "_create_android_keystore");
+ path->connect("text_changed", this, "_check_keystore_path");
+
+ confirm_keystore = memnew(ConfirmationDialog);
+ confirm_keystore->connect("confirmed", keystore_create_dialog, "popup_centered_minsize");
+ add_child(confirm_keystore);
+
+}
+
+void ProjectExportDialog::_keystore_dir_selected(const String& path) {
+
+ LineEdit* edit=keystore_create_dialog->find_node("path", true, false)->cast_to<LineEdit>();
+ edit->set_text(path.simplify_path());
+
+}
+
+void ProjectExportDialog::_keystore_created() {
+
+ if (error->is_connected("popup_hide", this, "_keystore_created")){
+ error->disconnect("popup_hide", this, "_keystore_created");
+ }
+ custom_action("export_pck");
+
+}
+
+void ProjectExportDialog::_check_keystore_path(const String& path) {
+
+ LineEdit* edit=keystore_create_dialog->find_node("path", true, false)->cast_to<LineEdit>();
+ bool exists = DirAccess::exists(path);
+ if (!exists) {
+ edit->add_color_override("font_color", Color(1,0,0,1));
+ } else {
+ edit->add_color_override("font_color", Color(0,1,0,1));
+ }
+
+}
+
+void ProjectExportDialog::_create_android_keystore() {
+
+ Vector<String> names=String("name,unit,org,city,state,code,alias,pass").split(",");
+ String path=keystore_create_dialog->find_node("path", true, false)->cast_to<LineEdit>()->get_text();
+ String file=keystore_create_dialog->find_node("file", true, false)->cast_to<LineEdit>()->get_text();
+
+ if (file.ends_with(".keystore")==false) {
+ file+=".keystore";
+ }
+ String fullpath=path.plus_file(file);
+ String info="CN=$name, OU=$unit, O=$org, L=$city, S=$state, C=$code";
+ Dictionary dic;
+
+ for (int i=0;i<names.size();i++){
+ LineEdit* edit = keystore_create_dialog->find_node(names[i], true, false)->cast_to<LineEdit>();
+ dic[names[i]]=edit->get_text();
+ info=info.replace("$"+names[i], edit->get_text());
+ }
+
+ String jarsigner=EditorSettings::get_singleton()->get("export/android/jarsigner");
+ String keytool=jarsigner.get_base_dir().plus_file("keytool");
+ String os_name=OS::get_singleton()->get_name();
+ if (os_name.to_lower()=="windows") {
+ keytool+=".exe";
+ }
+
+ bool exist=FileAccess::exists(keytool);
+ if (!exist) {
+ error->set_text("Can't find 'keytool'");
+ error->popup_centered_minsize();
+ return;
+ }
+
+ List<String> args;
+ args.push_back("-genkey");
+ args.push_back("-v");
+ args.push_back("-keystore");
+ args.push_back(fullpath);
+ args.push_back("-alias");
+ args.push_back(dic["alias"]);
+ args.push_back("-storepass");
+ args.push_back(dic["pass"]);
+ args.push_back("-keypass");
+ args.push_back(dic["pass"]);
+ args.push_back("-keyalg");
+ args.push_back("RSA");
+ args.push_back("-keysize");
+ args.push_back("2048");
+ args.push_back("-validity");
+ args.push_back("10000");
+ args.push_back("-dname");
+ args.push_back(info);
+ int retval;
+ OS::get_singleton()->execute(keytool,args,true,NULL,NULL,&retval);
+
+ if (retval==0) { // success
+ platform_options->_edit_set("keystore/release", fullpath);
+ platform_options->_edit_set("keystore/release_user", dic["alias"]);
+ platform_options->_edit_set("keystore/release_password", dic["pass"]);
+
+ error->set_text("Android keystore created at \n"+fullpath);
+ error->connect("popup_hide", this, "_keystore_created");
+ error->popup_centered_minsize();
+ } else { // fail
+ error->set_text("Fail to create android keystore at \n"+fullpath);
+ error->popup_centered_minsize();
+ }
+
+}
+
+bool ProjectExportDialog::_check_android_setting(const Ref<EditorExportPlatform>& exporter) {
+
+ bool is_debugging = exporter->get("debug/debugging_enabled");
+ String release = exporter->get("keystore/release");
+ String user = exporter->get("keystore/release_user");
+ String password = exporter->get("keystore/release_password");
+
+ if (!is_debugging && (release=="" || user=="" || password=="")){
+ if (release==""){
+ confirm_keystore->set_text(TTR("Release keystore is not set.\nDo you want to create one?"));
+ confirm_keystore->popup_centered_minsize();
+ } else {
+ error->set_text(TTR("Fill Keystore/Release User and Release Password"));
+ error->popup_centered_minsize();
+ }
+ return false;
+ }
+
+ return true;
+
+}
void ProjectExportDialog::_group_selected() {
@@ -683,8 +884,8 @@ void ProjectExportDialog::_update_group() {
StringName name = _get_selected_group();
group_image_action->select(EditorImportExport::get_singleton()->image_export_group_get_image_action(name));
group_atlas->set_pressed(EditorImportExport::get_singleton()->image_export_group_get_make_atlas(name));
- group_shrink->set_val(EditorImportExport::get_singleton()->image_export_group_get_shrink(name));
- group_lossy_quality->set_val(EditorImportExport::get_singleton()->image_export_group_get_lossy_quality(name));
+ group_shrink->set_value(EditorImportExport::get_singleton()->image_export_group_get_shrink(name));
+ group_lossy_quality->set_value(EditorImportExport::get_singleton()->image_export_group_get_lossy_quality(name));
if (group_atlas->is_pressed())
atlas_preview->show();
else
@@ -718,7 +919,7 @@ bool ProjectExportDialog::_update_group_treef(TreeItem *p_parent,EditorFileSyste
for(int i=0;i<p_dir->get_file_count();i++) {
String fname = p_dir->get_file(i);
- if (p_extensions.has(fname.to_lower().extension())) {
+ if (p_extensions.has(fname.to_lower().get_extension())) {
String path = p_dir->get_file_path(i);
if (filter!=String() && path.find(filter)==-1)
@@ -806,8 +1007,8 @@ void ProjectExportDialog::_group_changed(Variant v) {
EditorNode::get_undo_redo()->create_action(TTR("Change Image Group"));
EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_image_action",name,group_image_action->get_selected());
EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_make_atlas",name,group_atlas->is_pressed());
- EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_shrink",name,group_shrink->get_val());
- EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_lossy_quality",name,group_lossy_quality->get_val());
+ EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_shrink",name,group_shrink->get_value());
+ EditorNode::get_undo_redo()->add_do_method(EditorImportExport::get_singleton(),"image_export_group_set_lossy_quality",name,group_lossy_quality->get_value());
EditorNode::get_undo_redo()->add_undo_method(EditorImportExport::get_singleton(),"image_export_group_set_image_action",name,EditorImportExport::get_singleton()->image_export_group_get_image_action(name));
EditorNode::get_undo_redo()->add_undo_method(EditorImportExport::get_singleton(),"image_export_group_set_make_atlas",name,EditorImportExport::get_singleton()->image_export_group_get_make_atlas(name));
EditorNode::get_undo_redo()->add_undo_method(EditorImportExport::get_singleton(),"image_export_group_set_shrink",name,EditorImportExport::get_singleton()->image_export_group_get_shrink(name));
@@ -1040,11 +1241,11 @@ void ProjectExportDialog::_group_atlas_preview() {
int flags=0;
- if (Globals::get_singleton()->get("image_loader/filter"))
+ if (GlobalConfig::get_singleton()->get("image_loader/filter"))
flags|=EditorTextureImportPlugin::IMAGE_FLAG_FILTER;
- if (!Globals::get_singleton()->get("image_loader/gen_mipmaps"))
+ if (!GlobalConfig::get_singleton()->get("image_loader/gen_mipmaps"))
flags|=EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS;
- if (!Globals::get_singleton()->get("image_loader/repeat"))
+ if (!GlobalConfig::get_singleton()->get("image_loader/repeat"))
flags|=EditorTextureImportPlugin::IMAGE_FLAG_REPEAT;
flags|=EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA;
@@ -1089,44 +1290,48 @@ void ProjectExportDialog::_image_filter_changed(String) {
void ProjectExportDialog::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_rescan"),&ProjectExportDialog::_rescan);
- ObjectTypeDB::bind_method(_MD("_tree_changed"),&ProjectExportDialog::_tree_changed);
- ObjectTypeDB::bind_method(_MD("_scan_finished"),&ProjectExportDialog::_scan_finished);
- ObjectTypeDB::bind_method(_MD("_platform_selected"),&ProjectExportDialog::_platform_selected);
- ObjectTypeDB::bind_method(_MD("_prop_edited"),&ProjectExportDialog::_prop_edited);
- ObjectTypeDB::bind_method(_MD("_export_mode_changed"),&ProjectExportDialog::_export_mode_changed);
- ObjectTypeDB::bind_method(_MD("_filters_edited"),&ProjectExportDialog::_filters_edited);
- ObjectTypeDB::bind_method(_MD("_filters_exclude_edited"),&ProjectExportDialog::_filters_exclude_edited);
- ObjectTypeDB::bind_method(_MD("_export_action"),&ProjectExportDialog::_export_action);
- ObjectTypeDB::bind_method(_MD("_export_action_pck"),&ProjectExportDialog::_export_action_pck);
- ObjectTypeDB::bind_method(_MD("_quality_edited"),&ProjectExportDialog::_quality_edited);
- ObjectTypeDB::bind_method(_MD("_shrink_edited"),&ProjectExportDialog::_shrink_edited);
- ObjectTypeDB::bind_method(_MD("_image_export_edited"),&ProjectExportDialog::_image_export_edited);
- ObjectTypeDB::bind_method(_MD("_format_toggled"),&ProjectExportDialog::_format_toggled);
- ObjectTypeDB::bind_method(_MD("_group_changed"),&ProjectExportDialog::_group_changed);
- ObjectTypeDB::bind_method(_MD("_group_add"),&ProjectExportDialog::_group_add);
- ObjectTypeDB::bind_method(_MD("_group_del"),&ProjectExportDialog::_group_del);
- ObjectTypeDB::bind_method(_MD("_group_selected"),&ProjectExportDialog::_group_selected);
- ObjectTypeDB::bind_method(_MD("_update_group"),&ProjectExportDialog::_update_group);
- ObjectTypeDB::bind_method(_MD("_update_group_list"),&ProjectExportDialog::_update_group_list);
- ObjectTypeDB::bind_method(_MD("_select_group"),&ProjectExportDialog::_select_group);
- ObjectTypeDB::bind_method(_MD("_update_group_tree"),&ProjectExportDialog::_update_group_tree);
- ObjectTypeDB::bind_method(_MD("_group_item_edited"),&ProjectExportDialog::_group_item_edited);
- ObjectTypeDB::bind_method(_MD("_save_export_cfg"),&ProjectExportDialog::_save_export_cfg);
- ObjectTypeDB::bind_method(_MD("_image_filter_changed"),&ProjectExportDialog::_image_filter_changed);
- ObjectTypeDB::bind_method(_MD("_group_atlas_preview"),&ProjectExportDialog::_group_atlas_preview);
- ObjectTypeDB::bind_method(_MD("_group_select_all"),&ProjectExportDialog::_group_select_all);
- ObjectTypeDB::bind_method(_MD("_group_select_none"),&ProjectExportDialog::_group_select_none);
- ObjectTypeDB::bind_method(_MD("_script_edited"),&ProjectExportDialog::_script_edited);
- ObjectTypeDB::bind_method(_MD("_update_script"),&ProjectExportDialog::_update_script);
- ObjectTypeDB::bind_method(_MD("_sample_convert_edited"),&ProjectExportDialog::_sample_convert_edited);
-
-
- ObjectTypeDB::bind_method(_MD("export_platform"),&ProjectExportDialog::export_platform);
-
-
-// ADD_SIGNAL(MethodInfo("instance"));
-// ADD_SIGNAL(MethodInfo("open"));
+ ClassDB::bind_method(_MD("_rescan"),&ProjectExportDialog::_rescan);
+ ClassDB::bind_method(_MD("_tree_changed"),&ProjectExportDialog::_tree_changed);
+ ClassDB::bind_method(_MD("_scan_finished"),&ProjectExportDialog::_scan_finished);
+ ClassDB::bind_method(_MD("_platform_selected"),&ProjectExportDialog::_platform_selected);
+ ClassDB::bind_method(_MD("_prop_edited"),&ProjectExportDialog::_prop_edited);
+ ClassDB::bind_method(_MD("_export_mode_changed"),&ProjectExportDialog::_export_mode_changed);
+ ClassDB::bind_method(_MD("_filters_edited"),&ProjectExportDialog::_filters_edited);
+ ClassDB::bind_method(_MD("_filters_exclude_edited"),&ProjectExportDialog::_filters_exclude_edited);
+ ClassDB::bind_method(_MD("_export_action"),&ProjectExportDialog::_export_action);
+ ClassDB::bind_method(_MD("_export_action_pck"),&ProjectExportDialog::_export_action_pck);
+ ClassDB::bind_method(_MD("_quality_edited"),&ProjectExportDialog::_quality_edited);
+ ClassDB::bind_method(_MD("_shrink_edited"),&ProjectExportDialog::_shrink_edited);
+ ClassDB::bind_method(_MD("_image_export_edited"),&ProjectExportDialog::_image_export_edited);
+ ClassDB::bind_method(_MD("_format_toggled"),&ProjectExportDialog::_format_toggled);
+ ClassDB::bind_method(_MD("_group_changed"),&ProjectExportDialog::_group_changed);
+ ClassDB::bind_method(_MD("_group_add"),&ProjectExportDialog::_group_add);
+ ClassDB::bind_method(_MD("_group_del"),&ProjectExportDialog::_group_del);
+ ClassDB::bind_method(_MD("_group_selected"),&ProjectExportDialog::_group_selected);
+ ClassDB::bind_method(_MD("_update_group"),&ProjectExportDialog::_update_group);
+ ClassDB::bind_method(_MD("_update_group_list"),&ProjectExportDialog::_update_group_list);
+ ClassDB::bind_method(_MD("_select_group"),&ProjectExportDialog::_select_group);
+ ClassDB::bind_method(_MD("_update_group_tree"),&ProjectExportDialog::_update_group_tree);
+ ClassDB::bind_method(_MD("_group_item_edited"),&ProjectExportDialog::_group_item_edited);
+ ClassDB::bind_method(_MD("_save_export_cfg"),&ProjectExportDialog::_save_export_cfg);
+ ClassDB::bind_method(_MD("_image_filter_changed"),&ProjectExportDialog::_image_filter_changed);
+ ClassDB::bind_method(_MD("_group_atlas_preview"),&ProjectExportDialog::_group_atlas_preview);
+ ClassDB::bind_method(_MD("_group_select_all"),&ProjectExportDialog::_group_select_all);
+ ClassDB::bind_method(_MD("_group_select_none"),&ProjectExportDialog::_group_select_none);
+ ClassDB::bind_method(_MD("_script_edited"),&ProjectExportDialog::_script_edited);
+ ClassDB::bind_method(_MD("_update_script"),&ProjectExportDialog::_update_script);
+ ClassDB::bind_method(_MD("_sample_convert_edited"),&ProjectExportDialog::_sample_convert_edited);
+
+
+ ClassDB::bind_method(_MD("export_platform"),&ProjectExportDialog::export_platform);
+ ClassDB::bind_method(_MD("_create_android_keystore"),&ProjectExportDialog::_create_android_keystore);
+ ClassDB::bind_method(_MD("_check_keystore_path"),&ProjectExportDialog::_check_keystore_path);
+ ClassDB::bind_method(_MD("_keystore_dir_selected"),&ProjectExportDialog::_keystore_dir_selected);
+ ClassDB::bind_method(_MD("_keystore_created"),&ProjectExportDialog::_keystore_created);
+
+
+ //ADD_SIGNAL(MethodInfo("instance"));
+ //ADD_SIGNAL(MethodInfo("open"));
}
@@ -1138,7 +1343,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
sections = memnew( TabContainer );
add_child(sections);
- set_child_rect(sections);
+ //set_child_rect(sections);
VBoxContainer *pvbox = memnew( VBoxContainer );
sections->add_child(pvbox);
@@ -1309,7 +1514,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
group_lossy_quality->set_min(0.1);
group_lossy_quality->set_max(1.0);
group_lossy_quality->set_step(0.01);
- group_lossy_quality->set_val(0.7);
+ group_lossy_quality->set_value(0.7);
group_lossy_quality->connect("value_changed",this,"_quality_edited");
HBoxContainer *gqhb = memnew( HBoxContainer );
@@ -1328,7 +1533,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
group_shrink = memnew(SpinBox);
group_shrink->set_min(1);
group_shrink->set_max(8);
- group_shrink->set_val(1);
+ group_shrink->set_value(1);
group_shrink->set_step(0.001);
group_options->add_margin_child(TTR("Shrink By:"),group_shrink);
group_shrink->connect("value_changed",this,"_group_changed");
@@ -1370,8 +1575,8 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
atlas_preview_dialog = memnew( AcceptDialog );
ScrollContainer *scroll = memnew( ScrollContainer );
atlas_preview_dialog->add_child(scroll);
- atlas_preview_dialog->set_child_rect(scroll);
- atlas_preview_frame = memnew( TextureFrame );
+ //atlas_preview_dialog->set_child_rect(scroll);
+ atlas_preview_frame = memnew( TextureRect );
scroll->add_child(atlas_preview_frame);
add_child(atlas_preview_dialog);
@@ -1454,7 +1659,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
file_export = memnew( EditorFileDialog );
add_child(file_export);
file_export->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
- file_export->set_current_dir( EditorSettings::get_singleton()->get("global/default_project_export_path") );
+ file_export->set_current_dir( EditorSettings::get_singleton()->get("filesystem/directories/default_project_export_path") );
file_export->set_title(TTR("Export Project"));
file_export->connect("file_selected", this,"_export_action");
@@ -1466,7 +1671,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
pck_export = memnew( EditorFileDialog );
pck_export->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
- pck_export->set_current_dir( EditorSettings::get_singleton()->get("global/default_project_export_path") );
+ pck_export->set_current_dir( EditorSettings::get_singleton()->get("filesystem/directories/default_project_export_path") );
pck_export->set_title(TTR("Export Project PCK"));
pck_export->connect("file_selected", this,"_export_action_pck");
pck_export->add_filter("*.pck ; Data Pack");
@@ -1479,6 +1684,8 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
ei="EditorIcons";
ot="Object";
pending_update_tree=true;
+
+ _create_android_keystore_window();
}
@@ -1493,7 +1700,7 @@ void ProjectExport::popup_export() {
presets.insert("default");
List<PropertyInfo> pi;
- Globals::get_singleton()->get_property_list(&pi);
+ GlobalConfig::get_singleton()->get_property_list(&pi);
export_preset->clear();
for (List<PropertyInfo>::Element *E=pi.front();E;E=E->next()) {
@@ -1523,8 +1730,8 @@ Error ProjectExport::export_project(const String& p_preset) {
String selected=p_preset;
- DVector<String> preset_settings = Globals::get_singleton()->get("export_presets/"+selected);
- String preset_path=Globals::get_singleton()->get("export_presets_path/"+selected);
+ PoolVector<String> preset_settings = GlobalConfig::get_singleton()->get("export_presets/"+selected);
+ String preset_path=GlobalConfig::get_singleton()->get("export_presets_path/"+selected);
if (preset_path=="") {
error->set_text("Export path empty, see export options");
@@ -1566,11 +1773,13 @@ Error ProjectExport::export_project(const String& p_preset) {
{
List<String> l;
-// SceneLoader::get_recognized_extensions(&l);
-// for(List<String>::Element *E=l.front();E;E=E->next()) {
-//
-// scene_extensions.insert(E->get());
-// }
+ /*
+ SceneLoader::get_recognized_extensions(&l);
+ for(List<String>::Element *E=l.front();E;E=E->next()) {
+
+ scene_extensions.insert(E->get());
+ }
+ */
ResourceLoader::get_recognized_extensions_for_type("",&l);
for(List<String>::Element *E=l.front();E;E=E->next()) {
@@ -1578,7 +1787,7 @@ Error ProjectExport::export_project(const String& p_preset) {
}
}
- Vector<String> names = Globals::get_singleton()->get_optimizer_presets();
+ Vector<String> names = GlobalConfig::get_singleton()->get_optimizer_presets();
//prepare base paths
@@ -1688,7 +1897,7 @@ Error ProjectExport::export_project(const String& p_preset) {
print_line("Exporting "+itos(idx)+"/"+itos(export_action.size())+": "+path);
- String base_dir = Globals::get_singleton()->localize_path(path.get_base_dir()).replace("\\","/").replace("res://","");
+ String base_dir = GlobalConfig::get_singleton()->localize_path(path.get_base_dir()).replace("\\","/").replace("res://","");
DirAccess *da=DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
String cwd = d->get_current_dir();
da->change_dir(cwd);
@@ -1738,14 +1947,14 @@ Error ProjectExport::export_project(const String& p_preset) {
delete_source=true;
//create an optimized source file
- if (!Globals::get_singleton()->has("optimizer_presets/"+preset)) {
+ if (!GlobalConfig::get_singleton()->has("optimizer_presets/"+preset)) {
memdelete(d);
ERR_EXPLAIN("Unknown optimizer preset: "+preset);
ERR_FAIL_V(ERR_INVALID_DATA);
}
- Dictionary dc = Globals::get_singleton()->get("optimizer_presets/"+preset);
+ Dictionary dc = GlobalConfig::get_singleton()->get("optimizer_presets/"+preset);
ERR_FAIL_COND_V(!dc.has("__type__"),ERR_INVALID_DATA);
String type=dc["__type__"];
@@ -1785,8 +1994,10 @@ Error ProjectExport::export_project(const String& p_preset) {
uint32_t flags=0;
-// if (saver->is_bundle_scenes_enabled())
-// flags|=Reso::FLAG_BUNDLE_INSTANCED_SCENES;
+ /*
+ if (saver->is_bundle_scenes_enabled())
+ flags|=Reso::FLAG_BUNDLE_INSTANCED_SCENES;
+ */
saver->set_bundle_exceptions(NULL);
if (E->get().depaction>=ProjectExportSettings::DA_BUNDLE) {
flags|=ResourceSaver::FLAG_BUNDLE_RESOURCES;
@@ -1832,7 +2043,7 @@ Error ProjectExport::export_project(const String& p_preset) {
ERR_FAIL_COND_V(err,ERR_CANT_OPEN);
}
source_file=write_file;
- // project_settings->add_remapped_path(src_scene,path,platform);
+ //project_settings->add_remapped_path(src_scene,path,platform);
}
@@ -1875,7 +2086,7 @@ Error ProjectExport::export_project(const String& p_preset) {
for (Map<String,Map<String,String> >::Element *E=remapped_paths.front();E;E=E->next()) {
String platform=E->key();
- DVector<String> remaps;
+ PoolVector<String> remaps;
for(Map<String,String>::Element *F=E->get().front();F;F=F->next() ) {
remaps.push_back(F->key());
@@ -1884,13 +2095,13 @@ Error ProjectExport::export_project(const String& p_preset) {
-// added_settings["remap/"+platform]=remaps;`
+ //added_settings["remap/"+platform]=remaps;`
added_settings["remap/"+platform]=Variant(remaps).operator Array();
}
String engine_cfg_path=d->get_current_dir()+"/engine.cfg";
print_line("enginecfg: "+engine_cfg_path);
- Globals::get_singleton()->save_custom(engine_cfg_path,added_settings);
+ GlobalConfig::get_singleton()->save_custom(engine_cfg_path,added_settings);
memdelete(d);
return OK;
@@ -1902,7 +2113,7 @@ ProjectExport::ProjectExport(EditorData* p_data) {
editor_data=p_data;
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
set_title(TTR("Project Export"));
label = memnew( Label );
label->set_text(TTR("Export Preset:"));
diff --git a/tools/editor/project_export.h b/tools/editor/project_export.h
index 8cf2bf3afc..06992a7e34 100644
--- a/tools/editor/project_export.h
+++ b/tools/editor/project_export.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -49,7 +49,7 @@
class EditorNode;
class ProjectExportDialog : public ConfirmationDialog {
- OBJ_TYPE( ProjectExportDialog, ConfirmationDialog );
+ GDCLASS( ProjectExportDialog, ConfirmationDialog );
public:
enum ExportAction {
@@ -73,6 +73,7 @@ private:
bool pending_update_tree;
AcceptDialog *error;
ConfirmationDialog *confirm;
+ ConfirmationDialog *confirm_keystore;
Button *button_reload;
LineEdit *filters, *filters_exclude;
@@ -98,7 +99,7 @@ private:
bool _create_tree(TreeItem *p_parent,EditorFileSystemDirectory *p_dir);
void _rescan();
-// void _confirmed();
+ //void _confirmed();
void _scan_finished();
void _validate_platform();
@@ -133,7 +134,7 @@ private:
AcceptDialog *atlas_preview_dialog;
- TextureFrame *atlas_preview_frame;
+ TextureRect *atlas_preview_frame;
VBoxContainer *script_vbox;
@@ -145,6 +146,9 @@ private:
SpinBox *sample_max_hz;
CheckButton *sample_trim;
+ ConfirmationDialog* keystore_create_dialog;
+ EditorFileDialog* keystore_file_dialog;
+
void _export_mode_changed(int p_idx);
void _prop_edited(String what);
@@ -190,6 +194,13 @@ private:
void _export_action_pck(const String& p_file);
void ok_pressed();
void custom_action(const String&);
+ LineEdit* _create_keystore_input(Control* container, const String& p_label, const String& name);
+ void _create_android_keystore_window();
+ void _create_android_keystore();
+ bool _check_android_setting(const Ref<EditorExportPlatform>& exporter);
+ void _check_keystore_path(const String& path);
+ void _keystore_dir_selected(const String& path);
+ void _keystore_created();
void _save_export_cfg();
void _format_toggled();
@@ -212,7 +223,7 @@ public:
class EditorData;
class ProjectExport : public ConfirmationDialog {
- OBJ_TYPE( ProjectExport, ConfirmationDialog );
+ GDCLASS( ProjectExport, ConfirmationDialog );
EditorData *editor_data;
diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp
index 1c99982155..fb8cccdb79 100644
--- a/tools/editor/project_manager.cpp
+++ b/tools/editor/project_manager.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -26,8 +26,9 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "version.h"
#include "project_manager.h"
+
+#include "version.h"
#include "os/os.h"
#include "os/dir_access.h"
#include "os/file_access.h"
@@ -36,25 +37,21 @@
#include "scene/gui/separator.h"
#include "scene/gui/tool_button.h"
#include "io/config_file.h"
-
#include "scene/gui/line_edit.h"
#include "scene/gui/panel_container.h"
#include "scene/gui/center_container.h"
#include "io/stream_peer_ssl.h"
-
-#include "scene/gui/texture_frame.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/margin_container.h"
#include "io/resource_saver.h"
-
#include "editor_themes.h"
#include "editor_initialize_ssl.h"
#include "editor_scale.h"
-
#include "io/zip_io.h"
class NewProjectDialog : public ConfirmationDialog {
- OBJ_TYPE(NewProjectDialog,ConfirmationDialog);
+ GDCLASS(NewProjectDialog,ConfirmationDialog);
public:
@@ -75,15 +72,22 @@ private:
String zip_title;
AcceptDialog *dialog_error;
- bool _test_path() {
+ String _test_path() {
error->set_text("");
get_ok()->set_disabled(true);
DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
- if (project_path->get_text() != "" && d->change_dir(project_path->get_text())!=OK) {
+ String valid_path;
+ if (d->change_dir(project_path->get_text())==OK){
+ valid_path=project_path->get_text();
+ } else if (d->change_dir(project_path->get_text().strip_edges())==OK) {
+ valid_path=project_path->get_text().strip_edges();
+ }
+
+ if (valid_path == "") {
error->set_text(TTR("Invalid project path, the path must exist!"));
memdelete(d);
- return false;
+ return "";
}
if (mode!=MODE_IMPORT) {
@@ -92,30 +96,29 @@ private:
error->set_text(TTR("Invalid project path, engine.cfg must not exist."));
memdelete(d);
- return false;
+ return "";
}
} else {
- if (project_path->get_text() != "" && !d->file_exists("engine.cfg")) {
+ if (valid_path != "" && !d->file_exists("engine.cfg")) {
error->set_text(TTR("Invalid project path, engine.cfg must exist."));
memdelete(d);
- return false;
+ return "";
}
}
memdelete(d);
get_ok()->set_disabled(false);
- return true;
+ return valid_path;
}
void _path_text_changed(const String& p_path) {
- if ( _test_path() ) {
-
- String sp=p_path;
+ String sp=_test_path();
+ if ( sp!="" ) {
sp=sp.replace("\\","/");
int lidx=sp.find_last("/");
@@ -141,7 +144,7 @@ private:
}
String sp = p.simplify_path();
project_path->set_text(sp);
- _path_text_changed(p);
+ _path_text_changed(sp);
get_ok()->call_deferred("grab_focus");
}
@@ -150,7 +153,7 @@ private:
String p = p_path;
String sp = p.simplify_path();
project_path->set_text(sp);
- _path_text_changed(p);
+ _path_text_changed(sp);
get_ok()->call_deferred("grab_focus");
}
@@ -173,27 +176,15 @@ private:
void ok_pressed() {
- if (!_test_path())
+ String dir=_test_path();
+ if (dir=="") {
+ error->set_text(TTR("Invalid project path (changed anything?)."));
return;
-
- String dir;
+ }
if (mode==MODE_IMPORT) {
- dir=project_path->get_text();
-
-
+ // nothing to do
} else {
- DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
-
- if (d->change_dir(project_path->get_text())!=OK) {
- error->set_text(TTR("Invalid project path (changed anything?)."));
- memdelete(d);
- return;
- }
-
- dir=d->get_current_dir();
- memdelete(d);
-
if (mode==MODE_NEW) {
@@ -321,8 +312,6 @@ private:
}
-
-
}
dir=dir.replace("\\","/");
@@ -335,7 +324,7 @@ private:
hide();
- emit_signal("project_created");
+ emit_signal("project_created", dir);
}
@@ -343,11 +332,11 @@ protected:
static void _bind_methods() {
- ObjectTypeDB::bind_method("_browse_path",&NewProjectDialog::_browse_path);
- ObjectTypeDB::bind_method("_text_changed",&NewProjectDialog::_text_changed);
- ObjectTypeDB::bind_method("_path_text_changed",&NewProjectDialog::_path_text_changed);
- ObjectTypeDB::bind_method("_path_selected",&NewProjectDialog::_path_selected);
- ObjectTypeDB::bind_method("_file_selected",&NewProjectDialog::_file_selected);
+ ClassDB::bind_method("_browse_path",&NewProjectDialog::_browse_path);
+ ClassDB::bind_method("_text_changed",&NewProjectDialog::_text_changed);
+ ClassDB::bind_method("_path_text_changed",&NewProjectDialog::_path_text_changed);
+ ClassDB::bind_method("_path_selected",&NewProjectDialog::_path_selected);
+ ClassDB::bind_method("_file_selected",&NewProjectDialog::_file_selected);
ADD_SIGNAL( MethodInfo("project_created") );
}
@@ -402,7 +391,7 @@ public:
popup_centered(Size2(500,125)*EDSCALE);
}
-
+ project_path->grab_focus();
_test_path();
}
@@ -412,7 +401,7 @@ public:
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+ //set_child_rect(vb);
Label* l = memnew(Label);
l->set_text(TTR("Project Path:"));
@@ -459,7 +448,7 @@ public:
fdialog = memnew( FileDialog );
add_child(fdialog);
fdialog->set_access(FileDialog::ACCESS_FILESYSTEM);
- fdialog->set_current_dir( EditorSettings::get_singleton()->get("global/default_project_path") );
+ fdialog->set_current_dir( EditorSettings::get_singleton()->get("filesystem/directories/default_project_path") );
project_name->connect("text_changed", this,"_text_changed");
project_path->connect("text_changed", this,"_path_text_changed");
fdialog->connect("dir_selected", this,"_path_selected");
@@ -496,7 +485,7 @@ void ProjectManager::_notification(int p_what) {
} else if (p_what==NOTIFICATION_VISIBILITY_CHANGED) {
- set_process_unhandled_input(is_visible());
+ set_process_unhandled_input(is_visible_in_tree());
}
}
@@ -864,24 +853,25 @@ void ProjectManager::_load_recent_projects() {
hb->set_meta("main_scene",main_scene);
hb->set_meta("favorite",is_favorite);
hb->connect("draw",this,"_panel_draw",varray(hb));
- hb->connect("input_event",this,"_panel_input",varray(hb));
+ hb->connect("gui_input",this,"_panel_input",varray(hb));
hb->add_constant_override("separation",10*EDSCALE);
VBoxContainer *favorite_box = memnew( VBoxContainer );
TextureButton *favorite = memnew( TextureButton );
favorite->set_normal_texture(favorite_icon);
if (!is_favorite)
- favorite->set_opacity(0.2);
+ favorite->set_modulate(Color(1,1,1,0.2));
favorite->set_v_size_flags(SIZE_EXPAND);
favorite->connect("pressed",this,"_favorite_pressed",varray(hb));
favorite_box->add_child(favorite);
hb->add_child(favorite_box);
- TextureFrame *tf = memnew( TextureFrame );
+ TextureRect *tf = memnew( TextureRect );
tf->set_texture(icon);
hb->add_child(tf);
VBoxContainer *vb = memnew(VBoxContainer);
+ vb->set_name("project");
hb->add_child(vb);
Control *ec = memnew( Control );
ec->set_custom_minimum_size(Size2(0,1));
@@ -891,8 +881,9 @@ void ProjectManager::_load_recent_projects() {
title->add_color_override("font_color",font_color);
vb->add_child(title);
Label *fpath = memnew( Label(path) );
+ fpath->set_name("path");
vb->add_child(fpath);
- fpath->set_opacity(0.5);
+ fpath->set_modulate(Color(1,1,1,0.5));
fpath->add_color_override("font_color",font_color);
scroll_childs->add_child(hb);
@@ -912,6 +903,43 @@ void ProjectManager::_load_recent_projects() {
tabs->set_current_tab(0);
}
+void ProjectManager::_on_project_created(const String& dir) {
+ bool has_already=false;
+ for (int i=0;i<scroll_childs->get_child_count();i++) {
+ HBoxContainer *hb=scroll_childs->get_child(i)->cast_to<HBoxContainer>();
+ Label *fpath=hb->get_node(NodePath("project/path"))->cast_to<Label>();
+ if (fpath->get_text()==dir) {
+ has_already=true;
+ break;
+ }
+ }
+ if (has_already) {
+ _update_scroll_pos(dir);
+ } else {
+ _load_recent_projects();
+ scroll->connect("draw", this, "_update_scroll_pos", varray(dir), CONNECT_ONESHOT);
+ }
+}
+
+void ProjectManager::_update_scroll_pos(const String& dir) {
+ for (int i=0;i<scroll_childs->get_child_count();i++) {
+ HBoxContainer *hb=scroll_childs->get_child(i)->cast_to<HBoxContainer>();
+ Label *fpath=hb->get_node(NodePath("project/path"))->cast_to<Label>();
+ if (fpath->get_text()==dir) {
+ last_clicked=hb->get_meta("name");
+ selected_list.clear();
+ selected_list.insert(hb->get_meta("name"), hb->get_meta("main_scene"));
+ _update_project_buttons();
+ int last_y_visible=scroll->get_v_scroll()+scroll->get_size().y;
+ int offset_diff=(hb->get_pos().y + hb->get_size().y)-last_y_visible;
+
+ if (offset_diff>0)
+ scroll->set_v_scroll(scroll->get_v_scroll()+offset_diff);
+ break;
+ }
+ }
+}
+
void ProjectManager::_open_project_confirm() {
for (Map<String,String>::Element *E=selected_list.front(); E; E=E->next()) {
@@ -972,7 +1000,7 @@ void ProjectManager::_run_project_confirm() {
Error err = OS::get_singleton()->execute(exec,args,false,&pid);
ERR_FAIL_COND(err);
}
- // get_scene()->quit(); do not quit
+ //get_scene()->quit(); do not quit
}
void ProjectManager::_run_project() {
@@ -1102,7 +1130,7 @@ void ProjectManager::_install_project(const String& p_zip_path,const String& p_t
npdialog->show_dialog();
}
-void ProjectManager::_files_dropped(StringArray p_files, int p_screen) {
+void ProjectManager::_files_dropped(PoolStringArray p_files, int p_screen) {
Set<String> folders_set;
DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
for (int i = 0; i < p_files.size(); i++) {
@@ -1111,7 +1139,7 @@ void ProjectManager::_files_dropped(StringArray p_files, int p_screen) {
}
memdelete(da);
if (folders_set.size()>0) {
- StringArray folders;
+ PoolStringArray folders;
for (Set<String>::Element *E=folders_set.front();E;E=E->next()) {
folders.append(E->get());
}
@@ -1123,7 +1151,7 @@ void ProjectManager::_files_dropped(StringArray p_files, int p_screen) {
dir->list_dir_begin();
String file = dir->get_next();
while(confirm && file!=String()) {
- if (!da->current_is_dir() && file.ends_with("engine.cfg")) {
+ if (!dir->current_is_dir() && file.ends_with("engine.cfg")) {
confirm = false;
}
file = dir->get_next();
@@ -1143,7 +1171,7 @@ void ProjectManager::_files_dropped(StringArray p_files, int p_screen) {
}
}
-void ProjectManager::_scan_multiple_folders(StringArray p_files)
+void ProjectManager::_scan_multiple_folders(PoolStringArray p_files)
{
for (int i = 0; i < p_files.size(); i++) {
_scan_begin(p_files.get(i));
@@ -1152,25 +1180,27 @@ void ProjectManager::_scan_multiple_folders(StringArray p_files)
void ProjectManager::_bind_methods() {
- ObjectTypeDB::bind_method("_open_project",&ProjectManager::_open_project);
- ObjectTypeDB::bind_method("_open_project_confirm",&ProjectManager::_open_project_confirm);
- ObjectTypeDB::bind_method("_run_project",&ProjectManager::_run_project);
- ObjectTypeDB::bind_method("_run_project_confirm",&ProjectManager::_run_project_confirm);
- ObjectTypeDB::bind_method("_scan_projects",&ProjectManager::_scan_projects);
- ObjectTypeDB::bind_method("_scan_begin",&ProjectManager::_scan_begin);
- ObjectTypeDB::bind_method("_import_project",&ProjectManager::_import_project);
- ObjectTypeDB::bind_method("_new_project",&ProjectManager::_new_project);
- ObjectTypeDB::bind_method("_erase_project",&ProjectManager::_erase_project);
- ObjectTypeDB::bind_method("_erase_project_confirm",&ProjectManager::_erase_project_confirm);
- ObjectTypeDB::bind_method("_exit_dialog",&ProjectManager::_exit_dialog);
- ObjectTypeDB::bind_method("_load_recent_projects",&ProjectManager::_load_recent_projects);
- ObjectTypeDB::bind_method("_panel_draw",&ProjectManager::_panel_draw);
- ObjectTypeDB::bind_method("_panel_input",&ProjectManager::_panel_input);
- ObjectTypeDB::bind_method("_unhandled_input",&ProjectManager::_unhandled_input);
- ObjectTypeDB::bind_method("_favorite_pressed",&ProjectManager::_favorite_pressed);
- ObjectTypeDB::bind_method("_install_project",&ProjectManager::_install_project);
- ObjectTypeDB::bind_method("_files_dropped",&ProjectManager::_files_dropped);
- ObjectTypeDB::bind_method(_MD("_scan_multiple_folders", "files"),&ProjectManager::_scan_multiple_folders);
+ ClassDB::bind_method("_open_project",&ProjectManager::_open_project);
+ ClassDB::bind_method("_open_project_confirm",&ProjectManager::_open_project_confirm);
+ ClassDB::bind_method("_run_project",&ProjectManager::_run_project);
+ ClassDB::bind_method("_run_project_confirm",&ProjectManager::_run_project_confirm);
+ ClassDB::bind_method("_scan_projects",&ProjectManager::_scan_projects);
+ ClassDB::bind_method("_scan_begin",&ProjectManager::_scan_begin);
+ ClassDB::bind_method("_import_project",&ProjectManager::_import_project);
+ ClassDB::bind_method("_new_project",&ProjectManager::_new_project);
+ ClassDB::bind_method("_erase_project",&ProjectManager::_erase_project);
+ ClassDB::bind_method("_erase_project_confirm",&ProjectManager::_erase_project_confirm);
+ ClassDB::bind_method("_exit_dialog",&ProjectManager::_exit_dialog);
+ ClassDB::bind_method("_load_recent_projects",&ProjectManager::_load_recent_projects);
+ ClassDB::bind_method("_on_project_created",&ProjectManager::_on_project_created);
+ ClassDB::bind_method("_update_scroll_pos",&ProjectManager::_update_scroll_pos);
+ ClassDB::bind_method("_panel_draw",&ProjectManager::_panel_draw);
+ ClassDB::bind_method("_panel_input",&ProjectManager::_panel_input);
+ ClassDB::bind_method("_unhandled_input",&ProjectManager::_unhandled_input);
+ ClassDB::bind_method("_favorite_pressed",&ProjectManager::_favorite_pressed);
+ ClassDB::bind_method("_install_project",&ProjectManager::_install_project);
+ ClassDB::bind_method("_files_dropped",&ProjectManager::_files_dropped);
+ ClassDB::bind_method(_MD("_scan_multiple_folders", "files"),&ProjectManager::_scan_multiple_folders);
}
@@ -1185,7 +1215,7 @@ ProjectManager::ProjectManager() {
EditorSettings::get_singleton()->set_optimize_save(false); //just write settings as they came
{
- int dpi_mode = EditorSettings::get_singleton()->get("global/hidpi_mode");
+ int dpi_mode = EditorSettings::get_singleton()->get("interface/hidpi_mode");
if (dpi_mode==0) {
editor_set_scale( OS::get_singleton()->get_screen_dpi(0) > 150 && OS::get_singleton()->get_screen_size(OS::get_singleton()->get_current_screen()).x>2000 ? 2.0 : 1.0 );
} else if (dpi_mode==1) {
@@ -1199,7 +1229,7 @@ ProjectManager::ProjectManager() {
}
}
- FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"));
+ FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("filesytem/file_dialog/show_hidden_files"));
set_area_as_parent_rect();
set_theme(create_editor_theme());
@@ -1223,7 +1253,7 @@ ProjectManager::ProjectManager() {
String cp;
cp.push_back(0xA9);
cp.push_back(0);
- OS::get_singleton()->set_window_title(_MKSTR(VERSION_NAME)+String(" - ")+TTR("Project Manager")+" - "+cp+" 2008-2016 Juan Linietsky, Ariel Manzur.");
+ OS::get_singleton()->set_window_title(_MKSTR(VERSION_NAME)+String(" - ")+TTR("Project Manager")+" - "+cp+" 2008-2017 Juan Linietsky, Ariel Manzur.");
HBoxContainer *top_hb = memnew( HBoxContainer);
vb->add_child(top_hb);
@@ -1308,7 +1338,7 @@ ProjectManager::ProjectManager() {
scan_dir->set_access(FileDialog::ACCESS_FILESYSTEM);
scan_dir->set_mode(FileDialog::MODE_OPEN_DIR);
scan_dir->set_title(TTR("Select a Folder to Scan")); // must be after mode or it's overridden
- scan_dir->set_current_dir( EditorSettings::get_singleton()->get("global/default_project_path") );
+ scan_dir->set_current_dir( EditorSettings::get_singleton()->get("filesystem/directories/default_project_path") );
gui_base->add_child(scan_dir);
scan_dir->connect("dir_selected",this,"_scan_begin");
@@ -1382,11 +1412,11 @@ ProjectManager::ProjectManager() {
npdialog = memnew( NewProjectDialog );
gui_base->add_child(npdialog);
- npdialog->connect("project_created", this,"_load_recent_projects");
+ npdialog->connect("project_created", this,"_on_project_created");
_load_recent_projects();
- if ( EditorSettings::get_singleton()->get("global/autoscan_project_path") ) {
- _scan_begin( EditorSettings::get_singleton()->get("global/autoscan_project_path") );
+ if ( EditorSettings::get_singleton()->get("filesystem/directories/autoscan_project_path") ) {
+ _scan_begin( EditorSettings::get_singleton()->get("filesystem/directories/autoscan_project_path") );
}
//get_ok()->set_text("Open");
@@ -1453,9 +1483,9 @@ void ProjectListFilter::_notification(int p_what) {
void ProjectListFilter::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_command"),&ProjectListFilter::_command);
- ObjectTypeDB::bind_method(_MD("_search_text_changed"), &ProjectListFilter::_search_text_changed);
- ObjectTypeDB::bind_method(_MD("_filter_option_selected"), &ProjectListFilter::_filter_option_selected);
+ ClassDB::bind_method(_MD("_command"),&ProjectListFilter::_command);
+ ClassDB::bind_method(_MD("_search_text_changed"), &ProjectListFilter::_search_text_changed);
+ ClassDB::bind_method(_MD("_filter_option_selected"), &ProjectListFilter::_filter_option_selected);
ADD_SIGNAL( MethodInfo("filter_changed") );
}
diff --git a/tools/editor/project_manager.h b/tools/editor/project_manager.h
index 46f7aea3a5..1fd8a301ea 100644
--- a/tools/editor/project_manager.h
+++ b/tools/editor/project_manager.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,7 +40,7 @@ class NewProjectDialog;
class ProjectListFilter;
class ProjectManager : public Control {
- OBJ_TYPE( ProjectManager, Control );
+ GDCLASS( ProjectManager, Control );
Button *erase_btn;
Button *open_btn;
@@ -85,6 +85,8 @@ class ProjectManager : public Control {
void _scan_begin(const String& p_base);
void _load_recent_projects();
+ void _on_project_created(const String& dir);
+ void _update_scroll_pos(const String& dir);
void _scan_dir(DirAccess *da,float pos, float total,List<String> *r_projects);
void _install_project(const String& p_zip_path,const String& p_title);
@@ -93,8 +95,8 @@ class ProjectManager : public Control {
void _panel_input(const InputEvent& p_ev,Node *p_hb);
void _unhandled_input(const InputEvent& p_ev);
void _favorite_pressed(Node *p_hb);
- void _files_dropped(StringArray p_files, int p_screen);
- void _scan_multiple_folders(StringArray p_files);
+ void _files_dropped(PoolStringArray p_files, int p_screen);
+ void _scan_multiple_folders(PoolStringArray p_files);
protected:
@@ -107,7 +109,7 @@ public:
class ProjectListFilter : public HBoxContainer {
- OBJ_TYPE( ProjectListFilter, HBoxContainer );
+ GDCLASS( ProjectListFilter, HBoxContainer );
private:
diff --git a/tools/editor/project_settings.cpp b/tools/editor/project_settings.cpp
index 02d95abfa2..15d03b8a2b 100644
--- a/tools/editor/project_settings.cpp
+++ b/tools/editor/project_settings.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "project_settings.h"
+
#include "scene/gui/tab_container.h"
#include "globals.h"
#include "os/keyboard.h"
@@ -74,7 +75,7 @@ void ProjectSettings::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
- globals_editor->edit(Globals::get_singleton());
+ globals_editor->edit(GlobalConfig::get_singleton());
search_button->set_icon(get_icon("Zoom","EditorIcons"));
clear_button->set_icon(get_icon("Close","EditorIcons"));
@@ -82,8 +83,8 @@ void ProjectSettings::_notification(int p_what) {
translation_list->connect("button_pressed",this,"_translation_delete");
_update_actions();
popup_add->add_icon_item(get_icon("Keyboard","EditorIcons"),TTR("Key "),InputEvent::KEY);//"Key " - because the word 'key' has already been used as a key animation
- popup_add->add_icon_item(get_icon("JoyButton","EditorIcons"),TTR("Joy Button"),InputEvent::JOYSTICK_BUTTON);
- popup_add->add_icon_item(get_icon("JoyAxis","EditorIcons"),TTR("Joy Axis"),InputEvent::JOYSTICK_MOTION);
+ popup_add->add_icon_item(get_icon("JoyButton","EditorIcons"),TTR("Joy Button"),InputEvent::JOYPAD_BUTTON);
+ popup_add->add_icon_item(get_icon("JoyAxis","EditorIcons"),TTR("Joy Axis"),InputEvent::JOYPAD_MOTION);
popup_add->add_icon_item(get_icon("Mouse","EditorIcons"),TTR("Mouse Button"),InputEvent::MOUSE_BUTTON);
List<String> tfn;
@@ -136,7 +137,7 @@ void ProjectSettings::_action_edited() {
String action_prop="input/"+new_name;
- if (Globals::get_singleton()->has(action_prop)) {
+ if (GlobalConfig::get_singleton()->has(action_prop)) {
ti->set_text(0,old_name);
add_at="input/"+old_name;
@@ -146,20 +147,17 @@ void ProjectSettings::_action_edited() {
return;
}
- int order = Globals::get_singleton()->get_order(add_at);
- Array va = Globals::get_singleton()->get(add_at);
- bool persisting = Globals::get_singleton()->is_persisting(add_at);
+ int order = GlobalConfig::get_singleton()->get_order(add_at);
+ Array va = GlobalConfig::get_singleton()->get(add_at);
setting=true;
undo_redo->create_action(TTR("Rename Input Action Event"));
- undo_redo->add_do_method(Globals::get_singleton(),"clear",add_at);
- undo_redo->add_do_method(Globals::get_singleton(),"set",action_prop,va);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",action_prop,persisting);
- undo_redo->add_do_method(Globals::get_singleton(),"set_order",action_prop,order);
- undo_redo->add_undo_method(Globals::get_singleton(),"clear",action_prop);
- undo_redo->add_undo_method(Globals::get_singleton(),"set",add_at,va);
- undo_redo->add_undo_method(Globals::get_singleton(),"set_persisting",add_at,persisting);
- undo_redo->add_undo_method(Globals::get_singleton(),"set_order",add_at,order);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"clear",add_at);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",action_prop,va);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"set_order",action_prop,order);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"clear",action_prop);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",add_at,va);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set_order",add_at,order);
undo_redo->add_do_method(this,"_update_actions");
undo_redo->add_undo_method(this,"_update_actions");
undo_redo->add_do_method(this,"_settings_changed");
@@ -179,9 +177,9 @@ void ProjectSettings::_device_input_add() {
InputEvent ie;
String name=add_at;
- Variant old_val = Globals::get_singleton()->get(name);
+ Variant old_val = GlobalConfig::get_singleton()->get(name);
Array arr=old_val;
- ie.device=device_id->get_val();
+ ie.device=device_id->get_value();
ie.type=add_type;
@@ -201,7 +199,7 @@ void ProjectSettings::_device_input_add() {
}
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
ie.joy_motion.axis = device_index->get_selected()>>1;
ie.joy_motion.axis_value = device_index->get_selected()&1?1:-1;
@@ -210,20 +208,20 @@ void ProjectSettings::_device_input_add() {
for(int i=0;i<arr.size();i++) {
InputEvent aie=arr[i];
- if (aie.device == ie.device && aie.type==InputEvent::JOYSTICK_MOTION && aie.joy_motion.axis==ie.joy_motion.axis && aie.joy_motion.axis_value==ie.joy_motion.axis_value) {
+ if (aie.device == ie.device && aie.type==InputEvent::JOYPAD_MOTION && aie.joy_motion.axis==ie.joy_motion.axis && aie.joy_motion.axis_value==ie.joy_motion.axis_value) {
return;
}
}
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
ie.joy_button.button_index=device_index->get_selected();
for(int i=0;i<arr.size();i++) {
InputEvent aie=arr[i];
- if (aie.device == ie.device && aie.type==InputEvent::JOYSTICK_BUTTON && aie.joy_button.button_index==ie.joy_button.button_index) {
+ if (aie.device == ie.device && aie.type==InputEvent::JOYPAD_BUTTON && aie.joy_button.button_index==ie.joy_button.button_index) {
return;
}
}
@@ -236,9 +234,8 @@ void ProjectSettings::_device_input_add() {
arr.push_back(ie);
undo_redo->create_action(TTR("Add Input Action Event"));
- undo_redo->add_do_method(Globals::get_singleton(),"set",name,arr);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",name,true);
- undo_redo->add_undo_method(Globals::get_singleton(),"set",name,old_val);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",name,arr);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",name,old_val);
undo_redo->add_do_method(this,"_update_actions");
undo_redo->add_undo_method(this,"_update_actions");
undo_redo->add_do_method(this,"_settings_changed");
@@ -260,7 +257,7 @@ void ProjectSettings::_press_a_key_confirm() {
ie.key.mod=last_wait_for_key.key.mod;
String name=add_at;
- Variant old_val = Globals::get_singleton()->get(name);
+ Variant old_val = GlobalConfig::get_singleton()->get(name);
Array arr=old_val;
for(int i=0;i<arr.size();i++) {
@@ -274,9 +271,8 @@ void ProjectSettings::_press_a_key_confirm() {
arr.push_back(ie);
undo_redo->create_action(TTR("Add Input Action Event"));
- undo_redo->add_do_method(Globals::get_singleton(),"set",name,arr);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",name,true);
- undo_redo->add_undo_method(Globals::get_singleton(),"set",name,old_val);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",name,arr);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",name,old_val);
undo_redo->add_do_method(this,"_update_actions");
undo_redo->add_undo_method(this,"_update_actions");
undo_redo->add_do_method(this,"_settings_changed");
@@ -352,7 +348,7 @@ void ProjectSettings::_add_item(int p_item){
} break;
case InputEvent::MOUSE_BUTTON: {
- device_id->set_val(0);
+ device_id->set_value(0);
device_index_label->set_text(TTR("Mouse Button Index:"));
device_index->clear();
device_index->add_item(TTR("Left Button"));
@@ -366,10 +362,10 @@ void ProjectSettings::_add_item(int p_item){
device_index->add_item(TTR("Button 9"));
device_input->popup_centered_minsize(Size2(350,95));
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
- device_id->set_val(0);
- device_index_label->set_text(TTR("Joystick Axis Index:"));
+ device_id->set_value(0);
+ device_index_label->set_text(TTR("Joypad Axis Index:"));
device_index->clear();
for(int i=0;i<JOY_AXIS_MAX*2;i++) {
@@ -379,10 +375,10 @@ void ProjectSettings::_add_item(int p_item){
device_input->popup_centered_minsize(Size2(350,95));
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
- device_id->set_val(3);
- device_index_label->set_text(TTR("Joystick Button Index:"));
+ device_id->set_value(3);
+ device_index_label->set_text(TTR("Joypad Button Index:"));
device_index->clear();
for(int i=0;i<JOY_BUTTON_MAX;i++) {
@@ -423,14 +419,13 @@ void ProjectSettings::_action_button_pressed(Object* p_obj, int p_column,int p_i
//remove main thing
String name="input/"+ti->get_text(0);
- Variant old_val = Globals::get_singleton()->get(name);
- int order=Globals::get_singleton()->get_order(name);
+ Variant old_val = GlobalConfig::get_singleton()->get(name);
+ int order=GlobalConfig::get_singleton()->get_order(name);
undo_redo->create_action(TTR("Add Input Action"));
- undo_redo->add_do_method(Globals::get_singleton(),"clear",name);
- undo_redo->add_undo_method(Globals::get_singleton(),"set",name,old_val);
- undo_redo->add_undo_method(Globals::get_singleton(),"set_order",name,order);
- undo_redo->add_undo_method(Globals::get_singleton(),"set_persisting",name,Globals::get_singleton()->is_persisting(name));
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"clear",name);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",name,old_val);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set_order",name,order);
undo_redo->add_do_method(this,"_update_actions");
undo_redo->add_undo_method(this,"_update_actions");
undo_redo->add_do_method(this,"_settings_changed");
@@ -440,7 +435,7 @@ void ProjectSettings::_action_button_pressed(Object* p_obj, int p_column,int p_i
} else {
//remove action
String name="input/"+ti->get_parent()->get_text(0);
- Variant old_val = Globals::get_singleton()->get(name);
+ Variant old_val = GlobalConfig::get_singleton()->get(name);
int idx = ti->get_metadata(0);
Array va = old_val;
@@ -456,8 +451,8 @@ void ProjectSettings::_action_button_pressed(Object* p_obj, int p_column,int p_i
undo_redo->create_action(TTR("Erase Input Action Event"));
- undo_redo->add_do_method(Globals::get_singleton(),"set",name,va);
- undo_redo->add_undo_method(Globals::get_singleton(),"set",name,old_val);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",name,va);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"set",name,old_val);
undo_redo->add_do_method(this,"_update_actions");
undo_redo->add_undo_method(this,"_update_actions");
undo_redo->add_do_method(this,"_settings_changed");
@@ -480,7 +475,7 @@ void ProjectSettings::_update_actions() {
input_editor->set_hide_root(true);
List<PropertyInfo> props;
- Globals::get_singleton()->get_property_list(&props);
+ GlobalConfig::get_singleton()->get_property_list(&props);
for(List<PropertyInfo>::Element *E=props.front();E;E=E->next()) {
@@ -496,7 +491,7 @@ void ProjectSettings::_update_actions() {
//item->set_cell_mode(0,TreeItem::CELL_MODE_CHECK);
item->set_text(0,name);
item->add_button(0,get_icon("Add","EditorIcons"),1);
- if (!Globals::get_singleton()->get_input_presets().find(pi.name)) {
+ if (!GlobalConfig::get_singleton()->get_input_presets().find(pi.name)) {
item->add_button(0,get_icon("Remove","EditorIcons"),2);
item->set_editable(0,true);
}
@@ -504,7 +499,7 @@ void ProjectSettings::_update_actions() {
//item->set_checked(0,pi.usage&PROPERTY_USAGE_CHECKED);
- Array actions=Globals::get_singleton()->get(pi.name);
+ Array actions=GlobalConfig::get_singleton()->get(pi.name);
for(int i=0;i<actions.size();i++) {
@@ -532,7 +527,7 @@ void ProjectSettings::_update_actions() {
action->set_icon(0,get_icon("Keyboard","EditorIcons"));
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
String str = TTR("Device")+" "+itos(ie.device)+", "+TTR("Button")+" "+itos(ie.joy_button.button_index);
if (ie.joy_button.button_index>=0 && ie.joy_button.button_index<JOY_BUTTON_MAX)
@@ -558,7 +553,7 @@ void ProjectSettings::_update_actions() {
action->set_text(0,str);
action->set_icon(0,get_icon("Mouse","EditorIcons"));
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
int ax = ie.joy_motion.axis;
int n = 2*ax + (ie.joy_motion.axis_value<0 ? 0:1);
@@ -636,13 +631,12 @@ void ProjectSettings::_item_add() {
undo_redo->create_action("Add Global Property");
- undo_redo->add_do_property(Globals::get_singleton(), name, value);
- undo_redo->add_do_method(Globals::get_singleton(), "set_persisting", name, true);
+ undo_redo->add_do_property(GlobalConfig::get_singleton(), name, value);
- if (Globals::get_singleton()->has(name)) {
- undo_redo->add_undo_property(Globals::get_singleton(), name, Globals::get_singleton()->get(name));
+ if (GlobalConfig::get_singleton()->has(name)) {
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, GlobalConfig::get_singleton()->get(name));
} else {
- undo_redo->add_undo_property(Globals::get_singleton(), name, Variant());
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, Variant());
}
undo_redo->add_do_method(globals_editor, "update_category_list");
@@ -669,10 +663,9 @@ void ProjectSettings::_item_del() {
undo_redo->create_action("Delete Global Property");
- undo_redo->add_do_property(Globals::get_singleton(), name, Variant());
+ undo_redo->add_do_property(GlobalConfig::get_singleton(), name, Variant());
- undo_redo->add_undo_property(Globals::get_singleton(), name, Globals::get_singleton()->get(name));
- undo_redo->add_undo_method(Globals::get_singleton(), "set_persisting", name, Globals::get_singleton()->is_persisting(name));
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(), name, GlobalConfig::get_singleton()->get(name));
undo_redo->add_do_method(globals_editor, "update_category_list");
undo_redo->add_undo_method(globals_editor, "update_category_list");
@@ -699,7 +692,7 @@ void ProjectSettings::_action_add() {
return;
}
- if (Globals::get_singleton()->has("input/"+action)) {
+ if (GlobalConfig::get_singleton()->has("input/"+action)) {
message->set_text(vformat(TTR("Action '%s' already exists!"),action));
message->popup_centered(Size2(300,100));
return;
@@ -708,9 +701,8 @@ void ProjectSettings::_action_add() {
Array va;
String name = "input/"+action;
undo_redo->create_action(TTR("Add Input Action Event"));
- undo_redo->add_do_method(Globals::get_singleton(),"set",name,va);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",name,true);
- undo_redo->add_undo_method(Globals::get_singleton(),"clear",name);
+ undo_redo->add_do_method(GlobalConfig::get_singleton(),"set",name,va);
+ undo_redo->add_undo_method(GlobalConfig::get_singleton(),"clear",name);
undo_redo->add_do_method(this,"_update_actions");
undo_redo->add_undo_method(this,"_update_actions");
undo_redo->add_do_method(this,"_settings_changed");
@@ -737,23 +729,14 @@ void ProjectSettings::_action_add() {
void ProjectSettings::_item_checked(const String& p_item, bool p_check) {
- undo_redo->create_action(TTR("Toggle Persisting"));
- String full_item = globals_editor->get_full_item_path(p_item);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",full_item,p_check);
- undo_redo->add_undo_method(Globals::get_singleton(),"set_persisting",full_item,!p_check);
- undo_redo->add_do_method(this,"_settings_changed");
- undo_redo->add_undo_method(this,"_settings_changed");
- undo_redo->add_do_method(globals_editor->get_property_editor(),"update_tree");
- undo_redo->add_undo_method(globals_editor->get_property_editor(),"update_tree");
- undo_redo->commit_action();
}
void ProjectSettings::_save() {
- Error err = Globals::get_singleton()->save();
+ Error err = GlobalConfig::get_singleton()->save();
message->set_text(err!=OK?TTR("Error saving settings."):TTR("Settings saved OK."));
message->popup_centered(Size2(300,100));
}
@@ -764,21 +747,6 @@ void ProjectSettings::_settings_prop_edited(const String& p_name) {
String full_item = globals_editor->get_full_item_path(p_name);
- if (!Globals::get_singleton()->is_persisting(full_item)) {
- Globals::get_singleton()->set_persisting(full_item,true);
-
- {
- //small usability workaround, if anything related to resolution scaling or size is modified, change all of them together
- if (full_item=="display/width" || full_item=="display/height" || full_item=="display/stretch_mode") {
- Globals::get_singleton()->set_persisting("display/height",true);
- Globals::get_singleton()->set_persisting("display/width",true);
- }
- }
-
-
-// globals_editor->update_property(p_name);
- globals_editor->get_property_editor()->update_tree();
- }
_settings_changed();
}
@@ -810,12 +778,12 @@ void ProjectSettings::_copy_to_platform(int p_which) {
}
String name = catname+"/"+propname;
- Variant value=Globals::get_singleton()->get(name);
+ Variant value=GlobalConfig::get_singleton()->get(name);
- catname+="."+popup_platform->get_popup()->get_item_text(p_which);;
+ catname+="."+popup_platform->get_popup()->get_item_text(p_which);
name = catname+"/"+propname;
- Globals::get_singleton()->set(name,value);
+ GlobalConfig::get_singleton()->set(name,value);
globals_editor->get_property_editor()->update_tree();
}
@@ -828,7 +796,7 @@ void ProjectSettings::add_translation(const String& p_translation) {
void ProjectSettings::_translation_add(const String& p_path) {
- StringArray translations = Globals::get_singleton()->get("locale/translations");
+ PoolStringArray translations = GlobalConfig::get_singleton()->get("locale/translations");
for(int i=0;i<translations.size();i++) {
@@ -839,9 +807,8 @@ void ProjectSettings::_translation_add(const String& p_path) {
translations.push_back(p_path);
undo_redo->create_action(TTR("Add Translation"));
- undo_redo->add_do_property(Globals::get_singleton(),"locale/translations",translations);
- undo_redo->add_undo_property(Globals::get_singleton(),"locale/translations",Globals::get_singleton()->get("locale/translations"));
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translations",true);
+ undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translations",translations);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translations",GlobalConfig::get_singleton()->get("locale/translations"));
undo_redo->add_do_method(this,"_update_translations");
undo_redo->add_undo_method(this,"_update_translations");
undo_redo->add_do_method(this,"_settings_changed");
@@ -862,15 +829,15 @@ void ProjectSettings::_translation_delete(Object *p_item,int p_column, int p_but
int idx=ti->get_metadata(0);
- StringArray translations = Globals::get_singleton()->get("locale/translations");
+ PoolStringArray translations = GlobalConfig::get_singleton()->get("locale/translations");
ERR_FAIL_INDEX(idx,translations.size());
translations.remove(idx);
undo_redo->create_action(TTR("Remove Translation"));
- undo_redo->add_do_property(Globals::get_singleton(),"locale/translations",translations);
- undo_redo->add_undo_property(Globals::get_singleton(),"locale/translations",Globals::get_singleton()->get("locale/translations"));
+ undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translations",translations);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translations",GlobalConfig::get_singleton()->get("locale/translations"));
undo_redo->add_do_method(this,"_update_translations");
undo_redo->add_undo_method(this,"_update_translations");
undo_redo->add_do_method(this,"_settings_changed");
@@ -891,20 +858,19 @@ void ProjectSettings::_translation_res_add(const String& p_path){
Variant prev;
Dictionary remaps;
- if (Globals::get_singleton()->has("locale/translation_remaps")) {
- remaps = Globals::get_singleton()->get("locale/translation_remaps");
+ if (GlobalConfig::get_singleton()->has("locale/translation_remaps")) {
+ remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps");
prev=remaps;
}
if (remaps.has(p_path))
return; //pointless already has it
- remaps[p_path]=StringArray();
+ remaps[p_path]=PoolStringArray();
undo_redo->create_action(TTR("Add Remapped Path"));
- undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true);
- undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",prev);
+ undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",prev);
undo_redo->add_do_method(this,"_update_translations");
undo_redo->add_undo_method(this,"_update_translations");
undo_redo->add_do_method(this,"_settings_changed");
@@ -920,9 +886,9 @@ void ProjectSettings::_translation_res_option_file_open(){
}
void ProjectSettings::_translation_res_option_add(const String& p_path) {
- ERR_FAIL_COND(!Globals::get_singleton()->has("locale/translation_remaps"));
+ ERR_FAIL_COND(!GlobalConfig::get_singleton()->has("locale/translation_remaps"));
- Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps");
+ Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps");
TreeItem *k = translation_remap->get_selected();
ERR_FAIL_COND(!k);
@@ -930,15 +896,14 @@ void ProjectSettings::_translation_res_option_add(const String& p_path) {
String key = k->get_metadata(0);
ERR_FAIL_COND(!remaps.has(key));
- StringArray r = remaps[key];
+ PoolStringArray r = remaps[key];
r.push_back(p_path+":"+"en");
remaps[key]=r;
undo_redo->create_action(TTR("Resource Remap Add Remap"));
- undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true);
- undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",Globals::get_singleton()->get("locale/translation_remaps"));
+ undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",GlobalConfig::get_singleton()->get("locale/translation_remaps"));
undo_redo->add_do_method(this,"_update_translations");
undo_redo->add_undo_method(this,"_update_translations");
undo_redo->add_do_method(this,"_settings_changed");
@@ -963,10 +928,10 @@ void ProjectSettings::_translation_res_option_changed() {
if (updating_translations)
return;
- if (!Globals::get_singleton()->has("locale/translation_remaps"))
+ if (!GlobalConfig::get_singleton()->has("locale/translation_remaps"))
return;
- Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps");
+ Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps");
TreeItem *k = translation_remap->get_selected();
ERR_FAIL_COND(!k);
@@ -984,16 +949,15 @@ void ProjectSettings::_translation_res_option_changed() {
ERR_FAIL_COND(!remaps.has(key));
- StringArray r = remaps[key];
+ PoolStringArray r = remaps[key];
ERR_FAIL_INDEX(idx,r.size());
r.set(idx,path+":"+langs[which]);
remaps[key]=r;
updating_translations=true;
undo_redo->create_action(TTR("Change Resource Remap Language"));
- undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true);
- undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",Globals::get_singleton()->get("locale/translation_remaps"));
+ undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",GlobalConfig::get_singleton()->get("locale/translation_remaps"));
undo_redo->add_do_method(this,"_update_translations");
undo_redo->add_undo_method(this,"_update_translations");
undo_redo->add_do_method(this,"_settings_changed");
@@ -1010,10 +974,10 @@ void ProjectSettings::_translation_res_delete(Object *p_item,int p_column, int p
if (updating_translations)
return;
- if (!Globals::get_singleton()->has("locale/translation_remaps"))
+ if (!GlobalConfig::get_singleton()->has("locale/translation_remaps"))
return;
- Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps");
+ Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps");
TreeItem *k = p_item->cast_to<TreeItem>();
@@ -1023,9 +987,8 @@ void ProjectSettings::_translation_res_delete(Object *p_item,int p_column, int p
remaps.erase(key);
undo_redo->create_action(TTR("Remove Resource Remap"));
- undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true);
- undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",Globals::get_singleton()->get("locale/translation_remaps"));
+ undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",GlobalConfig::get_singleton()->get("locale/translation_remaps"));
undo_redo->add_do_method(this,"_update_translations");
undo_redo->add_undo_method(this,"_update_translations");
undo_redo->add_do_method(this,"_settings_changed");
@@ -1038,10 +1001,10 @@ void ProjectSettings::_translation_res_option_delete(Object *p_item,int p_column
if (updating_translations)
return;
- if (!Globals::get_singleton()->has("locale/translation_remaps"))
+ if (!GlobalConfig::get_singleton()->has("locale/translation_remaps"))
return;
- Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps");
+ Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps");
TreeItem *k = translation_remap->get_selected();
ERR_FAIL_COND(!k);
@@ -1052,16 +1015,15 @@ void ProjectSettings::_translation_res_option_delete(Object *p_item,int p_column
int idx = ed->get_metadata(0);
ERR_FAIL_COND(!remaps.has(key));
- StringArray r = remaps[key];
+ PoolStringArray r = remaps[key];
ERR_FAIL_INDEX(idx,remaps.size());
r.remove(idx);
remaps[key]=r;
undo_redo->create_action(TTR("Remove Resource Remap Option"));
- undo_redo->add_do_property(Globals::get_singleton(),"locale/translation_remaps",remaps);
- undo_redo->add_do_method(Globals::get_singleton(),"set_persisting","locale/translation_remaps",true);
- undo_redo->add_undo_property(Globals::get_singleton(),"locale/translation_remaps",Globals::get_singleton()->get("locale/translation_remaps"));
+ undo_redo->add_do_property(GlobalConfig::get_singleton(),"locale/translation_remaps",remaps);
+ undo_redo->add_undo_property(GlobalConfig::get_singleton(),"locale/translation_remaps",GlobalConfig::get_singleton()->get("locale/translation_remaps"));
undo_redo->add_do_method(this,"_update_translations");
undo_redo->add_undo_method(this,"_update_translations");
undo_redo->add_do_method(this,"_settings_changed");
@@ -1082,9 +1044,9 @@ void ProjectSettings::_update_translations() {
translation_list->clear();
TreeItem *root = translation_list->create_item(NULL);
translation_list->set_hide_root(true);
- if (Globals::get_singleton()->has("locale/translations")) {
+ if (GlobalConfig::get_singleton()->has("locale/translations")) {
- StringArray translations = Globals::get_singleton()->get("locale/translations");
+ PoolStringArray translations = GlobalConfig::get_singleton()->get("locale/translations");
for(int i=0;i<translations.size();i++) {
TreeItem *t = translation_list->create_item(root);
@@ -1121,9 +1083,9 @@ void ProjectSettings::_update_translations() {
langnames+=names[i];
}
- if (Globals::get_singleton()->has("locale/translation_remaps")) {
+ if (GlobalConfig::get_singleton()->has("locale/translation_remaps")) {
- Dictionary remaps = Globals::get_singleton()->get("locale/translation_remaps");
+ Dictionary remaps = GlobalConfig::get_singleton()->get("locale/translation_remaps");
List<Variant> rk;
remaps.get_key_list(&rk);
Vector<String> keys;
@@ -1144,7 +1106,7 @@ void ProjectSettings::_update_translations() {
t->select(0);
translation_res_option_add_button->set_disabled(false);
- StringArray selected = remaps[keys[i]];
+ PoolStringArray selected = remaps[keys[i]];
for(int j=0;j<selected.size();j++) {
String s = selected[j];
@@ -1213,41 +1175,41 @@ void ProjectSettings::set_plugins_page() {
void ProjectSettings::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_item_selected"),&ProjectSettings::_item_selected);
- ObjectTypeDB::bind_method(_MD("_item_add"),&ProjectSettings::_item_add);
- ObjectTypeDB::bind_method(_MD("_item_adds"),&ProjectSettings::_item_adds);
- ObjectTypeDB::bind_method(_MD("_item_del"),&ProjectSettings::_item_del);
- ObjectTypeDB::bind_method(_MD("_item_checked"),&ProjectSettings::_item_checked);
- ObjectTypeDB::bind_method(_MD("_save"),&ProjectSettings::_save);
- ObjectTypeDB::bind_method(_MD("_action_add"),&ProjectSettings::_action_add);
- ObjectTypeDB::bind_method(_MD("_action_adds"),&ProjectSettings::_action_adds);
- ObjectTypeDB::bind_method(_MD("_action_selected"),&ProjectSettings::_action_selected);
- ObjectTypeDB::bind_method(_MD("_action_edited"),&ProjectSettings::_action_edited);
- ObjectTypeDB::bind_method(_MD("_action_button_pressed"),&ProjectSettings::_action_button_pressed);
- ObjectTypeDB::bind_method(_MD("_update_actions"),&ProjectSettings::_update_actions);
- ObjectTypeDB::bind_method(_MD("_wait_for_key"),&ProjectSettings::_wait_for_key);
- ObjectTypeDB::bind_method(_MD("_add_item"),&ProjectSettings::_add_item);
- ObjectTypeDB::bind_method(_MD("_device_input_add"),&ProjectSettings::_device_input_add);
- ObjectTypeDB::bind_method(_MD("_press_a_key_confirm"),&ProjectSettings::_press_a_key_confirm);
- ObjectTypeDB::bind_method(_MD("_settings_prop_edited"),&ProjectSettings::_settings_prop_edited);
- ObjectTypeDB::bind_method(_MD("_copy_to_platform"),&ProjectSettings::_copy_to_platform);
- ObjectTypeDB::bind_method(_MD("_update_translations"),&ProjectSettings::_update_translations);
- ObjectTypeDB::bind_method(_MD("_translation_delete"),&ProjectSettings::_translation_delete);
- ObjectTypeDB::bind_method(_MD("_settings_changed"),&ProjectSettings::_settings_changed);
- ObjectTypeDB::bind_method(_MD("_translation_add"),&ProjectSettings::_translation_add);
- ObjectTypeDB::bind_method(_MD("_translation_file_open"),&ProjectSettings::_translation_file_open);
-
- ObjectTypeDB::bind_method(_MD("_translation_res_add"),&ProjectSettings::_translation_res_add);
- ObjectTypeDB::bind_method(_MD("_translation_res_file_open"),&ProjectSettings::_translation_res_file_open);
- ObjectTypeDB::bind_method(_MD("_translation_res_option_add"),&ProjectSettings::_translation_res_option_add);
- ObjectTypeDB::bind_method(_MD("_translation_res_option_file_open"),&ProjectSettings::_translation_res_option_file_open);
- ObjectTypeDB::bind_method(_MD("_translation_res_select"),&ProjectSettings::_translation_res_select);
- ObjectTypeDB::bind_method(_MD("_translation_res_option_changed"),&ProjectSettings::_translation_res_option_changed);
- ObjectTypeDB::bind_method(_MD("_translation_res_delete"),&ProjectSettings::_translation_res_delete);
- ObjectTypeDB::bind_method(_MD("_translation_res_option_delete"),&ProjectSettings::_translation_res_option_delete);
-
- ObjectTypeDB::bind_method(_MD("_clear_search_box"),&ProjectSettings::_clear_search_box);
- ObjectTypeDB::bind_method(_MD("_toggle_search_bar"),&ProjectSettings::_toggle_search_bar);
+ ClassDB::bind_method(_MD("_item_selected"),&ProjectSettings::_item_selected);
+ ClassDB::bind_method(_MD("_item_add"),&ProjectSettings::_item_add);
+ ClassDB::bind_method(_MD("_item_adds"),&ProjectSettings::_item_adds);
+ ClassDB::bind_method(_MD("_item_del"),&ProjectSettings::_item_del);
+ ClassDB::bind_method(_MD("_item_checked"),&ProjectSettings::_item_checked);
+ ClassDB::bind_method(_MD("_save"),&ProjectSettings::_save);
+ ClassDB::bind_method(_MD("_action_add"),&ProjectSettings::_action_add);
+ ClassDB::bind_method(_MD("_action_adds"),&ProjectSettings::_action_adds);
+ ClassDB::bind_method(_MD("_action_selected"),&ProjectSettings::_action_selected);
+ ClassDB::bind_method(_MD("_action_edited"),&ProjectSettings::_action_edited);
+ ClassDB::bind_method(_MD("_action_button_pressed"),&ProjectSettings::_action_button_pressed);
+ ClassDB::bind_method(_MD("_update_actions"),&ProjectSettings::_update_actions);
+ ClassDB::bind_method(_MD("_wait_for_key"),&ProjectSettings::_wait_for_key);
+ ClassDB::bind_method(_MD("_add_item"),&ProjectSettings::_add_item);
+ ClassDB::bind_method(_MD("_device_input_add"),&ProjectSettings::_device_input_add);
+ ClassDB::bind_method(_MD("_press_a_key_confirm"),&ProjectSettings::_press_a_key_confirm);
+ ClassDB::bind_method(_MD("_settings_prop_edited"),&ProjectSettings::_settings_prop_edited);
+ ClassDB::bind_method(_MD("_copy_to_platform"),&ProjectSettings::_copy_to_platform);
+ ClassDB::bind_method(_MD("_update_translations"),&ProjectSettings::_update_translations);
+ ClassDB::bind_method(_MD("_translation_delete"),&ProjectSettings::_translation_delete);
+ ClassDB::bind_method(_MD("_settings_changed"),&ProjectSettings::_settings_changed);
+ ClassDB::bind_method(_MD("_translation_add"),&ProjectSettings::_translation_add);
+ ClassDB::bind_method(_MD("_translation_file_open"),&ProjectSettings::_translation_file_open);
+
+ ClassDB::bind_method(_MD("_translation_res_add"),&ProjectSettings::_translation_res_add);
+ ClassDB::bind_method(_MD("_translation_res_file_open"),&ProjectSettings::_translation_res_file_open);
+ ClassDB::bind_method(_MD("_translation_res_option_add"),&ProjectSettings::_translation_res_option_add);
+ ClassDB::bind_method(_MD("_translation_res_option_file_open"),&ProjectSettings::_translation_res_option_file_open);
+ ClassDB::bind_method(_MD("_translation_res_select"),&ProjectSettings::_translation_res_select);
+ ClassDB::bind_method(_MD("_translation_res_option_changed"),&ProjectSettings::_translation_res_option_changed);
+ ClassDB::bind_method(_MD("_translation_res_delete"),&ProjectSettings::_translation_res_delete);
+ ClassDB::bind_method(_MD("_translation_res_option_delete"),&ProjectSettings::_translation_res_option_delete);
+
+ ClassDB::bind_method(_MD("_clear_search_box"),&ProjectSettings::_clear_search_box);
+ ClassDB::bind_method(_MD("_toggle_search_bar"),&ProjectSettings::_toggle_search_bar);
}
@@ -1262,7 +1224,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
tab_container = memnew( TabContainer );
add_child(tab_container);
- set_child_rect(tab_container);
+ //set_child_rect(tab_container);
//tab_container->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN, 15 );
//tab_container->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END, 15 );
@@ -1347,6 +1309,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
globals_editor = memnew( SectionedPropertyEditor );
props_base->add_child(globals_editor);
+ globals_editor->get_property_editor()->set_undo_redo(EditorNode::get_singleton()->get_undo_redo());
//globals_editor->hide_top_label();
globals_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL);
globals_editor->get_property_editor()->register_text_enter(search_box);
@@ -1389,18 +1352,18 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
}
- popup_platform->get_popup()->connect("item_pressed",this,"_copy_to_platform");
+ popup_platform->get_popup()->connect("id_pressed",this,"_copy_to_platform");
get_ok()->set_text(TTR("Close"));
set_hide_on_ok(true);
message = memnew( ConfirmationDialog );
add_child(message);
-// message->get_cancel()->hide();
+ //message->get_cancel()->hide();
message->set_hide_on_ok(true);
Control *input_base = memnew( Control );
input_base->set_name(TTR("Input Map"));
- input_base->set_area_as_parent_rect();;
+ input_base->set_area_as_parent_rect();
tab_container->add_child(input_base);
VBoxContainer *vbc = memnew( VBoxContainer );
@@ -1437,7 +1400,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
input_editor->connect("button_pressed",this,"_action_button_pressed");
popup_add = memnew( PopupMenu );
add_child(popup_add);
- popup_add->connect("item_pressed",this,"_add_item");
+ popup_add->connect("id_pressed",this,"_add_item");
press_a_key = memnew( ConfirmationDialog );
press_a_key->set_focus_mode(FOCUS_ALL);
@@ -1451,7 +1414,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
l->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_BEGIN,30);
press_a_key_label=l;
press_a_key->add_child(l);
- press_a_key->connect("input_event",this,"_wait_for_key");
+ press_a_key->connect("gui_input",this,"_wait_for_key");
press_a_key->connect("confirmed",this,"_press_a_key_confirm");
@@ -1462,7 +1425,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
hbc = memnew( HBoxContainer );
device_input->add_child(hbc);
- device_input->set_child_rect(hbc);
+ //device_input->set_child_rect(hbc);
VBoxContainer *vbc_left = memnew( VBoxContainer );
hbc->add_child(vbc_left);
@@ -1472,7 +1435,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
vbc_left->add_child(l);
device_id = memnew( SpinBox );
- device_id->set_val(0);
+ device_id->set_value(0);
vbc_left->add_child(device_id);
VBoxContainer *vbc_right = memnew( VBoxContainer );
@@ -1606,7 +1569,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
timer = memnew( Timer );
timer->set_wait_time(1.5);
- timer->connect("timeout",Globals::get_singleton(),"save");
+ timer->connect("timeout",GlobalConfig::get_singleton(),"save");
timer->set_one_shot(true);
add_child(timer);
diff --git a/tools/editor/project_settings.h b/tools/editor/project_settings.h
index 61ad094d00..bb925a5fd9 100644
--- a/tools/editor/project_settings.h
+++ b/tools/editor/project_settings.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,7 +40,7 @@
//#include "project_export_settings.h"
class ProjectSettings : public AcceptDialog {
- OBJ_TYPE( ProjectSettings, AcceptDialog );
+ GDCLASS( ProjectSettings, AcceptDialog );
TabContainer *tab_container;
diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp
index ef6b1aa47c..ab850ba1a7 100644
--- a/tools/editor/property_editor.cpp
+++ b/tools/editor/property_editor.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,10 +27,11 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "property_editor.h"
+
#include "scene/gui/label.h"
#include "io/resource_loader.h"
#include "io/image_loader.h"
-#include "object_type_db.h"
+#include "class_db.h"
#include "print_string.h"
#include "globals.h"
#include "scene/resources/font.h"
@@ -47,6 +48,7 @@
#include "editor_file_system.h"
#include "create_dialog.h"
#include "property_selector.h"
+#include "globals.h"
void CustomPropertyEditor::_notification(int p_what) {
@@ -173,9 +175,9 @@ void CustomPropertyEditor::_menu_option(int p_which) {
propvalues.push_back(p);
}
- String orig_type = res_orig->get_type();
+ String orig_type = res_orig->get_class();
- Object *inst = ObjectTypeDB::instance( orig_type );
+ Object *inst = ClassDB::instance( orig_type );
Ref<Resource> res = Ref<Resource>( inst->cast_to<Resource>() );
@@ -226,15 +228,26 @@ void CustomPropertyEditor::_menu_option(int p_which) {
ERR_FAIL_COND( inheritors_array.empty() );
+
+
String intype=inheritors_array[p_which-TYPE_BASE_ID];
- Object *obj = ObjectTypeDB::instance(intype);
+ if (intype=="ViewportTexture") {
+
+ scene_tree->set_title(TTR("Pick a Viewport"));
+ scene_tree->popup_centered_ratio();
+ picking_viewport=true;
+ return;
+
+ }
+
+ Object *obj = ClassDB::instance(intype);
ERR_BREAK( !obj );
Resource *res=obj->cast_to<Resource>();
ERR_BREAK( !res );
if (owner && hint==PROPERTY_HINT_RESOURCE_TYPE && hint_text=="Script") {
//make visual script the right type
- res->call("set_instance_base_type",owner->get_type());
+ res->call("set_instance_base_type",owner->get_class());
}
v=Ref<Resource>(res).get_ref_ptr();
@@ -295,6 +308,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
action_buttons[i]->hide();
}
+ checks20gc->hide();
for(int i=0;i<20;i++)
checks20[i]->hide();
@@ -305,12 +319,16 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
case Variant::BOOL: {
+ checks20gc->show();
+
CheckBox *c=checks20[0];
c->set_text("True");
- c->set_pos(Vector2(4,4));
+ checks20gc->set_pos(Vector2(4,4));
c->set_pressed(v);
c->show();
- set_size(checks20[0]->get_pos()+checks20[0]->get_size()+Vector2(4,4)*EDSCALE);
+
+ checks20gc->set_size(checks20gc->get_minimum_size());
+ set_size(checks20gc->get_pos()+checks20gc->get_size()+Vector2(4,4)*EDSCALE);
} break;
case Variant::INT:
@@ -341,14 +359,14 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
slider->set_min(min);
slider->set_max(max);
slider->set_step(step);
- slider->set_val(v);
+ slider->set_value(v);
slider->show();
set_size(Size2(110,30)*EDSCALE);
} else {
spinbox->set_min(min);
spinbox->set_max(max);
spinbox->set_step(step);
- spinbox->set_val(v);
+ spinbox->set_value(v);
spinbox->show();
set_size(Size2(70,35)*EDSCALE);
}
@@ -367,10 +385,19 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
return false;
- } else if (hint==PROPERTY_HINT_ALL_FLAGS) {
+ } else if (hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || hint==PROPERTY_HINT_LAYERS_2D_RENDER || hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || hint==PROPERTY_HINT_LAYERS_3D_RENDER) {
+
- checks20[0]->set_text("");
+ String title;
+ String basename;
+ switch (hint) {
+ case PROPERTY_HINT_LAYERS_2D_RENDER: basename="layer_names/2d_render"; title="2D Render Layers"; break;
+ case PROPERTY_HINT_LAYERS_2D_PHYSICS: basename="layer_names/2d_physics"; title="2D Physics Layers"; break;
+ case PROPERTY_HINT_LAYERS_3D_RENDER: basename="layer_names/3d_render"; title="3D Render Layers"; break;
+ case PROPERTY_HINT_LAYERS_3D_PHYSICS: basename="layer_names/3d_physics";title="3D Physics Layers"; break;
+ }
+ checks20gc->show();
uint32_t flgs = v;
for(int i=0;i<2;i++) {
@@ -378,12 +405,9 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
ofs.y+=22*i;
for(int j=0;j<10;j++) {
- CheckBox *c=checks20[i*10+j];
- Point2 o=ofs;
- o.x+=j*22;
- if (j>=5)
- o.x+=4;
- c->set_pos(o);
+ int idx = i*10+j;
+ CheckBox *c=checks20[idx];
+ c->set_text(GlobalConfig::get_singleton()->get(basename+"/layer_"+itos(idx+1)));
c->set_pressed( flgs & (1<<(i*10+j)) );
c->show();
}
@@ -391,7 +415,16 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
}
- set_size(checks20[19]->get_pos()+Size2(20,25)*EDSCALE);
+ show();
+
+ value_label[0]->set_text(title);
+ value_label[0]->show();
+ value_label[0]->set_pos(Vector2(4,4)*EDSCALE);
+
+ checks20gc->set_pos(Vector2(4,4)*EDSCALE+Vector2(0,value_label[0]->get_size().height+4*EDSCALE));
+ checks20gc->set_size(checks20gc->get_minimum_size());
+
+ set_size(Vector2(4,4)*EDSCALE+checks20gc->get_pos()+checks20gc->get_size());
} else if (hint==PROPERTY_HINT_EXP_EASING) {
@@ -689,7 +722,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
value_editor[3]->set_text( String::num( q.w ) );
} break;
- case Variant::_AABB: {
+ case Variant::RECT3: {
List<String> names;
names.push_back("px");
@@ -700,7 +733,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
names.push_back("sz");
config_value_editors(6,3,16,names);
- AABB aabb=v;
+ Rect3 aabb=v;
value_editor[0]->set_text( String::num( aabb.pos.x ) );
value_editor[1]->set_text( String::num( aabb.pos.y ) );
value_editor[2]->set_text( String::num( aabb.pos.z ) );
@@ -709,7 +742,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
value_editor[5]->set_text( String::num( aabb.size.z ) );
} break;
- case Variant::MATRIX32: {
+ case Variant::TRANSFORM2D: {
List<String> names;
names.push_back("xx");
@@ -720,14 +753,14 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
names.push_back("oy");
config_value_editors(6,2,16,names);
- Matrix32 basis=v;
+ Transform2D basis=v;
for(int i=0;i<6;i++) {
value_editor[i]->set_text( String::num( basis.elements[i/2][i%2] ) );
}
} break;
- case Variant::MATRIX3: {
+ case Variant::BASIS: {
List<String> names;
names.push_back("xx");
@@ -741,7 +774,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
names.push_back("zz");
config_value_editors(9,3,16,names);
- Matrix3 basis=v;
+ Basis basis=v;
for(int i=0;i<9;i++) {
value_editor[i]->set_text( String::num( basis.elements[i/3][i%3] ) );
@@ -792,7 +825,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
color_picker->show();
color_picker->set_edit_alpha(hint!=PROPERTY_HINT_COLOR_NO_ALPHA);
- color_picker->set_color(v);
+ color_picker->set_pick_color(v);
set_size( Size2(300*EDSCALE, color_picker->get_combined_minimum_size().height+10*EDSCALE));
color_picker->set_focus_on_line_edit();
/*
@@ -871,7 +904,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
Set<String> valid_inheritors;
valid_inheritors.insert(base);
List<StringName> inheritors;
- ObjectTypeDB::get_inheriters_from(base.strip_edges(),&inheritors);
+ ClassDB::get_inheriters_from_class(base.strip_edges(),&inheritors);
List<StringName>::Element *E=inheritors.front();
while(E) {
valid_inheritors.insert(E->get());
@@ -880,7 +913,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
for(Set<String>::Element *E=valid_inheritors.front();E;E=E->next()) {
String t = E->get();
- if (!ObjectTypeDB::can_instance(t))
+ if (!ClassDB::can_instance(t))
continue;
inheritors_array.push_back(t);
@@ -934,7 +967,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
paste_valid=true;
else
for (int i = 0; i < hint_text.get_slice_count(",");i++)
- if (ObjectTypeDB::is_type(cb->get_type(),hint_text.get_slice(",",i))) {
+ if (ClassDB::is_parent_class(cb->get_class(),hint_text.get_slice(",",i))) {
paste_valid=true;
break;
}
@@ -973,27 +1006,27 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
} break;
- case Variant::RAW_ARRAY: {
+ case Variant::POOL_BYTE_ARRAY: {
} break;
- case Variant::INT_ARRAY: {
+ case Variant::POOL_INT_ARRAY: {
} break;
- case Variant::REAL_ARRAY: {
+ case Variant::POOL_REAL_ARRAY: {
} break;
- case Variant::STRING_ARRAY: {
+ case Variant::POOL_STRING_ARRAY: {
} break;
- case Variant::VECTOR3_ARRAY: {
+ case Variant::POOL_VECTOR3_ARRAY: {
} break;
- case Variant::COLOR_ARRAY: {
+ case Variant::POOL_COLOR_ARRAY: {
} break;
@@ -1012,7 +1045,7 @@ void CustomPropertyEditor::_file_selected(String p_file) {
if (hint==PROPERTY_HINT_FILE || hint==PROPERTY_HINT_DIR) {
- v=Globals::get_singleton()->localize_path(p_file);
+ v=GlobalConfig::get_singleton()->localize_path(p_file);
emit_signal("variant_changed");
hide();
}
@@ -1095,13 +1128,13 @@ void CustomPropertyEditor::_type_create_selected(int p_idx) {
ERR_FAIL_INDEX(p_idx,inheritors_array.size());
//List<String> inheritors;
- //ObjectTypeDB::get_inheriters_from(hint_text,&inheritors);
+ //ClassDB::get_inheriters_from(hint_text,&inheritors);
//inheritors.push_front(hint_text);
//ERR_FAIL_INDEX( p_idx, inheritors.size() );
String intype=inheritors_array[p_idx];
- Object *obj = ObjectTypeDB::instance(intype);
+ Object *obj = ClassDB::instance(intype);
ERR_FAIL_COND( !obj );
@@ -1126,6 +1159,22 @@ void CustomPropertyEditor::_color_changed(const Color& p_color) {
void CustomPropertyEditor::_node_path_selected(NodePath p_path) {
+ if (picking_viewport) {
+
+ Node* to_node=get_node(p_path);
+ if (!to_node->cast_to<Viewport>()) {
+ EditorNode::get_singleton()->show_warning("Selected node is not a Viewport!");
+ return;
+ }
+
+ Ref<ViewportTexture> vt;
+ vt.instance();
+ vt->set_viewport_path_in_scene(get_tree()->get_edited_scene_root()->get_path_to(to_node));
+ vt->setup_local_to_scene();
+ v=vt;
+ emit_signal("variant_changed");
+ return;
+ }
if (hint==PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE && hint_text!=String()) {
@@ -1142,9 +1191,9 @@ void CustomPropertyEditor::_node_path_selected(NodePath p_path) {
Node *node=NULL;
- if (owner->is_type("Node"))
+ if (owner->is_class("Node"))
node = owner->cast_to<Node>();
- else if (owner->is_type("ArrayPropertyEdit"))
+ else if (owner->is_class("ArrayPropertyEdit"))
node = owner->cast_to<ArrayPropertyEdit>()->get_node();
if (!node) {
@@ -1179,7 +1228,7 @@ void CustomPropertyEditor::_action_pressed(int p_which) {
} break;
case Variant::INT: {
- if (hint==PROPERTY_HINT_ALL_FLAGS) {
+ if (hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || hint==PROPERTY_HINT_LAYERS_2D_RENDER || hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || hint==PROPERTY_HINT_LAYERS_3D_RENDER) {
uint32_t f = v;
if (checks20[p_which]->is_pressed())
@@ -1262,7 +1311,8 @@ void CustomPropertyEditor::_action_pressed(int p_which) {
if (p_which==0) {
-
+ picking_viewport=false;
+ scene_tree->set_title(TTR("Pick a Node"));
scene_tree->popup_centered_ratio();
} else if (p_which==1) {
@@ -1285,7 +1335,7 @@ void CustomPropertyEditor::_action_pressed(int p_which) {
if (hint==PROPERTY_HINT_RESOURCE_TYPE) {
- Object *obj = ObjectTypeDB::instance(intype);
+ Object *obj = ClassDB::instance(intype);
ERR_BREAK( !obj );
Resource *res=obj->cast_to<Resource>();
ERR_BREAK( !res );
@@ -1353,7 +1403,7 @@ void CustomPropertyEditor::_action_pressed(int p_which) {
propvalues.push_back(p);
}
- Ref<Resource> res = Ref<Resource>( ObjectTypeDB::instance( res_orig->get_type() ));
+ Ref<Resource> res = Ref<Resource>( ClassDB::instance( res_orig->get_class() ));
ERR_FAIL_COND(res.is_null());
@@ -1453,12 +1503,12 @@ void CustomPropertyEditor::_drag_easing(const InputEvent& p_ev) {
bool sg = val < 0;
val = Math::absf(val);
- val = Math::log(val)/Math::log(2);
+ val = Math::log(val)/Math::log((float)2.0);
//logspace
val+=rel*0.05;
//
- val = Math::pow(2,val);
+ val = Math::pow(2.0f,val);
if (sg)
val=-val;
@@ -1654,7 +1704,7 @@ void CustomPropertyEditor::_modified(String p_string) {
emit_signal("variant_changed");
} break;
- case Variant::_AABB: {
+ case Variant::RECT3: {
Vector3 pos;
Vector3 size;
@@ -1674,13 +1724,13 @@ void CustomPropertyEditor::_modified(String p_string) {
size.y=value_editor[4]->get_text().to_double();
size.z=value_editor[5]->get_text().to_double();
}
- v=AABB(pos,size);
+ v=Rect3(pos,size);
emit_signal("variant_changed");
} break;
- case Variant::MATRIX32: {
+ case Variant::TRANSFORM2D: {
- Matrix32 m;
+ Transform2D m;
for(int i=0;i<6;i++) {
if (evaluator) {
m.elements[i/2][i%2]=evaluator->eval(value_editor[i]->get_text());
@@ -1693,9 +1743,9 @@ void CustomPropertyEditor::_modified(String p_string) {
emit_signal("variant_changed");
} break;
- case Variant::MATRIX3: {
+ case Variant::BASIS: {
- Matrix3 m;
+ Basis m;
for(int i=0;i<9;i++) {
if (evaluator) {
@@ -1711,7 +1761,7 @@ void CustomPropertyEditor::_modified(String p_string) {
} break;
case Variant::TRANSFORM: {
- Matrix3 basis;
+ Basis basis;
for(int i=0;i<9;i++) {
if (evaluator) {
@@ -1771,27 +1821,27 @@ void CustomPropertyEditor::_modified(String p_string) {
} break;
- case Variant::RAW_ARRAY: {
+ case Variant::POOL_BYTE_ARRAY: {
} break;
- case Variant::INT_ARRAY: {
+ case Variant::POOL_INT_ARRAY: {
} break;
- case Variant::REAL_ARRAY: {
+ case Variant::POOL_REAL_ARRAY: {
} break;
- case Variant::STRING_ARRAY: {
+ case Variant::POOL_STRING_ARRAY: {
} break;
- case Variant::VECTOR3_ARRAY: {
+ case Variant::POOL_VECTOR3_ARRAY: {
} break;
- case Variant::COLOR_ARRAY: {
+ case Variant::POOL_COLOR_ARRAY: {
} break;
@@ -1816,9 +1866,9 @@ void CustomPropertyEditor::_focus_enter() {
case Variant::VECTOR3:
case Variant::PLANE:
case Variant::QUAT:
- case Variant::_AABB:
- case Variant::MATRIX32:
- case Variant::MATRIX3:
+ case Variant::RECT3:
+ case Variant::TRANSFORM2D:
+ case Variant::BASIS:
case Variant::TRANSFORM: {
for (int i=0;i<MAX_VALUE_EDITORS;++i) {
if (value_editor[i]->has_focus()) {
@@ -1841,9 +1891,9 @@ void CustomPropertyEditor::_focus_exit() {
case Variant::VECTOR3:
case Variant::PLANE:
case Variant::QUAT:
- case Variant::_AABB:
- case Variant::MATRIX32:
- case Variant::MATRIX3:
+ case Variant::RECT3:
+ case Variant::TRANSFORM2D:
+ case Variant::BASIS:
case Variant::TRANSFORM: {
for (int i=0;i<MAX_VALUE_EDITORS;++i) {
value_editor[i]->select(0, 0);
@@ -1914,22 +1964,22 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns,int
void CustomPropertyEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_focus_enter", &CustomPropertyEditor::_focus_enter);
- ObjectTypeDB::bind_method("_focus_exit", &CustomPropertyEditor::_focus_exit);
- ObjectTypeDB::bind_method("_modified",&CustomPropertyEditor::_modified);
- ObjectTypeDB::bind_method("_range_modified", &CustomPropertyEditor::_range_modified);
- ObjectTypeDB::bind_method("_scroll_modified",&CustomPropertyEditor::_scroll_modified);
- ObjectTypeDB::bind_method("_action_pressed",&CustomPropertyEditor::_action_pressed);
- ObjectTypeDB::bind_method("_file_selected",&CustomPropertyEditor::_file_selected);
- ObjectTypeDB::bind_method("_type_create_selected",&CustomPropertyEditor::_type_create_selected);
- ObjectTypeDB::bind_method("_node_path_selected",&CustomPropertyEditor::_node_path_selected);
- ObjectTypeDB::bind_method("_color_changed",&CustomPropertyEditor::_color_changed);
- ObjectTypeDB::bind_method("_draw_easing",&CustomPropertyEditor::_draw_easing);
- ObjectTypeDB::bind_method("_drag_easing",&CustomPropertyEditor::_drag_easing);
- ObjectTypeDB::bind_method( "_text_edit_changed",&CustomPropertyEditor::_text_edit_changed);
- ObjectTypeDB::bind_method( "_menu_option",&CustomPropertyEditor::_menu_option);
- ObjectTypeDB::bind_method( "_create_dialog_callback",&CustomPropertyEditor::_create_dialog_callback);
- ObjectTypeDB::bind_method( "_create_selected_property",&CustomPropertyEditor::_create_selected_property);
+ ClassDB::bind_method("_focus_enter", &CustomPropertyEditor::_focus_enter);
+ ClassDB::bind_method("_focus_exit", &CustomPropertyEditor::_focus_exit);
+ ClassDB::bind_method("_modified",&CustomPropertyEditor::_modified);
+ ClassDB::bind_method("_range_modified", &CustomPropertyEditor::_range_modified);
+ ClassDB::bind_method("_scroll_modified",&CustomPropertyEditor::_scroll_modified);
+ ClassDB::bind_method("_action_pressed",&CustomPropertyEditor::_action_pressed);
+ ClassDB::bind_method("_file_selected",&CustomPropertyEditor::_file_selected);
+ ClassDB::bind_method("_type_create_selected",&CustomPropertyEditor::_type_create_selected);
+ ClassDB::bind_method("_node_path_selected",&CustomPropertyEditor::_node_path_selected);
+ ClassDB::bind_method("_color_changed",&CustomPropertyEditor::_color_changed);
+ ClassDB::bind_method("_draw_easing",&CustomPropertyEditor::_draw_easing);
+ ClassDB::bind_method("_drag_easing",&CustomPropertyEditor::_drag_easing);
+ ClassDB::bind_method( "_text_edit_changed",&CustomPropertyEditor::_text_edit_changed);
+ ClassDB::bind_method( "_menu_option",&CustomPropertyEditor::_menu_option);
+ ClassDB::bind_method( "_create_dialog_callback",&CustomPropertyEditor::_create_dialog_callback);
+ ClassDB::bind_method( "_create_selected_property",&CustomPropertyEditor::_create_selected_property);
@@ -1951,8 +2001,8 @@ CustomPropertyEditor::CustomPropertyEditor() {
value_editor[i]->hide();
value_label[i]->hide();
value_editor[i]->connect("text_entered", this,"_modified");
- value_editor[i]->connect("focus_enter", this, "_focus_enter");
- value_editor[i]->connect("focus_exit", this, "_focus_exit");
+ value_editor[i]->connect("focus_entered", this, "_focus_enter");
+ value_editor[i]->connect("focus_exited", this, "_focus_exit");
}
for(int i=0;i<4;i++) {
@@ -1967,11 +2017,21 @@ CustomPropertyEditor::CustomPropertyEditor() {
}
+ checks20gc = memnew( GridContainer );
+ add_child(checks20gc);
+ checks20gc->set_columns(11);
+
for(int i=0;i<20;i++) {
+ if (i==5 || i==15) {
+ Control *space = memnew( Control );
+ space->set_custom_minimum_size(Size2(20,0)*EDSCALE);
+ checks20gc->add_child(space);
+ }
+
checks20[i]=memnew( CheckBox );
checks20[i]->set_toggle_mode(true);
- checks20[i]->set_focus_mode(FOCUS_NONE);
- add_child(checks20[i]);
+ checks20[i]->set_focus_mode(FOCUS_NONE);
+ checks20gc->add_child(checks20[i]);
checks20[i]->hide();
checks20[i]->connect("pressed",this,"_action_pressed",make_binds(i));
checks20[i]->set_tooltip(vformat(TTR("Bit %d, val %d."), i, 1<<i));
@@ -2017,7 +2077,7 @@ CustomPropertyEditor::CustomPropertyEditor() {
type_button = memnew( MenuButton );
add_child(type_button);
type_button->hide();
- type_button->get_popup()->connect("item_pressed", this,"_type_create_selected");
+ type_button->get_popup()->connect("id_pressed", this,"_type_create_selected");
scene_tree = memnew( SceneTreeDialog );
@@ -2025,7 +2085,7 @@ CustomPropertyEditor::CustomPropertyEditor() {
scene_tree->connect("selected", this,"_node_path_selected");
scene_tree->get_scene_tree()->set_show_enabled_subscene(true);
- texture_preview = memnew( TextureFrame );
+ texture_preview = memnew( TextureRect );
add_child( texture_preview);
texture_preview->hide();
@@ -2033,13 +2093,13 @@ CustomPropertyEditor::CustomPropertyEditor() {
add_child(easing_draw);
easing_draw->hide();
easing_draw->connect("draw",this,"_draw_easing");
- easing_draw->connect("input_event",this,"_drag_easing");
+ easing_draw->connect("gui_input",this,"_drag_easing");
//easing_draw->emit_signal(SceneStringNames::get_singleton()->input_event,InputEvent());
easing_draw->set_default_cursor_shape(Control::CURSOR_MOVE);
menu = memnew(PopupMenu);
add_child(menu);
- menu->connect("item_pressed",this,"_menu_option");
+ menu->connect("id_pressed",this,"_menu_option");
evaluator = NULL;
@@ -2102,7 +2162,7 @@ bool PropertyEditor::_get_instanced_node_original_property(const StringName& p_p
bool found=false;
-// print_line("for prop - "+String(p_prop));
+ //print_line("for prop - "+String(p_prop));
while(node) {
@@ -2115,13 +2175,13 @@ bool PropertyEditor::_get_instanced_node_original_property(const StringName& p_p
} else {
ss=node->get_scene_instance_state();
}
- // print_line("at - "+String(edited_scene->get_path_to(node)));
+ //print_line("at - "+String(edited_scene->get_path_to(node)));
if (ss.is_valid()) {
NodePath np = node->get_path_to(orig);
int node_idx = ss->find_node_by_path(np);
- // print_line("\t valid, nodeidx "+itos(node_idx));
+ //print_line("\t valid, nodeidx "+itos(node_idx));
if (node_idx>=0) {
bool lfound=false;
Variant lvar;
@@ -2130,7 +2190,7 @@ bool PropertyEditor::_get_instanced_node_original_property(const StringName& p_p
found=true;
value=lvar;
- // print_line("\t found value "+String(value));
+ //print_line("\t found value "+String(value));
}
}
}
@@ -2156,7 +2216,7 @@ bool PropertyEditor::_is_property_different(const Variant& p_current, const Vari
Node* edited_scene =EditorNode::get_singleton()->get_edited_scene();
bool found_state=false;
- // print_line("for prop - "+String(p_prop));
+ //print_line("for prop - "+String(p_prop));
while(node) {
@@ -2274,7 +2334,7 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p
case Variant::REAL:
case Variant::INT: {
- if (p_hint==PROPERTY_HINT_ALL_FLAGS) {
+ if (p_hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || p_hint==PROPERTY_HINT_LAYERS_2D_RENDER || p_hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || p_hint==PROPERTY_HINT_LAYERS_3D_RENDER) {
tree->update();
break;
}
@@ -2360,10 +2420,10 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p
case Variant::VECTOR3:
case Variant::QUAT:
case Variant::VECTOR2:
- case Variant::_AABB:
+ case Variant::RECT3:
case Variant::RECT2:
- case Variant::MATRIX32:
- case Variant::MATRIX3:
+ case Variant::TRANSFORM2D:
+ case Variant::BASIS:
case Variant::TRANSFORM: {
p_item->set_text(1,obj->get(p_name));
@@ -2404,8 +2464,8 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p
} else {
RES res = obj->get( p_name ).operator RefPtr();
- if (res->is_type("Texture")) {
- int tw = EditorSettings::get_singleton()->get("property_editor/texture_preview_width");
+ if (res->is_class("Texture")) {
+ int tw = EditorSettings::get_singleton()->get("docks/property_editor/texture_preview_width");
p_item->set_icon_max_width(1,tw);
p_item->set_icon(1,res);
p_item->set_text(1,"");
@@ -2416,20 +2476,20 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p
} else if (res->get_path()!="" && !res->get_path().begins_with("local://")) {
p_item->set_text(1, res->get_path().get_file());
} else {
- p_item->set_text(1,"<"+res->get_type()+">");
+ p_item->set_text(1,"<"+res->get_class()+">");
};
if (res.is_valid() && res->get_path().is_resource_file()) {
p_item->set_tooltip(1,res->get_path());
} else if (res.is_valid()) {
- p_item->set_tooltip(1,res->get_name()+" ("+res->get_type()+")");
+ p_item->set_tooltip(1,res->get_name()+" ("+res->get_class()+")");
}
- if (has_icon(res->get_type(),"EditorIcons")) {
+ if (has_icon(res->get_class(),"EditorIcons")) {
- p_item->set_icon(0,get_icon(res->get_type(),"EditorIcons"));
+ p_item->set_icon(0,get_icon(res->get_class(),"EditorIcons"));
} else {
Dictionary d = p_item->get_metadata(0);
@@ -2448,7 +2508,7 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p
}
}
- if (!res->is_type("Texture")) {
+ if (!res->is_class("Texture")) {
//texture already previews via itself
EditorResourcePreview::get_singleton()->queue_edited_resource_preview(res,this,"_resource_preview_done",p_item->get_instance_ID());
}
@@ -2509,6 +2569,12 @@ void PropertyEditor::_check_reload_status(const String&p_name, TreeItem* item) {
}
+ if (obj->call("property_can_revert",p_name).operator bool()) {
+
+ has_reload=true;
+ }
+
+
if (!has_reload && !obj->get_script().is_null()) {
Ref<Script> scr = obj->get_script();
Variant orig_value;
@@ -2555,7 +2621,7 @@ bool PropertyEditor::_is_drop_valid(const Dictionary& p_drag_data, const Diction
Ref<Resource> res = drag_data["resource"];
for(int i=0;i<allowed_type.get_slice_count(",");i++) {
String at = allowed_type.get_slice(",",i).strip_edges();
- if (res.is_valid() && ObjectTypeDB::is_type(res->get_type(),at)) {
+ if (res.is_valid() && ClassDB::is_parent_class(res->get_class(),at)) {
return true;
}
}
@@ -2573,7 +2639,7 @@ bool PropertyEditor::_is_drop_valid(const Dictionary& p_drag_data, const Diction
for(int i=0;i<allowed_type.get_slice_count(",");i++) {
String at = allowed_type.get_slice(",",i).strip_edges();
- if (ObjectTypeDB::is_type(ftype,at)) {
+ if (ClassDB::is_parent_class(ftype,at)) {
return true;
}
}
@@ -2737,13 +2803,13 @@ void PropertyEditor::_notification(int p_what) {
if (p_what==NOTIFICATION_DRAG_BEGIN) {
- if (is_visible() && tree->get_root()) {
+ if (is_visible_in_tree() && tree->get_root()) {
_mark_drop_fields(tree->get_root());
}
}
if (p_what==NOTIFICATION_DRAG_END) {
- if (is_visible() && tree->get_root()) {
+ if (is_visible_in_tree() && tree->get_root()) {
_clear_drop_fields(tree->get_root());
}
@@ -2802,7 +2868,7 @@ TreeItem *PropertyEditor::get_parent_node(String p_path,HashMap<String,TreeItem*
item = item_paths.get(p_path);
} else {
-// printf("path %s parent path %s - item name %s\n",p_path.ascii().get_data(),p_path.left( p_path.find_last("/") ).ascii().get_data(),p_path.right( p_path.find_last("/") ).ascii().get_data() );
+ //printf("path %s parent path %s - item name %s\n",p_path.ascii().get_data(),p_path.left( p_path.find_last("/") ).ascii().get_data(),p_path.right( p_path.find_last("/") ).ascii().get_data() );
TreeItem *parent = get_parent_node( p_path.left( p_path.find_last("/") ),item_paths,root );
item = tree->create_item( parent );
@@ -2923,7 +2989,7 @@ void PropertyEditor::refresh() {
if (refresh_countdown>0)
return;
- refresh_countdown=EditorSettings::get_singleton()->get("property_editor/auto_refresh_interval");
+ refresh_countdown=EditorSettings::get_singleton()->get("docks/property_editor/auto_refresh_interval");
}
@@ -2998,6 +3064,8 @@ void PropertyEditor::update_tree() {
TreeItem * current_category=NULL;
String filter = search_box ? search_box->get_text() : "";
+ String group;
+ String group_base;
for (List<PropertyInfo>::Element *I=plist.front() ; I ; I=I->next()) {
@@ -3005,7 +3073,17 @@ void PropertyEditor::update_tree() {
//make sure the property can be edited
- if (p.usage&PROPERTY_USAGE_CATEGORY) {
+ if (p.usage&PROPERTY_USAGE_GROUP) {
+
+ group=p.name;
+ group_base=p.hint_string;
+
+ continue;
+
+ } else if (p.usage&PROPERTY_USAGE_CATEGORY) {
+
+ group="";
+ group_base="";
if (!show_categories)
continue;
@@ -3062,12 +3140,27 @@ void PropertyEditor::update_tree() {
} else if ( ! (p.usage&PROPERTY_USAGE_EDITOR ) )
continue;
- String name = (p.name.find("/")!=-1)?p.name.right( p.name.find_last("/")+1 ):p.name;
+ String basename=p.name;
+ if (group!="") {
+ if (group_base!="") {
+ if (basename.begins_with(group_base)) {
+ basename=basename.replace_first(group_base,"");
+ } else {
+ group=""; //no longer using group base, clear
+ }
+ }
+ }
+
+ if (group!="") {
+ basename=group+"/"+basename;
+ }
+
+ String name = (basename.find("/")!=-1)?basename.right( basename.find_last("/")+1 ):basename;
if (capitalize_paths)
name = name.camelcase_to_underscore().capitalize();
- String path=p.name.left( p.name.find_last("/") ) ;
+ String path=basename.left( basename.find_last("/") ) ;
if (use_filter && filter!="") {
@@ -3080,10 +3173,12 @@ void PropertyEditor::update_tree() {
continue;
}
- //printf("property %s\n",p.name.ascii().get_data());
+ //printf("property %s\n",basename.ascii().get_data());
TreeItem * parent = get_parent_node(path,item_path,current_category?current_category:root );
- //if (parent->get_parent()==root)
- // parent=root;
+ /*
+ if (parent->get_parent()==root)
+ parent=root;
+ */
int level = 0;
if (parent!=root) {
level++;
@@ -3122,7 +3217,7 @@ void PropertyEditor::update_tree() {
if (use_doc_hints) {
StringName setter;
StringName type;
- if (ObjectTypeDB::get_setter_and_type_for_property(obj->get_type_name(),p.name,type,setter)) {
+ if (ClassDB::get_setter_and_type_for_property(obj->get_class_name(),p.name,type,setter)) {
String descr;
bool found=false;
@@ -3204,7 +3299,7 @@ void PropertyEditor::update_tree() {
}
- if (p.hint==PROPERTY_HINT_ALL_FLAGS) {
+ if (p.hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || p.hint==PROPERTY_HINT_LAYERS_2D_RENDER || p.hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || p.hint==PROPERTY_HINT_LAYERS_3D_RENDER) {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable(1,!read_only);
@@ -3258,7 +3353,7 @@ void PropertyEditor::update_tree() {
max=p.hint_string.get_slice(",",1).to_double();
}
- if (p.type!=PROPERTY_HINT_SPRITE_FRAME && c>=3) {
+ if (p.hint!=PROPERTY_HINT_SPRITE_FRAME && c>=3) {
step= p.hint_string.get_slice(",",2).to_double();
}
@@ -3267,7 +3362,7 @@ void PropertyEditor::update_tree() {
item->set_range_config(1,min,max,step,p.hint==PROPERTY_HINT_EXP_RANGE);
} else if (p.hint==PROPERTY_HINT_ENUM) {
-// int c = p.hint_string.get_slice_count(",");
+ //int c = p.hint_string.get_slice_count(",");
item->set_text(1,p.hint_string);
if (show_type_icons)
item->set_icon( 0,get_icon("Enum","EditorIcons") );
@@ -3276,7 +3371,7 @@ void PropertyEditor::update_tree() {
break;
} else if (p.hint==PROPERTY_HINT_OBJECT_ID) {
-// int c = p.hint_string.get_slice_count(",");
+ //int c = p.hint_string.get_slice_count(",");
item->set_cell_mode(1,TreeItem::CELL_MODE_CUSTOM);
String type=p.hint_string;
@@ -3403,17 +3498,37 @@ void PropertyEditor::update_tree() {
Variant v = obj->get(p.name);
+ String type_name = "Array";
+ String type_name_suffix = "";
+
+ String hint = p.hint_string;
+ while(hint.begins_with(itos(Variant::ARRAY)+":")) {
+ type_name += "<Array";
+ type_name_suffix += ">";
+ hint = hint.substr(2, hint.size()-2);
+ }
+ if(hint.find(":") >= 0) {
+ hint = hint.substr(0,hint.find(":"));
+ if(hint.find("/") >= 0) {
+ hint = hint.substr(0,hint.find("/"));
+ }
+ type_name += "<" + Variant::get_type_name(Variant::Type(hint.to_int()));
+ type_name_suffix += ">";
+ }
+ type_name += type_name_suffix;
+
if (v.is_array())
- item->set_text(1,"Array["+itos(v.call("size"))+"]");
+ item->set_text(1,type_name+"["+itos(v.call("size"))+"]");
else
- item->set_text(1,"Array[]");
+ item->set_text(1,type_name+"[]");
+
if (show_type_icons)
item->set_icon( 0, get_icon("ArrayData","EditorIcons") );
} break;
- case Variant::INT_ARRAY: {
+ case Variant::POOL_INT_ARRAY: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->add_button(1,get_icon("EditResource","EditorIcons"));
@@ -3428,7 +3543,7 @@ void PropertyEditor::update_tree() {
} break;
- case Variant::REAL_ARRAY: {
+ case Variant::POOL_REAL_ARRAY: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->add_button(1,get_icon("EditResource","EditorIcons"));
@@ -3443,7 +3558,7 @@ void PropertyEditor::update_tree() {
} break;
- case Variant::STRING_ARRAY: {
+ case Variant::POOL_STRING_ARRAY: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->add_button(1,get_icon("EditResource","EditorIcons"));
@@ -3458,7 +3573,7 @@ void PropertyEditor::update_tree() {
} break;
- case Variant::RAW_ARRAY: {
+ case Variant::POOL_BYTE_ARRAY: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->add_button(1,get_icon("EditResource","EditorIcons"));
@@ -3473,7 +3588,7 @@ void PropertyEditor::update_tree() {
} break;
- case Variant::VECTOR2_ARRAY: {
+ case Variant::POOL_VECTOR2_ARRAY: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->add_button(1,get_icon("EditResource","EditorIcons"));
@@ -3488,7 +3603,7 @@ void PropertyEditor::update_tree() {
} break;
- case Variant::VECTOR3_ARRAY: {
+ case Variant::POOL_VECTOR3_ARRAY: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->add_button(1,get_icon("EditResource","EditorIcons"));
@@ -3503,7 +3618,7 @@ void PropertyEditor::update_tree() {
} break;
- case Variant::COLOR_ARRAY: {
+ case Variant::POOL_COLOR_ARRAY: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->add_button(1,get_icon("EditResource","EditorIcons"));
@@ -3545,8 +3660,8 @@ void PropertyEditor::update_tree() {
item->set_icon( 0,get_icon("Vector","EditorIcons") );
} break;
- case Variant::MATRIX32:
- case Variant::MATRIX3: {
+ case Variant::TRANSFORM2D:
+ case Variant::BASIS: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
@@ -3570,11 +3685,11 @@ void PropertyEditor::update_tree() {
item->set_icon( 0,get_icon("Plane","EditorIcons") );
} break;
- case Variant::_AABB: {
+ case Variant::RECT3: {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, true );
- item->set_text(1,"AABB");
+ item->set_text(1,"Rect3");
if (show_type_icons)
item->set_icon( 0,get_icon("Rect3","EditorIcons") );
} break;
@@ -3592,7 +3707,7 @@ void PropertyEditor::update_tree() {
item->set_cell_mode( 1, TreeItem::CELL_MODE_CUSTOM );
item->set_editable( 1, !read_only );
-// item->set_text(1,obj->get(p.name));
+ //item->set_text(1,obj->get(p.name));
item->set_custom_bg_color(1,obj->get(p.name));
if (show_type_icons)
item->set_icon( 0,get_icon("Color","EditorIcons") );
@@ -3616,7 +3731,7 @@ void PropertyEditor::update_tree() {
item->set_cell_mode(1, TreeItem::CELL_MODE_STRING);
item->set_editable( 1, !read_only );
item->set_text(1,obj->get(p.name));
- item->add_button(1, get_icon("Collapse", "EditorIcons"));
+ item->add_button(1, get_icon("CopyNodePath", "EditorIcons"));
} break;
case Variant::OBJECT: {
@@ -3635,8 +3750,8 @@ void PropertyEditor::update_tree() {
} else {
RES res = obj->get( p.name ).operator RefPtr();
- if (res->is_type("Texture")) {
- int tw = EditorSettings::get_singleton()->get("property_editor/texture_preview_width");
+ if (res->is_class("Texture")) {
+ int tw = EditorSettings::get_singleton()->get("docks/property_editor/texture_preview_width");
item->set_icon_max_width(1,tw);
item->set_icon(1,res);
item->set_text(1,"");
@@ -3648,19 +3763,19 @@ void PropertyEditor::update_tree() {
item->set_text(1, res->get_path().get_file());
} else {
- item->set_text(1,"<"+res->get_type()+">");
+ item->set_text(1,"<"+res->get_class()+">");
}
- if (has_icon(res->get_type(),"EditorIcons")) {
- type=res->get_type();
+ if (has_icon(res->get_class(),"EditorIcons")) {
+ type=res->get_class();
}
if (res.is_valid() && res->get_path().is_resource_file()) {
item->set_tooltip(1,res->get_path());
} else if (res.is_valid()) {
- item->set_tooltip(1,res->get_name()+" ("+res->get_type()+")");
+ item->set_tooltip(1,res->get_name()+" ("+res->get_class()+")");
}
- if (!res->is_type("Texture")) {
+ if (!res->is_class("Texture")) {
//texture already previews via itself
EditorResourcePreview::get_singleton()->queue_edited_resource_preview(res,this,"_resource_preview_done",item->get_instance_ID());
}
@@ -3678,7 +3793,7 @@ void PropertyEditor::update_tree() {
item->set_icon( 0, get_icon("Object","EditorIcons") );
}
-// item->double_click_signal.connect( Method1<int>( Method2<int,String>( this, &Editoritem_obj_edited ), p.name ) );
+ //item->double_click_signal.connect( Method1<int>( Method2<int,String>( this, &Editoritem_obj_edited ), p.name ) );
} break;
default: {};
@@ -3715,6 +3830,12 @@ void PropertyEditor::update_tree() {
}
+ if (obj->call("property_can_revert",p.name).operator bool()) {
+
+ item->add_button(1,get_icon("ReloadSmall","EditorIcons"),3);
+ has_reload=true;
+ }
+
if (!has_reload && !obj->get_script().is_null()) {
Ref<Script> scr = obj->get_script();
Variant orig_value;
@@ -3765,22 +3886,34 @@ void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) {
} else {
-
undo_redo->create_action(TTR("Set")+" "+p_name,UndoRedo::MERGE_ENDS);
undo_redo->add_do_property(obj,p_name,p_value);
undo_redo->add_undo_property(obj,p_name,obj->get(p_name));
+
+
undo_redo->add_do_method(this,"_changed_callback",obj,p_name);
undo_redo->add_undo_method(this,"_changed_callback",obj,p_name);
- undo_redo->add_undo_method(this,"_changed_callback",obj,p_name);
+
Resource *r = obj->cast_to<Resource>();
if (r) {
if (!r->is_edited() && String(p_name)!="resource/edited") {
undo_redo->add_do_method(r,"set_edited",true);
undo_redo->add_undo_method(r,"set_edited",false);
}
+
+ if (String(p_name)=="resource_local_to_scene") {
+ bool prev = obj->get(p_name);
+ bool next = p_value;
+ if (next) {
+ undo_redo->add_do_method(this,"setup_local_to_scene");
+ }
+ if (prev) {
+ undo_redo->add_undo_method(this,"setup_local_to_scene");
+ }
+ }
}
- _prop_edited_name[0]=p_name;
- undo_redo->add_do_method(this,"emit_signal",_prop_edited,_prop_edited_name);
+ undo_redo->add_do_method(this,"emit_signal",_prop_edited,p_name);
+ undo_redo->add_undo_method(this,"emit_signal",_prop_edited,p_name);
undo_redo->commit_action();
}
}
@@ -3835,7 +3968,7 @@ void PropertyEditor::_item_edited() {
case Variant::INT:
case Variant::REAL: {
- if (hint==PROPERTY_HINT_ALL_FLAGS)
+ if (hint==PROPERTY_HINT_LAYERS_2D_PHYSICS || hint==PROPERTY_HINT_LAYERS_2D_RENDER || hint==PROPERTY_HINT_LAYERS_3D_PHYSICS || hint==PROPERTY_HINT_LAYERS_3D_RENDER)
break;
if (hint==PROPERTY_HINT_EXP_EASING)
break;
@@ -3876,10 +4009,10 @@ void PropertyEditor::_item_edited() {
case Variant::QUAT: {
} break;
- case Variant::_AABB: {
+ case Variant::RECT3: {
} break;
- case Variant::MATRIX3: {
+ case Variant::BASIS: {
} break;
case Variant::TRANSFORM: {
@@ -3905,22 +4038,22 @@ void PropertyEditor::_item_edited() {
} break;
// arrays
- case Variant::RAW_ARRAY: {
+ case Variant::POOL_BYTE_ARRAY: {
} break;
- case Variant::INT_ARRAY: {
+ case Variant::POOL_INT_ARRAY: {
} break;
- case Variant::REAL_ARRAY: {
+ case Variant::POOL_REAL_ARRAY: {
} break;
- case Variant::STRING_ARRAY: {
+ case Variant::POOL_STRING_ARRAY: {
} break;
- case Variant::VECTOR3_ARRAY: {
+ case Variant::POOL_VECTOR3_ARRAY: {
} break;
- case Variant::COLOR_ARRAY: {
+ case Variant::POOL_COLOR_ARRAY: {
} break;
@@ -4043,6 +4176,11 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) {
return;
}
+ if (obj->call("property_can_revert",prop).operator bool()) {
+ Variant rev = obj->call("property_get_revert",prop);
+ _edit_set(prop,rev);
+ }
+
if (!obj->get_script().is_null()) {
Ref<Script> scr = obj->get_script();
Variant orig_value;
@@ -4108,7 +4246,7 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) {
emit_signal("object_id_selected",obj->get(n));
print_line("OBJ ID SELECTED");
- } else if (t==Variant::ARRAY || t==Variant::INT_ARRAY || t==Variant::REAL_ARRAY || t==Variant::STRING_ARRAY || t==Variant::VECTOR2_ARRAY || t==Variant::VECTOR3_ARRAY || t==Variant::COLOR_ARRAY || t==Variant::RAW_ARRAY) {
+ } else if (t==Variant::ARRAY || t==Variant::POOL_INT_ARRAY || t==Variant::POOL_REAL_ARRAY || t==Variant::POOL_STRING_ARRAY || t==Variant::POOL_VECTOR2_ARRAY || t==Variant::POOL_VECTOR3_ARRAY || t==Variant::POOL_COLOR_ARRAY || t==Variant::POOL_BYTE_ARRAY) {
Variant v = obj->get(n);
@@ -4118,7 +4256,7 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) {
}
Ref<ArrayPropertyEdit> ape = memnew( ArrayPropertyEdit );
- ape->edit(obj,n,Variant::Type(t));
+ ape->edit(obj,n,ht,Variant::Type(t));
EditorNode::get_singleton()->push_item(ape.ptr());
}
@@ -4206,7 +4344,7 @@ void PropertyEditor::_resource_preview_done(const String& p_path,const Ref<Textu
ERR_FAIL_COND(!ti);
- int tw = EditorSettings::get_singleton()->get("property_editor/texture_preview_width");
+ int tw = EditorSettings::get_singleton()->get("docks/property_editor/texture_preview_width");
ti->set_icon(1,p_preview); //should be scaled I think?
ti->set_icon_max_width(1,tw);
@@ -4214,24 +4352,24 @@ void PropertyEditor::_resource_preview_done(const String& p_path,const Ref<Textu
}
void PropertyEditor::_bind_methods() {
- ObjectTypeDB::bind_method( "_item_edited",&PropertyEditor::_item_edited);
- ObjectTypeDB::bind_method( "_item_selected",&PropertyEditor::_item_selected);
- ObjectTypeDB::bind_method( "_custom_editor_request",&PropertyEditor::_custom_editor_request);
- ObjectTypeDB::bind_method( "_custom_editor_edited",&PropertyEditor::_custom_editor_edited);
- ObjectTypeDB::bind_method( "_resource_edit_request",&PropertyEditor::_resource_edit_request);
- ObjectTypeDB::bind_method( "_node_removed",&PropertyEditor::_node_removed);
- ObjectTypeDB::bind_method( "_edit_button",&PropertyEditor::_edit_button);
- ObjectTypeDB::bind_method( "_changed_callback",&PropertyEditor::_changed_callbacks);
- ObjectTypeDB::bind_method( "_draw_flags",&PropertyEditor::_draw_flags);
- ObjectTypeDB::bind_method( "_set_range_def",&PropertyEditor::_set_range_def);
- ObjectTypeDB::bind_method( "_filter_changed",&PropertyEditor::_filter_changed);
- ObjectTypeDB::bind_method( "update_tree",&PropertyEditor::update_tree);
- ObjectTypeDB::bind_method( "_resource_preview_done",&PropertyEditor::_resource_preview_done);
- ObjectTypeDB::bind_method( "refresh",&PropertyEditor::refresh);
-
- ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &PropertyEditor::get_drag_data_fw);
- ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &PropertyEditor::can_drop_data_fw);
- ObjectTypeDB::bind_method(_MD("drop_data_fw"), &PropertyEditor::drop_data_fw);
+ ClassDB::bind_method( "_item_edited",&PropertyEditor::_item_edited);
+ ClassDB::bind_method( "_item_selected",&PropertyEditor::_item_selected);
+ ClassDB::bind_method( "_custom_editor_request",&PropertyEditor::_custom_editor_request);
+ ClassDB::bind_method( "_custom_editor_edited",&PropertyEditor::_custom_editor_edited);
+ ClassDB::bind_method( "_resource_edit_request",&PropertyEditor::_resource_edit_request);
+ ClassDB::bind_method( "_node_removed",&PropertyEditor::_node_removed);
+ ClassDB::bind_method( "_edit_button",&PropertyEditor::_edit_button);
+ ClassDB::bind_method( "_changed_callback",&PropertyEditor::_changed_callbacks);
+ ClassDB::bind_method( "_draw_flags",&PropertyEditor::_draw_flags);
+ ClassDB::bind_method( "_set_range_def",&PropertyEditor::_set_range_def);
+ ClassDB::bind_method( "_filter_changed",&PropertyEditor::_filter_changed);
+ ClassDB::bind_method( "update_tree",&PropertyEditor::update_tree);
+ ClassDB::bind_method( "_resource_preview_done",&PropertyEditor::_resource_preview_done);
+ ClassDB::bind_method( "refresh",&PropertyEditor::refresh);
+
+ ClassDB::bind_method(_MD("get_drag_data_fw"), &PropertyEditor::get_drag_data_fw);
+ ClassDB::bind_method(_MD("can_drop_data_fw"), &PropertyEditor::can_drop_data_fw);
+ ClassDB::bind_method(_MD("drop_data_fw"), &PropertyEditor::drop_data_fw);
ADD_SIGNAL( MethodInfo("property_toggled",PropertyInfo( Variant::STRING, "property"),PropertyInfo( Variant::BOOL, "value")));
ADD_SIGNAL( MethodInfo("resource_selected", PropertyInfo( Variant::OBJECT, "res"),PropertyInfo( Variant::STRING, "prop") ) );
@@ -4317,7 +4455,7 @@ void PropertyEditor::set_subsection_selectable(bool p_selectable) {
PropertyEditor::PropertyEditor() {
_prop_edited="property_edited";
- _prop_edited_name.push_back(String());
+
undo_redo=NULL;
obj=NULL;
search_box=NULL;
@@ -4379,7 +4517,7 @@ PropertyEditor::PropertyEditor() {
use_doc_hints=false;
use_filter=false;
subsection_selectable=false;
- show_type_icons=EDITOR_DEF("inspector/show_type_icons",false);
+ show_type_icons=EDITOR_DEF("interface/show_type_icons",false);
}
@@ -4398,10 +4536,11 @@ PropertyEditor::~PropertyEditor()
class SectionedPropertyEditorFilter : public Object {
- OBJ_TYPE( SectionedPropertyEditorFilter, Object );
+ GDCLASS( SectionedPropertyEditorFilter, Object );
Object *edited;
String section;
+ bool allow_sub;
bool _set(const StringName& p_name, const Variant& p_value) {
@@ -4415,6 +4554,7 @@ class SectionedPropertyEditorFilter : public Object {
bool valid;
edited->set(name,p_value,&valid);
+ //_change_notify(p_name.operator String().utf8().get_data());
return valid;
}
@@ -4446,25 +4586,48 @@ class SectionedPropertyEditorFilter : public Object {
PropertyInfo pi=E->get();
int sp = pi.name.find("/");
- if (sp!=-1) {
- String ss = pi.name.substr(0,sp);
- if (ss==section) {
- pi.name=pi.name.substr(sp+1,pi.name.length());
- p_list->push_back(pi);
- }
- } else {
- if (section=="")
- p_list->push_back(pi);
+ if (pi.name=="resource_path" || pi.name=="resource_name" || pi.name.begins_with("script/")) //skip resource stuff
+ continue;
+
+ if (sp==-1) {
+ pi.name="Global/"+pi.name;
+
+ }
+
+ if (pi.name.begins_with(section+"/")) {
+ pi.name=pi.name.replace_first(section+"/","");
+ if (!allow_sub && pi.name.find("/")!=-1)
+ continue;
+ p_list->push_back(pi);
}
}
}
+
+ bool property_can_revert(const String& p_name) {
+
+ return edited->call("property_can_revert",section+"/"+p_name);
+ }
+
+ Variant property_get_revert(const String& p_name) {
+
+ return edited->call("property_get_revert",section+"/"+p_name);
+ }
+
+protected:
+ static void _bind_methods() {
+
+ ClassDB::bind_method("property_can_revert",&SectionedPropertyEditorFilter::property_can_revert);
+ ClassDB::bind_method("property_get_revert",&SectionedPropertyEditorFilter::property_get_revert);
+ }
+
public:
- void set_section(const String& p_section) {
+ void set_section(const String& p_section,bool p_allow_sub) {
section=p_section;
+ allow_sub=p_allow_sub;
_change_notify();
}
@@ -4482,36 +4645,30 @@ public:
void SectionedPropertyEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_section_selected",&SectionedPropertyEditor::_section_selected);
+ ClassDB::bind_method("_section_selected",&SectionedPropertyEditor::_section_selected);
- ObjectTypeDB::bind_method("update_category_list", &SectionedPropertyEditor::update_category_list);
+ ClassDB::bind_method("update_category_list", &SectionedPropertyEditor::update_category_list);
}
-void SectionedPropertyEditor::_section_selected(int p_which) {
+void SectionedPropertyEditor::_section_selected() {
+
+ if (!sections->get_selected())
+ return;
- filter->set_section( sections->get_item_metadata(p_which) );
+ filter->set_section( sections->get_selected()->get_metadata(0), sections->get_selected()->get_children()==NULL);
}
void SectionedPropertyEditor::set_current_section(const String& p_section) {
- int section_idx = sections->find_metadata(p_section);
-
- if (section_idx==sections->get_current())
- return;
-
- if (section_idx!=-1) {
- sections->select(section_idx);
- _section_selected(section_idx);
- } else if (sections->get_item_count()) {
- sections->select(0);
- _section_selected(0);
+ if (section_map.has(p_section)) {
+ section_map[p_section]->select(0);
}
}
String SectionedPropertyEditor::get_current_section() const {
- if (sections->get_current()!=-1)
- return sections->get_item_metadata( sections->get_current() );
+ if (sections->get_selected())
+ return sections->get_selected()->get_metadata(0);
else
return "";
}
@@ -4548,8 +4705,9 @@ void SectionedPropertyEditor::edit(Object* p_object) {
filter->set_edited(p_object);
editor->edit(filter);
- sections->select(0);
- _section_selected(0);
+ if (sections->get_root()->get_children()) {
+ sections->get_root()->get_children()->select(0);
+ }
} else {
update_category_list();
@@ -4569,7 +4727,12 @@ void SectionedPropertyEditor::update_category_list() {
List<PropertyInfo> pinfo;
o->get_property_list(&pinfo);
- Set<String> existing_sections;
+ section_map.clear();
+
+ TreeItem *root = sections->create_item();
+ section_map[""]=root;
+
+
for (List<PropertyInfo>::Element *E=pinfo.front();E;E=E->next()) {
PropertyInfo pi=E->get();
@@ -4579,27 +4742,41 @@ void SectionedPropertyEditor::update_category_list() {
else if ( !(pi.usage&PROPERTY_USAGE_EDITOR) )
continue;
- if (pi.name.find(":")!=-1 || pi.name=="script/script" || pi.name.begins_with("resource/"))
+ if (pi.name.find(":")!=-1 || pi.name=="script/script" || pi.name=="resource_name" || pi.name=="resource_path")
continue;
int sp = pi.name.find("/");
- if (sp!=-1) {
- String sname=pi.name.substr(0,sp);
- if (!existing_sections.has(sname)) {
- existing_sections.insert(sname);
- sections->add_item(sname.capitalize());
- sections->set_item_metadata(sections->get_item_count()-1,sname);
+ if (sp==-1)
+ pi.name="Global/"+pi.name;
+
+ Vector<String> sectionarr = pi.name.split("/");
+ String metasection;
+
+
+ for(int i=0;i<MIN(2,sectionarr.size()-1);i++) {
+
+ TreeItem *parent = section_map[metasection];
+
+ if (i>0) {
+ metasection+="/"+sectionarr[i];
+ } else {
+ metasection=sectionarr[i];
}
- } else {
- if (!existing_sections.has("")) {
- existing_sections.insert("");
- sections->add_item(TTR("Global"));
- sections->set_item_metadata(sections->get_item_count()-1,"");
+
+ if (!section_map.has(metasection)) {
+ TreeItem *ms = sections->create_item(parent);
+ section_map[metasection]=ms;
+ ms->set_text(0,sectionarr[i].capitalize());
+ ms->set_metadata(0,metasection);
+
}
}
+
}
- set_current_section(selected_category);
+ if (section_map.has(selected_category)) {
+ section_map[selected_category]->select(0);
+ }
}
PropertyEditor *SectionedPropertyEditor::get_property_editor() {
@@ -4615,8 +4792,9 @@ SectionedPropertyEditor::SectionedPropertyEditor() {
left_vb->set_custom_minimum_size(Size2(160,0)*EDSCALE);
add_child(left_vb);
- sections = memnew( ItemList );
+ sections = memnew( Tree );
sections->set_v_size_flags(SIZE_EXPAND_FILL);
+ sections->set_hide_root(true);
left_vb->add_margin_child(TTR("Sections:"),sections,true);
@@ -4634,7 +4812,7 @@ SectionedPropertyEditor::SectionedPropertyEditor() {
editor->hide_top_label();
- sections->connect("item_selected",this,"_section_selected");
+ sections->connect("cell_selected",this,"_section_selected");
}
diff --git a/tools/editor/property_editor.h b/tools/editor/property_editor.h
index 3fe332bf87..900d06497f 100644
--- a/tools/editor/property_editor.h
+++ b/tools/editor/property_editor.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,10 +37,11 @@
#include "scene/gui/dialogs.h"
#include "scene/gui/color_picker.h"
#include "scene/gui/menu_button.h"
-#include "scene/gui/texture_frame.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/text_edit.h"
#include "scene/gui/check_button.h"
#include "scene/gui/split_container.h"
+#include "scene/gui/grid_container.h"
#include "scene_tree_editor.h"
/**
@@ -53,7 +54,7 @@ class PropertySelector;
class CustomPropertyEditor : public Popup {
- OBJ_TYPE( CustomPropertyEditor, Popup );
+ GDCLASS( CustomPropertyEditor, Popup );
enum {
MAX_VALUE_EDITORS=12,
@@ -95,10 +96,12 @@ class CustomPropertyEditor : public Popup {
Button *action_buttons[MAX_ACTION_BUTTONS];
MenuButton *type_button;
Vector<String> inheritors_array;
- TextureFrame *texture_preview;
+ TextureRect *texture_preview;
ColorPicker *color_picker;
TextEdit *text_edit;
bool read_only;
+ bool picking_viewport;
+ GridContainer *checks20gc;
CheckBox *checks20[20];
SpinBox *spinbox;
HSlider *slider;
@@ -163,7 +166,7 @@ public:
class PropertyEditor : public Control {
- OBJ_TYPE( PropertyEditor, Control );
+ GDCLASS( PropertyEditor, Control );
Tree *tree;
Label *top_label;
@@ -174,7 +177,7 @@ class PropertyEditor : public Control {
Object* obj;
- Array _prop_edited_name;
+
StringName _prop_edited;
bool capitalize_paths;
@@ -219,6 +222,8 @@ class PropertyEditor : public Control {
void _edit_button(Object *p_item, int p_column, int p_button);
void _node_removed(Node *p_node);
+
+friend class ProjectExportDialog;
void _edit_set(const String& p_name, const Variant& p_value);
void _draw_flags(Object *ti,const Rect2& p_rect);
@@ -287,17 +292,19 @@ class SectionedPropertyEditorFilter;
class SectionedPropertyEditor : public HBoxContainer {
- OBJ_TYPE(SectionedPropertyEditor,HBoxContainer);
+ GDCLASS(SectionedPropertyEditor,HBoxContainer);
ObjectID obj;
- ItemList *sections;
+ Tree *sections;
SectionedPropertyEditorFilter *filter;
+
+ Map<String,TreeItem*> section_map;
PropertyEditor *editor;
static void _bind_methods();
- void _section_selected(int p_which);
+ void _section_selected();
public:
@@ -315,7 +322,7 @@ public:
};
class PropertyValueEvaluator : public ValueEvaluator {
- OBJ_TYPE( PropertyValueEvaluator, ValueEvaluator );
+ GDCLASS( PropertyValueEvaluator, ValueEvaluator );
Object *obj;
ScriptLanguage *script_language;
diff --git a/tools/editor/property_selector.cpp b/tools/editor/property_selector.cpp
index 20b72240d9..3eeec1634d 100644
--- a/tools/editor/property_selector.cpp
+++ b/tools/editor/property_selector.cpp
@@ -1,6 +1,34 @@
+/*************************************************************************/
+/* property_selector.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#include "property_selector.h"
-#include "editor_scale.h"
+#include "editor_scale.h"
#include "os/keyboard.h"
void PropertySelector::_text_changed(const String& p_newtext) {
@@ -18,7 +46,7 @@ void PropertySelector::_sbox_input(const InputEvent& p_ie) {
case KEY_PAGEUP:
case KEY_PAGEDOWN: {
- search_options->call("_input_event", p_ie);
+ search_options->call("_gui_input", p_ie);
search_box->accept_event();
TreeItem *root = search_options->get_root();
@@ -87,8 +115,8 @@ void PropertySelector::_update_search() {
StringName base=base_type;
while(base) {
props.push_back(PropertyInfo(Variant::NIL,base,PROPERTY_HINT_NONE,"",PROPERTY_USAGE_CATEGORY));
- ObjectTypeDB::get_property_list(base,&props,true);
- base=ObjectTypeDB::type_inherits_from(base);
+ ClassDB::get_property_list(base,&props,true);
+ base=ClassDB::get_parent_class(base);
}
}
@@ -194,8 +222,8 @@ void PropertySelector::_update_search() {
StringName base=base_type;
while(base) {
methods.push_back(MethodInfo("*"+String(base)));
- ObjectTypeDB::get_method_list(base,&methods,true);
- base=ObjectTypeDB::type_inherits_from(base);
+ ClassDB::get_method_list(base,&methods,true);
+ base=ClassDB::get_parent_class(base);
}
}
@@ -321,8 +349,8 @@ void PropertySelector::_item_selected() {
case InputEvent::KEY: class_type="InputEventKey"; break;
case InputEvent::MOUSE_MOTION: class_type="InputEventMouseMotion"; break;
case InputEvent::MOUSE_BUTTON: class_type="InputEventMouseButton"; break;
- case InputEvent::JOYSTICK_MOTION: class_type="InputEventJoystickMotion"; break;
- case InputEvent::JOYSTICK_BUTTON: class_type="InputEventJoystickButton"; break;
+ case InputEvent::JOYPAD_MOTION: class_type="InputEventJoypadMotion"; break;
+ case InputEvent::JOYPAD_BUTTON: class_type="InputEventJoypadButton"; break;
case InputEvent::SCREEN_TOUCH: class_type="InputEventScreenTouch"; break;
case InputEvent::SCREEN_DRAG: class_type="InputEventScreenDrag"; break;
case InputEvent::ACTION: class_type="InputEventAction"; break;
@@ -358,14 +386,14 @@ void PropertySelector::_item_selected() {
}
}
- at_class=ObjectTypeDB::type_inherits_from(at_class);
+ at_class=ClassDB::get_parent_class(at_class);
}
if (text==String()) {
StringName setter;
StringName type;
- if (ObjectTypeDB::get_setter_and_type_for_property(class_type,name,type,setter)) {
+ if (ClassDB::get_setter_and_type_for_property(class_type,name,type,setter)) {
Map<String,DocData::ClassDoc>::Element *E=dd->class_list.find(type);
if (E) {
for(int i=0;i<E->get().methods.size();i++) {
@@ -395,7 +423,7 @@ void PropertySelector::_item_selected() {
}
}
- at_class=ObjectTypeDB::type_inherits_from(at_class);
+ at_class=ClassDB::get_parent_class(at_class);
}
}
@@ -470,7 +498,7 @@ void PropertySelector::select_method_from_basic_type(Variant::Type p_type, const
void PropertySelector::select_method_from_instance(Object* p_instance, const String &p_current){
- base_type=p_instance->get_type();
+ base_type=p_instance->get_class();
selected=p_current;
type=Variant::NIL;
script=0;
@@ -559,10 +587,10 @@ void PropertySelector::select_property_from_instance(Object* p_instance, const S
void PropertySelector::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_text_changed"),&PropertySelector::_text_changed);
- ObjectTypeDB::bind_method(_MD("_confirmed"),&PropertySelector::_confirmed);
- ObjectTypeDB::bind_method(_MD("_sbox_input"),&PropertySelector::_sbox_input);
- ObjectTypeDB::bind_method(_MD("_item_selected"),&PropertySelector::_item_selected);
+ ClassDB::bind_method(_MD("_text_changed"),&PropertySelector::_text_changed);
+ ClassDB::bind_method(_MD("_confirmed"),&PropertySelector::_confirmed);
+ ClassDB::bind_method(_MD("_sbox_input"),&PropertySelector::_sbox_input);
+ ClassDB::bind_method(_MD("_item_selected"),&PropertySelector::_item_selected);
ADD_SIGNAL(MethodInfo("selected",PropertyInfo(Variant::STRING,"name")));
@@ -574,11 +602,11 @@ PropertySelector::PropertySelector() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
search_box = memnew( LineEdit );
vbc->add_margin_child(TTR("Search:"),search_box);
search_box->connect("text_changed",this,"_text_changed");
- search_box->connect("input_event",this,"_sbox_input");
+ search_box->connect("gui_input",this,"_sbox_input");
search_options = memnew( Tree );
vbc->add_margin_child(TTR("Matches:"),search_options,true);
get_ok()->set_text(TTR("Open"));
diff --git a/tools/editor/property_selector.h b/tools/editor/property_selector.h
index f7f0e7e167..d29183f85e 100644
--- a/tools/editor/property_selector.h
+++ b/tools/editor/property_selector.h
@@ -1,3 +1,31 @@
+/*************************************************************************/
+/* property_selector.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* http://www.godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
#ifndef PROPERTYSELECTOR_H
#define PROPERTYSELECTOR_H
@@ -6,7 +34,7 @@
#include "editor_help.h"
class PropertySelector : public ConfirmationDialog {
- OBJ_TYPE(PropertySelector,ConfirmationDialog )
+ GDCLASS(PropertySelector,ConfirmationDialog )
LineEdit *search_box;
diff --git a/tools/editor/pvrtc_compress.cpp b/tools/editor/pvrtc_compress.cpp
index 75b5c69bc2..b130f6c773 100644
--- a/tools/editor/pvrtc_compress.cpp
+++ b/tools/editor/pvrtc_compress.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,18 +27,20 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "pvrtc_compress.h"
+
#include "editor_settings.h"
#include "scene/resources/texture.h"
#include "io/resource_saver.h"
#include "io/resource_loader.h"
#include "os/os.h"
#include "os/file_access.h"
+
static void (*_base_image_compress_pvrtc2_func)(Image *)=NULL;
static void (*_base_image_compress_pvrtc4_func)(Image *)=NULL;
static void _compress_image(Image::CompressMode p_mode,Image *p_image) {
- String ttpath = EditorSettings::get_singleton()->get("PVRTC/texture_tool");
+ String ttpath = EditorSettings::get_singleton()->get("filesystem/import/pvrtc_texture_tool");
if (ttpath.strip_edges()=="" || !FileAccess::exists(ttpath)) {
switch(p_mode) {
@@ -82,10 +84,10 @@ static void _compress_image(Image::CompressMode p_mode,Image *p_image) {
}
- if (EditorSettings::get_singleton()->get("PVRTC/fast_conversion").operator bool()) {
+ if (EditorSettings::get_singleton()->get("filesystem/import/pvrtc_fast_conversion").operator bool()) {
args.push_back("-pvrtcfast");
}
- if (p_image->get_mipmaps()>0)
+ if (p_image->has_mipmaps())
args.push_back("-m");
Ref<ImageTexture> t = memnew( ImageTexture );
diff --git a/tools/editor/pvrtc_compress.h b/tools/editor/pvrtc_compress.h
index 129faee080..4ba29026c5 100644
--- a/tools/editor/pvrtc_compress.h
+++ b/tools/editor/pvrtc_compress.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/quick_open.cpp b/tools/editor/quick_open.cpp
index e18dc584d5..615b42b411 100644
--- a/tools/editor/quick_open.cpp
+++ b/tools/editor/quick_open.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,8 +27,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "quick_open.h"
-#include "os/keyboard.h"
+#include "os/keyboard.h"
void EditorQuickOpen::popup(const StringName &p_base, bool p_enable_multi, bool p_add_dirs, bool p_dontclear) {
@@ -86,7 +86,7 @@ void EditorQuickOpen::_sbox_input(const InputEvent& p_ie) {
case KEY_PAGEUP:
case KEY_PAGEDOWN: {
- search_options->call("_input_event", p_ie);
+ search_options->call("_gui_input", p_ie);
search_box->accept_event();
TreeItem *root = search_options->get_root();
@@ -166,7 +166,7 @@ void EditorQuickOpen::_parse_fs(EditorFileSystemDirectory *efsd, Vector< Pair< S
String file = efsd->get_file_path(i);
file=file.substr(6,file.length());
- if (ObjectTypeDB::is_type(efsd->get_file_type(i),base_type) && (search_text.is_subsequence_ofi(file))) {
+ if (ClassDB::is_parent_class(efsd->get_file_type(i),base_type) && (search_text.is_subsequence_ofi(file))) {
Pair< String, Ref<Texture> > pair;
pair.first = file;
pair.second = get_icon((has_icon(efsd->get_file_type(i), ei) ? efsd->get_file_type(i) : ot), ei);
@@ -252,9 +252,9 @@ StringName EditorQuickOpen::get_base_type() const {
void EditorQuickOpen::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_text_changed"),&EditorQuickOpen::_text_changed);
- ObjectTypeDB::bind_method(_MD("_confirmed"),&EditorQuickOpen::_confirmed);
- ObjectTypeDB::bind_method(_MD("_sbox_input"),&EditorQuickOpen::_sbox_input);
+ ClassDB::bind_method(_MD("_text_changed"),&EditorQuickOpen::_text_changed);
+ ClassDB::bind_method(_MD("_confirmed"),&EditorQuickOpen::_confirmed);
+ ClassDB::bind_method(_MD("_sbox_input"),&EditorQuickOpen::_sbox_input);
ADD_SIGNAL(MethodInfo("quick_open"));
@@ -266,11 +266,11 @@ EditorQuickOpen::EditorQuickOpen() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
search_box = memnew( LineEdit );
vbc->add_margin_child(TTR("Search:"),search_box);
search_box->connect("text_changed",this,"_text_changed");
- search_box->connect("input_event",this,"_sbox_input");
+ search_box->connect("gui_input",this,"_sbox_input");
search_options = memnew( Tree );
vbc->add_margin_child(TTR("Matches:"),search_options,true);
get_ok()->set_text(TTR("Open"));
diff --git a/tools/editor/quick_open.h b/tools/editor/quick_open.h
index c253f7606e..ef91d910b1 100644
--- a/tools/editor/quick_open.h
+++ b/tools/editor/quick_open.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,7 +35,7 @@
#include "pair.h"
class EditorQuickOpen : public ConfirmationDialog {
- OBJ_TYPE(EditorQuickOpen,ConfirmationDialog )
+ GDCLASS(EditorQuickOpen,ConfirmationDialog )
LineEdit *search_box;
Tree *search_options;
diff --git a/tools/editor/register_exporters.h b/tools/editor/register_exporters.h
index dccaa0641f..30ec522a00 100644
--- a/tools/editor/register_exporters.h
+++ b/tools/editor/register_exporters.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/tools/editor/reparent_dialog.cpp b/tools/editor/reparent_dialog.cpp
index 38b0372232..c5b74d9006 100644
--- a/tools/editor/reparent_dialog.cpp
+++ b/tools/editor/reparent_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -30,8 +30,6 @@
#include "scene/gui/label.h"
#include "scene/gui/box_container.h"
-
-
#include "print_string.h"
void ReparentDialog::_notification(int p_what) {
@@ -75,8 +73,8 @@ void ReparentDialog::set_current(const Set<Node*>& p_selection) {
void ReparentDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_reparent",&ReparentDialog::_reparent);
- ObjectTypeDB::bind_method("_cancel",&ReparentDialog::_cancel);
+ ClassDB::bind_method("_reparent",&ReparentDialog::_reparent);
+ ClassDB::bind_method("_cancel",&ReparentDialog::_cancel);
ADD_SIGNAL( MethodInfo("reparent",PropertyInfo(Variant::NODE_PATH,"path"),PropertyInfo(Variant::BOOL,"keep_global_xform")));
}
@@ -88,7 +86,7 @@ ReparentDialog::ReparentDialog() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
tree = memnew( SceneTreeEditor(false) );
tree->set_show_enabled_subscene(true);
@@ -107,7 +105,7 @@ ReparentDialog::ReparentDialog() {
vbc->add_child(keep_transform);
- //vbc->add_margin_child("Options:",node_only);;
+ //vbc->add_margin_child("Options:",node_only);
//cancel->connect("pressed", this,"_cancel");
diff --git a/tools/editor/reparent_dialog.h b/tools/editor/reparent_dialog.h
index 1c0fbd2459..5e21f84581 100644
--- a/tools/editor/reparent_dialog.h
+++ b/tools/editor/reparent_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,7 +40,7 @@
*/
class ReparentDialog : public ConfirmationDialog {
- OBJ_TYPE( ReparentDialog, ConfirmationDialog );
+ GDCLASS( ReparentDialog, ConfirmationDialog );
SceneTreeEditor *tree;
CheckBox *keep_transform;
diff --git a/tools/editor/resources_dock.cpp b/tools/editor/resources_dock.cpp
index c73c8c081c..e89262db25 100644
--- a/tools/editor/resources_dock.cpp
+++ b/tools/editor/resources_dock.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "resources_dock.h"
+
#include "editor_node.h"
#include "io/resource_loader.h"
#include "io/resource_saver.h"
@@ -122,14 +123,16 @@ void ResourcesDock::_notification(int p_what) {
void ResourcesDock::save_resource(const String& p_path,const Ref<Resource>& p_resource) {
- editor->get_editor_data().apply_changes_in_editors();;
+ editor->get_editor_data().apply_changes_in_editors();
int flg=0;
if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources"))
flg|=ResourceSaver::FLAG_COMPRESS;
- //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative"))
- // flg|=ResourceSaver::FLAG_RELATIVE_PATHS;
+ /*
+ if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative"))
+ flg|=ResourceSaver::FLAG_RELATIVE_PATHS;
+ */
- String path = Globals::get_singleton()->localize_path(p_path);
+ String path = GlobalConfig::get_singleton()->localize_path(p_path);
Error err = ResourceSaver::save(path,p_resource,flg|ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS);
if (err!=OK) {
@@ -137,7 +140,7 @@ void ResourcesDock::save_resource(const String& p_path,const Ref<Resource>& p_re
accept->popup_centered_minsize();
return;
}
-// EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type());
+ //EditorFileSystem::get_singleton()->update_file(path,p_resource->get_type());
((Resource*)p_resource.ptr())->set_path(path);
editor->emit_signal("resource_saved",p_resource);
@@ -161,7 +164,7 @@ void ResourcesDock::save_resource_as(const Ref<Resource>& p_resource) {
String existing;
if (extensions.size()) {
- existing="new_"+res->get_type().to_lower()+"."+extensions.front()->get().to_lower();
+ existing="new_"+res->get_class().to_lower()+"."+extensions.front()->get().to_lower();
}
file->set_current_file(existing);
@@ -214,7 +217,7 @@ void ResourcesDock::_update_name(TreeItem *item) {
else if (res->get_path()!="" && res->get_path().find("::")==-1)
item->set_text(0,res->get_path().get_file());
else
- item->set_text(0,res->get_type()+" ("+itos(res->get_instance_ID())+")");
+ item->set_text(0,res->get_class()+" ("+itos(res->get_instance_ID())+")");
}
@@ -267,8 +270,8 @@ void ResourcesDock::add_resource(const Ref<Resource>& p_resource) {
TreeItem *res = resources->create_item(root);
res->set_metadata(0,p_resource);
- if (has_icon(p_resource->get_type(),"EditorIcons")) {
- res->set_icon(0,get_icon(p_resource->get_type(),"EditorIcons"));
+ if (has_icon(p_resource->get_class(),"EditorIcons")) {
+ res->set_icon(0,get_icon(p_resource->get_class(),"EditorIcons"));
}
_update_name(res);
@@ -319,12 +322,12 @@ void ResourcesDock::_create() {
void ResourcesDock::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_tool_selected"),&ResourcesDock::_tool_selected);
- ObjectTypeDB::bind_method(_MD("_create"),&ResourcesDock::_create);
- ObjectTypeDB::bind_method(_MD("_resource_selected"),&ResourcesDock::_resource_selected);
- ObjectTypeDB::bind_method(_MD("_delete"),&ResourcesDock::_delete);
- ObjectTypeDB::bind_method(_MD("remove_resource"),&ResourcesDock::remove_resource);
- ObjectTypeDB::bind_method(_MD("_file_action"),&ResourcesDock::_file_action);
+ ClassDB::bind_method(_MD("_tool_selected"),&ResourcesDock::_tool_selected);
+ ClassDB::bind_method(_MD("_create"),&ResourcesDock::_create);
+ ClassDB::bind_method(_MD("_resource_selected"),&ResourcesDock::_resource_selected);
+ ClassDB::bind_method(_MD("_delete"),&ResourcesDock::_delete);
+ ClassDB::bind_method(_MD("remove_resource"),&ResourcesDock::remove_resource);
+ ClassDB::bind_method(_MD("_file_action"),&ResourcesDock::_file_action);
@@ -366,7 +369,7 @@ ResourcesDock::ResourcesDock(EditorNode *p_editor) {
mb->set_tooltip(TTR("Save Resource"));
mb->get_popup()->add_item(TTR("Save Resource"),TOOL_SAVE);
mb->get_popup()->add_item(TTR("Save Resource As.."),TOOL_SAVE_AS);
- mb->get_popup()->connect("item_pressed",this,"_tool_selected" );
+ mb->get_popup()->connect("id_pressed",this,"_tool_selected" );
hbc->add_child( mb );
button_save=mb;
@@ -377,7 +380,7 @@ ResourcesDock::ResourcesDock(EditorNode *p_editor) {
mb->get_popup()->add_item(TTR("Make Local"),TOOL_MAKE_LOCAL);
mb->get_popup()->add_item(TTR("Copy"),TOOL_COPY);
mb->get_popup()->add_item(TTR("Paste"),TOOL_PASTE);
- mb->get_popup()->connect("item_pressed",this,"_tool_selected" );
+ mb->get_popup()->connect("id_pressed",this,"_tool_selected" );
hbc->add_child( mb );
button_tools=mb;
diff --git a/tools/editor/resources_dock.h b/tools/editor/resources_dock.h
index 978291fc3f..e225786583 100644
--- a/tools/editor/resources_dock.h
+++ b/tools/editor/resources_dock.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -45,7 +45,7 @@ class EditorNode;
class ResourcesDock : public VBoxContainer {
- OBJ_TYPE( ResourcesDock, VBoxContainer );
+ GDCLASS( ResourcesDock, VBoxContainer );
enum {
TOOL_NEW,
diff --git a/tools/editor/run_settings_dialog.cpp b/tools/editor/run_settings_dialog.cpp
index abcfe125f3..4d69c7ad84 100644
--- a/tools/editor/run_settings_dialog.cpp
+++ b/tools/editor/run_settings_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -47,8 +47,8 @@ String RunSettingsDialog::get_custom_arguments() const {
void RunSettingsDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_run_mode_changed",&RunSettingsDialog::_run_mode_changed);
- //ObjectTypeDB::bind_method("_browse_selected_file",&RunSettingsDialog::_browse_selected_file);
+ ClassDB::bind_method("_run_mode_changed",&RunSettingsDialog::_run_mode_changed);
+ //ClassDB::bind_method("_browse_selected_file",&RunSettingsDialog::_browse_selected_file);
}
void RunSettingsDialog::_run_mode_changed(int idx) {
@@ -76,7 +76,7 @@ RunSettingsDialog::RunSettingsDialog() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
run_mode = memnew( OptionButton );
vbc->add_margin_child(TTR("Run Mode:"),run_mode);
diff --git a/tools/editor/run_settings_dialog.h b/tools/editor/run_settings_dialog.h
index 09319702f3..2efc18e43f 100644
--- a/tools/editor/run_settings_dialog.h
+++ b/tools/editor/run_settings_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,7 +36,7 @@
class RunSettingsDialog : public AcceptDialog {
- OBJ_TYPE( RunSettingsDialog, AcceptDialog);
+ GDCLASS( RunSettingsDialog, AcceptDialog);
public:
enum RunMode {
RUN_LOCAL_SCENE,
diff --git a/tools/editor/scene_tree_dock.cpp b/tools/editor/scene_tree_dock.cpp
index 16f06c7ac9..b3e4c8ed70 100644
--- a/tools/editor/scene_tree_dock.cpp
+++ b/tools/editor/scene_tree_dock.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "scene_tree_dock.h"
+
#include "editor_node.h"
#include "globals.h"
#include "os/keyboard.h"
@@ -80,11 +81,11 @@ void SceneTreeDock::_unhandled_key_input(InputEvent p_event) {
else if (ED_IS_SHORTCUT("scene_tree/duplicate", p_event)) {
_tool_selected(TOOL_DUPLICATE);
}
- else if (ED_IS_SHORTCUT("scene_tree/add_script", p_event)) {
- _tool_selected(TOOL_CREATE_SCRIPT);
+ else if (ED_IS_SHORTCUT("scene_tree/attach_script", p_event)) {
+ _tool_selected(TOOL_ATTACH_SCRIPT);
}
- else if (ED_IS_SHORTCUT("scene_tree/load_script", p_event)) {
- _tool_selected(TOOL_LOAD_SCRIPT);
+ else if(ED_IS_SHORTCUT("scene_tree/clear_script", p_event)) {
+ _tool_selected(TOOL_CLEAR_SCRIPT);
}
else if (ED_IS_SHORTCUT("scene_tree/move_up", p_event)) {
_tool_selected(TOOL_MOVE_UP);
@@ -104,6 +105,9 @@ void SceneTreeDock::_unhandled_key_input(InputEvent p_event) {
else if (ED_IS_SHORTCUT("scene_tree/delete_no_confirm", p_event)) {
_tool_selected(TOOL_ERASE, true);
}
+ else if(ED_IS_SHORTCUT("scene_tree/copy_node_path", p_event)) {
+ _tool_selected(TOOL_COPY_NODE_PATH);
+ }
else if (ED_IS_SHORTCUT("scene_tree/delete", p_event)) {
_tool_selected(TOOL_ERASE);
}
@@ -174,7 +178,7 @@ void SceneTreeDock::_perform_instance_scenes(const Vector<String>& p_files,Node*
}
- Node*instanced_scene=sdata->instance(true);
+ Node*instanced_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE);
if (!instanced_scene) {
current_option=-1;
//accept->get_cancel()->hide();
@@ -198,7 +202,7 @@ void SceneTreeDock::_perform_instance_scenes(const Vector<String>& p_files,Node*
}
}
- instanced_scene->set_filename( Globals::get_singleton()->localize_path(p_files[i]) );
+ instanced_scene->set_filename( GlobalConfig::get_singleton()->localize_path(p_files[i]) );
instances.push_back(instanced_scene);
}
@@ -250,7 +254,7 @@ void SceneTreeDock::_replace_with_branch_scene(const String& p_file,Node* base)
return;
}
- Node *instanced_scene=sdata->instance(true);
+ Node *instanced_scene=sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE);
if (!instanced_scene) {
accept->get_ok()->set_text(TTR("Ugh"));
accept->set_text(vformat(TTR("Error instancing scene from %s"),p_file));
@@ -269,24 +273,6 @@ void SceneTreeDock::_replace_with_branch_scene(const String& p_file,Node* base)
scene_tree->set_selected(instanced_scene);
}
-
-void SceneTreeDock::_file_selected(String p_file) {
- RES p_script = ResourceLoader::load(p_file, "Script");
- if (p_script.is_null()) {
- accept->get_ok()->set_text(TTR("Ugh"));
- accept->set_text(vformat(TTR("Error loading script from %s"), p_file));
- accept->popup_centered_minsize();
- return;
- }
-
- Node *selected = scene_tree->get_selected();
- if (!selected)
- return;
- selected->set_script(p_script.get_ref_ptr());
- editor->push_item(p_script.operator->());
- file_dialog->hide();
-}
-
bool SceneTreeDock::_cyclical_dependency_exists(const String& p_target_scene_path, Node* p_desired_node) {
int childCount = p_desired_node->get_child_count();
@@ -313,10 +299,10 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
switch(p_tool) {
case TOOL_NEW: {
-
-
- //if (!_validate_no_foreign())
- // break;
+ /*
+ if (!_validate_no_foreign())
+ break;
+ */
create_dialog->popup(true);
} break;
case TOOL_INSTANCE: {
@@ -337,8 +323,10 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
break;
}
- //if (!_validate_no_foreign())
- // break;
+ /*
+ if (!_validate_no_foreign())
+ break;
+ */
file->set_mode(EditorFileDialog::MODE_OPEN_FILE);
List<String> extensions;
@@ -363,10 +351,12 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
if (!current)
break;
- //if (!_validate_no_foreign())
- // break;
- //connect_dialog->popup_centered_ratio();
- //connect_dialog->set_node(current);
+ /*
+ if (!_validate_no_foreign())
+ break;
+ connect_dialog->popup_centered_ratio();
+ connect_dialog->set_node(current);
+ */
} break;
case TOOL_GROUP: {
@@ -374,47 +364,48 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
Node *current = scene_tree->get_selected();
if (!current)
break;
- //if (!_validate_no_foreign())
- // break;
- //groups_editor->set_current(current);
- //groups_editor->popup_centered_ratio();
- } break;
- case TOOL_LOAD_SCRIPT: {
- Node *selected = scene_tree->get_selected();
- if (!selected)
+ /*
+ if (!_validate_no_foreign())
break;
-
- file_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE);
-
- List<String> extensions;
- ResourceLoader::get_recognized_extensions_for_type("Script", &extensions);
- file_dialog->clear_filters();
- for (List<String>::Element *E = extensions.front(); E; E = E->next())
- file_dialog->add_filter("*." + E->get() + " ; " + E->get().to_upper());
-
- file_dialog->popup_centered_ratio();
+ groups_editor->set_current(current);
+ groups_editor->popup_centered_ratio();
+ */
} break;
- case TOOL_CREATE_SCRIPT: {
+ case TOOL_ATTACH_SCRIPT: {
Node *selected = scene_tree->get_selected();
if (!selected)
break;
- //if (!_validate_no_foreign())
- // break;
+ /*
+ if (!_validate_no_foreign())
+ break;
+ */
Ref<Script> existing = selected->get_script();
if (existing.is_valid())
editor->push_item(existing.ptr());
else {
String path = selected->get_filename();
- script_create_dialog->config(selected->get_type(),path);
+ script_create_dialog->config(selected->get_class(),path);
script_create_dialog->popup_centered(Size2(300,290));
//script_create_dialog->popup_centered_minsize();
}
} break;
+ case TOOL_CLEAR_SCRIPT: {
+ Node *selected = scene_tree->get_selected();
+ if(!selected)
+ break;
+
+ Ref<Script> existing = selected->get_script();
+ if(existing.is_valid()) {
+ const RefPtr empty;
+ selected->set_script(empty);
+ }
+
+ } break;
case TOOL_MOVE_UP:
case TOOL_MOVE_DOWN: {
@@ -502,6 +493,8 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
break;
List<Node*> selection = editor_selection->get_selected_node_list();
+ if (selection.size()==0)
+ break;
List<Node*> reselect;
@@ -684,7 +677,17 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
new_scene_from_dialog->set_title(TTR("Save New Scene As.."));
} break;
+ case TOOL_COPY_NODE_PATH: {
+ List<Node*> selection = editor_selection->get_selected_node_list();
+ if(List<Node*>::Element *e = selection.front()) {
+ if(Node *node = e->get()) {
+ Node *root = EditorNode::get_singleton()->get_edited_scene();
+ NodePath path = root->get_path().rel_path_to(node->get_path());
+ OS::get_singleton()->set_clipboard(path);
+ }
+ }
+ } break;
}
}
@@ -707,8 +710,8 @@ void SceneTreeDock::_notification(int p_what) {
}
button_add->set_icon(get_icon("Add","EditorIcons"));
button_instance->set_icon(get_icon("Instance","EditorIcons"));
- button_create_script->set_icon(get_icon("Script","EditorIcons"));
- button_load_script->set_icon(get_icon("Script", "EditorIcons"));
+ button_create_script->set_icon(get_icon("ScriptCreate","EditorIcons"));
+ button_clear_script->set_icon(get_icon("ScriptRemove", "EditorIcons"));
filter_icon->set_texture(get_icon("Zoom","EditorIcons"));
@@ -741,7 +744,7 @@ void SceneTreeDock::_node_selected() {
return;
}
- if (ScriptEditor::get_singleton()->is_visible()) {
+ if (ScriptEditor::get_singleton()->is_visible_in_tree()) {
restore_script_editor_on_drag=true;
}
@@ -763,11 +766,11 @@ Node *SceneTreeDock::_duplicate(Node *p_node, Map<Node*,Node*> &duplimap) {
Ref<PackedScene> sd = ResourceLoader::load( p_node->get_filename() );
ERR_FAIL_COND_V(!sd.is_valid(),NULL);
- node = sd->instance(true);
+ node = sd->instance(PackedScene::GEN_EDIT_STATE_INSTANCE);
ERR_FAIL_COND_V(!node,NULL);
//node->generate_instance_state();
} else {
- Object *obj = ObjectTypeDB::instance(p_node->get_type());
+ Object *obj = ClassDB::instance(p_node->get_class());
ERR_FAIL_COND_V(!obj,NULL);
node = obj->cast_to<Node>();
if (!node)
@@ -865,7 +868,7 @@ void SceneTreeDock::_fill_path_renames(Vector<StringName> base_path,Vector<Strin
void SceneTreeDock::fill_path_renames(Node* p_node, Node *p_new_parent, List<Pair<NodePath,NodePath> > *p_renames) {
- if (!bool(EDITOR_DEF("animation/autorename_animation_tracks",true)))
+ if (!bool(EDITOR_DEF("editors/animation/autorename_animation_tracks",true)))
return;
@@ -898,7 +901,7 @@ void SceneTreeDock::perform_node_renames(Node* p_base,List<Pair<NodePath,NodePat
if (!r_rem_anims)
r_rem_anims=&rem_anims;
- if (!bool(EDITOR_DEF("animation/autorename_animation_tracks",true)))
+ if (!bool(EDITOR_DEF("editors/animation/autorename_animation_tracks",true)))
return;
if (!p_base) {
@@ -1338,12 +1341,18 @@ void SceneTreeDock::_selection_changed() {
_tool_selected(TOOL_MULTI_EDIT);
}
- if (selection_size==1 && EditorNode::get_singleton()->get_editor_selection()->get_selection().front()->key()->get_script().is_null()) {
- button_create_script->show();
- button_load_script->show();
+ if (selection_size==1) {
+ if(EditorNode::get_singleton()->get_editor_selection()->get_selection().front()->key()->get_script().is_null()) {
+ button_create_script->show();
+ button_clear_script->hide();
+ }
+ else {
+ button_create_script->hide();
+ button_clear_script->show();
+ }
} else {
button_create_script->hide();
- button_load_script->hide();
+ button_clear_script->hide();
}
//tool_buttons[TOOL_MULTI_EDIT]->set_disabled(EditorNode::get_singleton()->get_editor_selection()->get_selection().size()<2);
@@ -1391,7 +1400,7 @@ void SceneTreeDock::_create() {
String new_name = parent->validate_child_name(child);
ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger();
- editor_data->get_undo_redo().add_do_method(sed,"live_debug_create_node",edited_scene->get_path_to(parent),child->get_type(),new_name);
+ editor_data->get_undo_redo().add_do_method(sed,"live_debug_create_node",edited_scene->get_path_to(parent),child->get_class(),new_name);
editor_data->get_undo_redo().add_undo_method(sed,"live_debug_remove_node",NodePath(String(edited_scene->get_path_to(parent))+"/"+new_name));
} else {
@@ -1567,10 +1576,12 @@ void SceneTreeDock::_new_scene_from(String p_file) {
}
int flg=0;
- if (EditorSettings::get_singleton()->get("on_save/compress_binary_resources"))
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/compress_binary_resources"))
flg|=ResourceSaver::FLAG_COMPRESS;
- //if (EditorSettings::get_singleton()->get("on_save/save_paths_as_relative"))
- // flg|=ResourceSaver::FLAG_RELATIVE_PATHS;
+ /*
+ if (EditorSettings::get_singleton()->get("filesystem/on_save/save_paths_as_relative"))
+ flg|=ResourceSaver::FLAG_RELATIVE_PATHS;
+ */
err = ResourceSaver::save(p_file,sdata,flg);
@@ -1603,7 +1614,7 @@ static bool _is_node_visible(Node* p_node) {
static bool _has_visible_children(Node* p_node) {
- bool collapsed = p_node->has_meta("_editor_collapsed") ? (bool)p_node->get_meta("_editor_collapsed") : false;
+ bool collapsed = p_node->is_displayed_folded();
if (collapsed)
return false;
@@ -1626,7 +1637,7 @@ static Node* _find_last_visible(Node* p_node) {
Node* last=NULL;
- bool collapsed = p_node->has_meta("_editor_collapsed") ? (bool)p_node->get_meta("_editor_collapsed") : false;
+ bool collapsed = p_node->is_displayed_folded();
if (!collapsed) {
for(int i=0;i<p_node->get_child_count();i++) {
@@ -1661,36 +1672,9 @@ void SceneTreeDock::_normalize_drop(Node*& to_node, int &to_pos, int p_type) {
ERR_EXPLAIN("Cannot perform drop above the root node!");
ERR_FAIL();
}
- Node* upper_sibling=NULL;
-
- for(int i=0;i<to_node->get_index();i++) {
- Node *c =to_node->get_parent()->get_child(i);
- if (_is_node_visible(c)) {
- upper_sibling=c;
- }
- }
-
-
- if (upper_sibling) {
- //quite complicated, look for next visible in tree
- upper_sibling=_find_last_visible(upper_sibling);
-
- if (upper_sibling->get_parent()==to_node->get_parent()) {
- //just insert over this node because nothing is above at an upper level
- to_pos=to_node->get_index();
- to_node=to_node->get_parent();
- } else {
- to_pos=-1; //insert last in whathever is up
- to_node=upper_sibling->get_parent(); //insert at a parent of whathever is up
- }
-
- } else {
- //just insert over this node because nothing is above at the same level
- to_pos=to_node->get_index();
- to_node=to_node->get_parent();
-
- }
+ to_pos=to_node->get_index();
+ to_node=to_node->get_parent();
} else if (p_type==1) {
//drop at below selected node
@@ -1823,8 +1807,8 @@ void SceneTreeDock::_tree_rmb(const Vector2& p_menu_pos) {
//menu->add_icon_item(get_icon("Groups","EditorIcons"),TTR("Edit Groups"),TOOL_GROUP);
//menu->add_icon_item(get_icon("Connect","EditorIcons"),TTR("Edit Connections"),TOOL_CONNECT);
menu->add_separator();
- menu->add_icon_shortcut(get_icon("Script", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/add_script"), TOOL_CREATE_SCRIPT);
- menu->add_icon_shortcut(get_icon("Script", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/load_script"), TOOL_LOAD_SCRIPT);
+ menu->add_icon_shortcut(get_icon("ScriptCreate", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/attach_script"), TOOL_ATTACH_SCRIPT);
+ menu->add_icon_shortcut(get_icon("ScriptRemove", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/clear_script"), TOOL_CLEAR_SCRIPT);
menu->add_separator();
}
@@ -1836,12 +1820,12 @@ void SceneTreeDock::_tree_rmb(const Vector2& p_menu_pos) {
if (selection.size()==1) {
menu->add_separator();
menu->add_icon_shortcut(get_icon("Blend","EditorIcons"),ED_GET_SHORTCUT("scene_tree/merge_from_scene"), TOOL_MERGE_FROM_SCENE);
- menu->add_icon_shortcut(get_icon("Save","EditorIcons"),ED_GET_SHORTCUT("scene_tree/save_branch_as_scene"), TOOL_NEW_SCENE_FROM);
+ menu->add_icon_shortcut(get_icon("CreateNewSceneFrom","EditorIcons"),ED_GET_SHORTCUT("scene_tree/save_branch_as_scene"), TOOL_NEW_SCENE_FROM);
+ menu->add_separator();
+ menu->add_icon_shortcut(get_icon("CopyNodePath","EditorIcons"), ED_GET_SHORTCUT("scene_tree/copy_node_path"), TOOL_COPY_NODE_PATH);
}
menu->add_separator();
-
menu->add_icon_shortcut(get_icon("Remove","EditorIcons"), ED_SHORTCUT("scene_tree/delete", TTR("Delete Node(s)"), KEY_DELETE), TOOL_ERASE);
-
menu->set_size(Size2(1,1));
menu->set_pos(p_menu_pos);
menu->popup();
@@ -1871,7 +1855,7 @@ void SceneTreeDock::_focus_node() {
Node *node = scene_tree->get_selected();
ERR_FAIL_COND(!node);
- if (node->is_type("CanvasItem")) {
+ if (node->is_class("CanvasItem")) {
CanvasItemEditorPlugin *editor = editor_data->get_editor("2D")->cast_to<CanvasItemEditorPlugin>();
editor->get_canvas_item_editor()->focus_selection();
} else {
@@ -1883,39 +1867,38 @@ void SceneTreeDock::_focus_node() {
void SceneTreeDock::open_script_dialog(Node* p_for_node) {
scene_tree->set_selected(p_for_node,false);
- _tool_selected(TOOL_CREATE_SCRIPT);
+ _tool_selected(TOOL_ATTACH_SCRIPT);
}
void SceneTreeDock::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_tool_selected"),&SceneTreeDock::_tool_selected,DEFVAL(false));
- ObjectTypeDB::bind_method(_MD("_create"),&SceneTreeDock::_create);
- //ObjectTypeDB::bind_method(_MD("_script_created"),&SceneTreeDock::_script_created);
- ObjectTypeDB::bind_method(_MD("_node_reparent"),&SceneTreeDock::_node_reparent);
- ObjectTypeDB::bind_method(_MD("_set_owners"),&SceneTreeDock::_set_owners);
- ObjectTypeDB::bind_method(_MD("_node_selected"),&SceneTreeDock::_node_selected);
- ObjectTypeDB::bind_method(_MD("_node_renamed"),&SceneTreeDock::_node_renamed);
- ObjectTypeDB::bind_method(_MD("_script_created"),&SceneTreeDock::_script_created);
- ObjectTypeDB::bind_method(_MD("_load_request"),&SceneTreeDock::_load_request);
- ObjectTypeDB::bind_method(_MD("_script_open_request"),&SceneTreeDock::_script_open_request);
- ObjectTypeDB::bind_method(_MD("_unhandled_key_input"),&SceneTreeDock::_unhandled_key_input);
- ObjectTypeDB::bind_method(_MD("_input"),&SceneTreeDock::_input);
- ObjectTypeDB::bind_method(_MD("_nodes_drag_begin"),&SceneTreeDock::_nodes_drag_begin);
- ObjectTypeDB::bind_method(_MD("_delete_confirm"),&SceneTreeDock::_delete_confirm);
- ObjectTypeDB::bind_method(_MD("_node_prerenamed"),&SceneTreeDock::_node_prerenamed);
- ObjectTypeDB::bind_method(_MD("_import_subscene"),&SceneTreeDock::_import_subscene);
- ObjectTypeDB::bind_method(_MD("_selection_changed"),&SceneTreeDock::_selection_changed);
- ObjectTypeDB::bind_method(_MD("_new_scene_from"),&SceneTreeDock::_new_scene_from);
- ObjectTypeDB::bind_method(_MD("_nodes_dragged"),&SceneTreeDock::_nodes_dragged);
- ObjectTypeDB::bind_method(_MD("_files_dropped"),&SceneTreeDock::_files_dropped);
- ObjectTypeDB::bind_method(_MD("_script_dropped"),&SceneTreeDock::_script_dropped);
- ObjectTypeDB::bind_method(_MD("_tree_rmb"),&SceneTreeDock::_tree_rmb);
- ObjectTypeDB::bind_method(_MD("_filter_changed"),&SceneTreeDock::_filter_changed);
- ObjectTypeDB::bind_method(_MD("_focus_node"),&SceneTreeDock::_focus_node);
- ObjectTypeDB::bind_method(_MD("_file_selected"), &SceneTreeDock::_file_selected);
-
-
- ObjectTypeDB::bind_method(_MD("instance"),&SceneTreeDock::instance);
+ ClassDB::bind_method(_MD("_tool_selected"),&SceneTreeDock::_tool_selected,DEFVAL(false));
+ ClassDB::bind_method(_MD("_create"),&SceneTreeDock::_create);
+ //ClassDB::bind_method(_MD("_script_created"),&SceneTreeDock::_script_created);
+ ClassDB::bind_method(_MD("_node_reparent"),&SceneTreeDock::_node_reparent);
+ ClassDB::bind_method(_MD("_set_owners"),&SceneTreeDock::_set_owners);
+ ClassDB::bind_method(_MD("_node_selected"),&SceneTreeDock::_node_selected);
+ ClassDB::bind_method(_MD("_node_renamed"),&SceneTreeDock::_node_renamed);
+ ClassDB::bind_method(_MD("_script_created"),&SceneTreeDock::_script_created);
+ ClassDB::bind_method(_MD("_load_request"),&SceneTreeDock::_load_request);
+ ClassDB::bind_method(_MD("_script_open_request"),&SceneTreeDock::_script_open_request);
+ ClassDB::bind_method(_MD("_unhandled_key_input"),&SceneTreeDock::_unhandled_key_input);
+ ClassDB::bind_method(_MD("_input"),&SceneTreeDock::_input);
+ ClassDB::bind_method(_MD("_nodes_drag_begin"),&SceneTreeDock::_nodes_drag_begin);
+ ClassDB::bind_method(_MD("_delete_confirm"),&SceneTreeDock::_delete_confirm);
+ ClassDB::bind_method(_MD("_node_prerenamed"),&SceneTreeDock::_node_prerenamed);
+ ClassDB::bind_method(_MD("_import_subscene"),&SceneTreeDock::_import_subscene);
+ ClassDB::bind_method(_MD("_selection_changed"),&SceneTreeDock::_selection_changed);
+ ClassDB::bind_method(_MD("_new_scene_from"),&SceneTreeDock::_new_scene_from);
+ ClassDB::bind_method(_MD("_nodes_dragged"),&SceneTreeDock::_nodes_dragged);
+ ClassDB::bind_method(_MD("_files_dropped"),&SceneTreeDock::_files_dropped);
+ ClassDB::bind_method(_MD("_script_dropped"),&SceneTreeDock::_script_dropped);
+ ClassDB::bind_method(_MD("_tree_rmb"),&SceneTreeDock::_tree_rmb);
+ ClassDB::bind_method(_MD("_filter_changed"),&SceneTreeDock::_filter_changed);
+ ClassDB::bind_method(_MD("_focus_node"),&SceneTreeDock::_focus_node);
+
+
+ ClassDB::bind_method(_MD("instance"),&SceneTreeDock::instance);
}
@@ -1936,14 +1919,15 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec
ED_SHORTCUT("scene_tree/add_child_node",TTR("Add Child Node"), KEY_MASK_CMD|KEY_A);
ED_SHORTCUT("scene_tree/instance_scene",TTR("Instance Child Scene"));
ED_SHORTCUT("scene_tree/change_node_type", TTR("Change Type"));
- ED_SHORTCUT("scene_tree/add_script", TTR("Add Script"));
- ED_SHORTCUT("scene_tree/load_script", TTR("Load Script"));
+ ED_SHORTCUT("scene_tree/attach_script", TTR("Attach Script"));
+ ED_SHORTCUT("scene_tree/clear_script", TTR("Clear Script"));
ED_SHORTCUT("scene_tree/move_up", TTR("Move Up"), KEY_MASK_CMD | KEY_UP);
ED_SHORTCUT("scene_tree/move_down", TTR("Move Down"), KEY_MASK_CMD | KEY_DOWN);
ED_SHORTCUT("scene_tree/duplicate", TTR("Duplicate"),KEY_MASK_CMD | KEY_D);
ED_SHORTCUT("scene_tree/reparent", TTR("Reparent"));
ED_SHORTCUT("scene_tree/merge_from_scene", TTR("Merge From Scene"));
ED_SHORTCUT("scene_tree/save_branch_as_scene", TTR("Save Branch as Scene"));
+ ED_SHORTCUT("scene_tree/copy_node_path", TTR("Copy Node Path"), KEY_MASK_CMD|KEY_C);
ED_SHORTCUT("scene_tree/delete_no_confirm", TTR("Delete (No Confirm)"), KEY_MASK_SHIFT|KEY_DELETE);
ED_SHORTCUT("scene_tree/delete", TTR("Delete"), KEY_DELETE);
@@ -1967,25 +1951,25 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec
filter = memnew( LineEdit );
filter->set_h_size_flags(SIZE_EXPAND_FILL);
filter_hbc->add_child(filter);
- filter_icon = memnew( TextureFrame );
+ filter_icon = memnew( TextureRect );
filter_hbc->add_child(filter_icon);
- filter_icon->set_stretch_mode(TextureFrame::STRETCH_KEEP_CENTERED);
+ filter_icon->set_stretch_mode(TextureRect::STRETCH_KEEP_CENTERED);
filter->connect("text_changed",this,"_filter_changed");
tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_CREATE_SCRIPT, false));
- tb->set_tooltip(TTR("Create a new script for the selected node."));
- tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/add_script"));
+ tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_ATTACH_SCRIPT, false));
+ tb->set_tooltip(TTR("Attach a new or existing script for the selected node."));
+ tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/attach_script"));
filter_hbc->add_child(tb);
button_create_script=tb;
tb = memnew(ToolButton);
- tb->connect("pressed", this, "_tool_selected", make_binds(TOOL_LOAD_SCRIPT, false));
- tb->set_tooltip(TTR("Load a script for the selected node."));
- tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/load_script"));
+ tb->connect("pressed", this, "_tool_selected", make_binds(TOOL_CLEAR_SCRIPT, false));
+ tb->set_tooltip(TTR("Clear a script for the selected node."));
+ tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/clear_script"));
filter_hbc->add_child(tb);
- button_load_script = tb;
+ button_clear_script = tb;
scene_tree = memnew( SceneTreeEditor(false,true,true ));
@@ -2004,7 +1988,6 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec
scene_tree->connect("nodes_dragged",this,"_nodes_drag_begin");
scene_tree->get_scene_tree()->connect("item_double_clicked", this, "_focus_node");
- scene_tree->get_scene_tree()->set_delayed_text_editor(true);
scene_tree->set_undo_redo(&editor_data->get_undo_redo());
scene_tree->set_editor_selection(editor_selection);
@@ -2015,11 +1998,6 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec
add_child(create_dialog);
create_dialog->connect("create",this,"_create");
- file_dialog = memnew(EditorFileDialog);
- add_child(file_dialog);
- file_dialog->hide();
- file_dialog->connect("file_selected", this, "_file_selected");
-
//groups_editor = memnew( GroupsEditor );
//add_child(groups_editor);
//groups_editor->set_undo_redo(&editor_data->get_undo_redo());
@@ -2060,7 +2038,7 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec
menu = memnew( PopupMenu );
add_child(menu);
- menu->connect("item_pressed",this,"_tool_selected");
+ menu->connect("id_pressed",this,"_tool_selected");
first_enter=true;
restore_script_editor_on_drag=false;
diff --git a/tools/editor/scene_tree_dock.h b/tools/editor/scene_tree_dock.h
index 36d4a6d208..2ee7ba3d06 100644
--- a/tools/editor/scene_tree_dock.h
+++ b/tools/editor/scene_tree_dock.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -49,7 +49,7 @@ class EditorNode;
class SceneTreeDock : public VBoxContainer {
- OBJ_TYPE( SceneTreeDock, VBoxContainer );
+ GDCLASS( SceneTreeDock, VBoxContainer );
enum Tool {
@@ -58,8 +58,8 @@ class SceneTreeDock : public VBoxContainer {
TOOL_REPLACE,
TOOL_CONNECT,
TOOL_GROUP,
- TOOL_CREATE_SCRIPT,
- TOOL_LOAD_SCRIPT,
+ TOOL_ATTACH_SCRIPT,
+ TOOL_CLEAR_SCRIPT,
TOOL_MOVE_UP,
TOOL_MOVE_DOWN,
TOOL_DUPLICATE,
@@ -68,6 +68,7 @@ class SceneTreeDock : public VBoxContainer {
TOOL_MERGE_FROM_SCENE,
TOOL_MULTI_EDIT,
TOOL_ERASE,
+ TOOL_COPY_NODE_PATH,
TOOL_BUTTON_MAX
};
@@ -76,12 +77,11 @@ class SceneTreeDock : public VBoxContainer {
int current_option;
CreateDialog *create_dialog;
- EditorFileDialog *file_dialog;
ToolButton *button_add;
ToolButton *button_instance;
ToolButton *button_create_script;
- ToolButton *button_load_script;
+ ToolButton *button_clear_script;
SceneTreeEditor *scene_tree;
@@ -103,7 +103,7 @@ class SceneTreeDock : public VBoxContainer {
EditorFileDialog *new_scene_from_dialog;
LineEdit *filter;
- TextureFrame *filter_icon;
+ TextureRect *filter_icon;
PopupMenu * menu;
diff --git a/tools/editor/scene_tree_editor.cpp b/tools/editor/scene_tree_editor.cpp
index f5628d0c8f..dd1fdeb400 100644
--- a/tools/editor/scene_tree_editor.cpp
+++ b/tools/editor/scene_tree_editor.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,13 +27,13 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "scene_tree_editor.h"
+
#include "scene/gui/label.h"
#include "editor_node.h"
#include "print_string.h"
#include "message_queue.h"
#include "scene/main/viewport.h"
#include "tools/editor/plugins/canvas_item_editor_plugin.h"
-
#include "scene/resources/packed_scene.h"
Node *SceneTreeEditor::get_scene_node() {
@@ -206,29 +206,17 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id)
} else if (p_id==BUTTON_VISIBILITY) {
- if (n->is_type("Spatial")) {
-
- Spatial *ci = n->cast_to<Spatial>();
- if (!ci->is_visible() && ci->get_parent_spatial() && !ci->get_parent_spatial()->is_visible()) {
- error->set_text(TTR("This item cannot be made visible because the parent is hidden. Unhide the parent first."));
- error->popup_centered_minsize();
- return;
- }
+ if (n->is_class("Spatial")) {
- bool v = !bool(n->call("is_hidden"));
+ bool v = bool(n->call("is_visible"));
undo_redo->create_action(TTR("Toggle Spatial Visible"));
- undo_redo->add_do_method(n,"_set_visible_",!v);
- undo_redo->add_undo_method(n,"_set_visible_",v);
+ undo_redo->add_do_method(n,"set_visible",!v);
+ undo_redo->add_undo_method(n,"set_visible",v);
undo_redo->commit_action();
- } else if (n->is_type("CanvasItem")) {
- CanvasItem *ci = n->cast_to<CanvasItem>();
- if (!ci->is_visible() && ci->get_parent_item() && !ci->get_parent_item()->is_visible()) {
- error->set_text(TTR("This item cannot be made visible because the parent is hidden. Unhide the parent first."));
- error->popup_centered_minsize();
- return;
- }
- bool v = !bool(n->call("is_hidden"));
+ } else if (n->is_class("CanvasItem")) {
+
+ bool v = bool(n->call("is_visible"));
undo_redo->create_action(TTR("Toggle CanvasItem Visible"));
undo_redo->add_do_method(n,v?"hide":"show");
undo_redo->add_undo_method(n,v?"show":"hide");
@@ -237,14 +225,14 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id)
} else if (p_id==BUTTON_LOCK) {
- if (n->is_type("CanvasItem")) {
+ if (n->is_class("CanvasItem")) {
n->set_meta("_edit_lock_", Variant());
_update_tree();
emit_signal("node_changed");
}
} else if (p_id==BUTTON_GROUP) {
- if (n->is_type("CanvasItem")) {
+ if (n->is_class("CanvasItem")) {
n->set_meta("_edit_group_", Variant());
_update_tree();
emit_signal("node_changed");
@@ -327,7 +315,7 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
if (p_node->has_meta("_editor_icon"))
icon=p_node->get_meta("_editor_icon");
else
- icon=get_icon( (has_icon(p_node->get_type(),"EditorIcons")?p_node->get_type():String("Object")),"EditorIcons");
+ icon=get_icon( (has_icon(p_node->get_class(),"EditorIcons")?p_node->get_class():String("Object")),"EditorIcons");
item->set_icon(0, icon );
item->set_metadata( 0,p_node->get_path() );
@@ -376,13 +364,13 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
if (p_node==get_scene_node() && p_node->get_scene_inherited_state().is_valid()) {
item->add_button(0,get_icon("InstanceOptions","EditorIcons"),BUTTON_SUBSCENE);
- item->set_tooltip(0,TTR("Inherits:")+" "+p_node->get_scene_inherited_state()->get_path()+"\n"+TTR("Type:")+" "+p_node->get_type());
+ item->set_tooltip(0,TTR("Inherits:")+" "+p_node->get_scene_inherited_state()->get_path()+"\n"+TTR("Type:")+" "+p_node->get_class());
} else if (p_node!=get_scene_node() && p_node->get_filename()!="" && can_open_instance) {
item->add_button(0,get_icon("InstanceOptions","EditorIcons"),BUTTON_SUBSCENE);
- item->set_tooltip(0,TTR("Instance:")+" "+p_node->get_filename()+"\n"+TTR("Type:")+" "+p_node->get_type());
+ item->set_tooltip(0,TTR("Instance:")+" "+p_node->get_filename()+"\n"+TTR("Type:")+" "+p_node->get_class());
} else {
- item->set_tooltip(0,String(p_node->get_name())+"\n"+TTR("Type:")+" "+p_node->get_type());
+ item->set_tooltip(0,String(p_node->get_name())+"\n"+TTR("Type:")+" "+p_node->get_class());
}
if (can_open_instance) {
@@ -396,7 +384,7 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
item->add_button(0,get_icon("Script","EditorIcons"),BUTTON_SCRIPT);
}
- if (p_node->is_type("CanvasItem")) {
+ if (p_node->is_class("CanvasItem")) {
bool is_locked = p_node->has_meta("_edit_lock_");//_edit_group_
if (is_locked)
@@ -406,26 +394,28 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
if (is_grouped)
item->add_button(0,get_icon("Group", "EditorIcons"), BUTTON_GROUP);
- bool h = p_node->call("is_hidden");
- if (h)
- item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY);
- else
+ bool v = p_node->call("is_visible");
+ if (v)
item->add_button(0,get_icon("Visible","EditorIcons"),BUTTON_VISIBILITY);
+ else
+ item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY);
if (!p_node->is_connected("visibility_changed",this,"_node_visibility_changed"))
p_node->connect("visibility_changed",this,"_node_visibility_changed",varray(p_node));
- } else if (p_node->is_type("Spatial")) {
+ _update_visibility_color(p_node, item);
+ } else if (p_node->is_class("Spatial")) {
- bool h = p_node->call("is_hidden");
- if (h)
- item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY);
- else
+ bool v = p_node->call("is_visible");
+ if (v)
item->add_button(0,get_icon("Visible","EditorIcons"),BUTTON_VISIBILITY);
+ else
+ item->add_button(0,get_icon("Hidden","EditorIcons"),BUTTON_VISIBILITY);
if (!p_node->is_connected("visibility_changed",this,"_node_visibility_changed"))
p_node->connect("visibility_changed",this,"_node_visibility_changed",varray(p_node));
+ _update_visibility_color(p_node, item);
}
}
@@ -480,20 +470,32 @@ void SceneTreeEditor::_node_visibility_changed(Node *p_node) {
bool visible=false;
- if (p_node->is_type("CanvasItem")) {
- visible = !p_node->call("is_hidden");
- } else if (p_node->is_type("Spatial")) {
- visible = !p_node->call("is_hidden");
+ if (p_node->is_class("CanvasItem")) {
+ visible = p_node->call("is_visible");
+ CanvasItemEditor::get_singleton()->get_viewport_control()->update();
+ } else if (p_node->is_class("Spatial")) {
+ visible = p_node->call("is_visible");
}
- if (!visible)
- item->set_button(0,idx,get_icon("Hidden","EditorIcons"));
- else
+ if (visible)
item->set_button(0,idx,get_icon("Visible","EditorIcons"));
+ else
+ item->set_button(0,idx,get_icon("Hidden","EditorIcons"));
-
+ _update_visibility_color(p_node, item);
}
+void SceneTreeEditor::_update_visibility_color(Node *p_node, TreeItem *p_item) {
+ if (p_node->is_class("CanvasItem") || p_node->is_class("Spatial")) {
+ Color color(1,1,1,1);
+ bool visible_on_screen = p_node->call("is_visible");
+ if (!visible_on_screen) {
+ color = Color(0.6,0.6,0.6,1);
+ }
+ int idx=p_item->get_button_by_id(0,BUTTON_VISIBILITY);
+ p_item->set_button_color(0,idx,color);
+ }
+}
void SceneTreeEditor::_node_script_changed(Node *p_node) {
@@ -524,7 +526,7 @@ void SceneTreeEditor::_node_removed(Node *p_node) {
if (p_node->is_connected("script_changed",this,"_node_script_changed"))
p_node->disconnect("script_changed",this,"_node_script_changed");
- if (p_node->is_type("Spatial") || p_node->is_type("CanvasItem")) {
+ if (p_node->is_class("Spatial") || p_node->is_class("CanvasItem")) {
if (p_node->is_connected("visibility_changed",this,"_node_visibility_changed"))
p_node->disconnect("visibility_changed",this,"_node_visibility_changed");
}
@@ -671,8 +673,8 @@ void SceneTreeEditor::_notification(int p_what) {
EditorSettings::get_singleton()->connect("settings_changed",this,"_editor_settings_changed");
-// get_scene()->connect("tree_changed",this,"_tree_changed",Vector<Variant>(),CONNECT_DEFERRED);
-// get_scene()->connect("node_removed",this,"_node_removed",Vector<Variant>(),CONNECT_DEFERRED);
+ //get_scene()->connect("tree_changed",this,"_tree_changed",Vector<Variant>(),CONNECT_DEFERRED);
+ //get_scene()->connect("node_removed",this,"_node_removed",Vector<Variant>(),CONNECT_DEFERRED);
_update_tree();
}
if (p_what==NOTIFICATION_EXIT_TREE) {
@@ -725,6 +727,12 @@ void SceneTreeEditor::set_selected(Node *p_node,bool p_emit_selected) {
TreeItem* item=p_node?_find(tree->get_root(),p_node->get_path()):NULL;
if (item) {
+ // make visible when it's collapsed
+ TreeItem* node=item->get_parent();
+ while (node && node!=tree->get_root()) {
+ node->set_collapsed(false);
+ node=node->get_parent();
+ }
item->select(0);
item->set_as_cursor(0);
selected=p_node;
@@ -947,13 +955,13 @@ Variant SceneTreeEditor::get_drag_data_fw(const Point2& p_point,Control* p_from)
if (i<list_max){
HBoxContainer *hb = memnew( HBoxContainer );
- TextureFrame *tf = memnew(TextureFrame);
+ TextureRect *tf = memnew(TextureRect);
tf->set_texture(icons[i]);
hb->add_child(tf);
Label *label = memnew( Label( selected[i]->get_name() ) );
hb->add_child(label);
vb->add_child(hb);
- hb->set_opacity(opacity_item);
+ hb->set_modulate(Color(1,1,1,opacity_item));
opacity_item -= opacity_step;
}
NodePath p = selected[i]->get_path();
@@ -1075,14 +1083,14 @@ void SceneTreeEditor::_warning_changed(Node* p_for_node) {
//should use a timer
update_timer->start();
-// print_line("WARNING CHANGED "+String(p_for_node->get_name()));
+ //print_line("WARNING CHANGED "+String(p_for_node->get_name()));
}
void SceneTreeEditor::_editor_settings_changed() {
- bool enable_rl = EditorSettings::get_singleton()->get("scenetree_editor/draw_relationship_lines");
- Color rl_color = EditorSettings::get_singleton()->get("scenetree_editor/relationship_line_color");
+ bool enable_rl = EditorSettings::get_singleton()->get("docks/scene_tree/draw_relationship_lines");
+ Color rl_color = EditorSettings::get_singleton()->get("docks/scene_tree/relationship_line_color");
if (enable_rl) {
tree->add_constant_override("draw_relationship_lines",1);
@@ -1096,31 +1104,31 @@ void SceneTreeEditor::_editor_settings_changed() {
void SceneTreeEditor::_bind_methods() {
- ObjectTypeDB::bind_method("_tree_changed",&SceneTreeEditor::_tree_changed);
- ObjectTypeDB::bind_method("_update_tree",&SceneTreeEditor::_update_tree);
- ObjectTypeDB::bind_method("_node_removed",&SceneTreeEditor::_node_removed);
- ObjectTypeDB::bind_method("_selected_changed",&SceneTreeEditor::_selected_changed);
- ObjectTypeDB::bind_method("_renamed",&SceneTreeEditor::_renamed);
- ObjectTypeDB::bind_method("_rename_node",&SceneTreeEditor::_rename_node);
- ObjectTypeDB::bind_method("_test_update_tree",&SceneTreeEditor::_test_update_tree);
- ObjectTypeDB::bind_method("_cell_multi_selected",&SceneTreeEditor::_cell_multi_selected);
- ObjectTypeDB::bind_method("_selection_changed",&SceneTreeEditor::_selection_changed);
- ObjectTypeDB::bind_method("_cell_button_pressed",&SceneTreeEditor::_cell_button_pressed);
- ObjectTypeDB::bind_method("_cell_collapsed",&SceneTreeEditor::_cell_collapsed);
- ObjectTypeDB::bind_method("_subscene_option",&SceneTreeEditor::_subscene_option);
- ObjectTypeDB::bind_method("_rmb_select",&SceneTreeEditor::_rmb_select);
- ObjectTypeDB::bind_method("_warning_changed",&SceneTreeEditor::_warning_changed);
+ ClassDB::bind_method("_tree_changed",&SceneTreeEditor::_tree_changed);
+ ClassDB::bind_method("_update_tree",&SceneTreeEditor::_update_tree);
+ ClassDB::bind_method("_node_removed",&SceneTreeEditor::_node_removed);
+ ClassDB::bind_method("_selected_changed",&SceneTreeEditor::_selected_changed);
+ ClassDB::bind_method("_renamed",&SceneTreeEditor::_renamed);
+ ClassDB::bind_method("_rename_node",&SceneTreeEditor::_rename_node);
+ ClassDB::bind_method("_test_update_tree",&SceneTreeEditor::_test_update_tree);
+ ClassDB::bind_method("_cell_multi_selected",&SceneTreeEditor::_cell_multi_selected);
+ ClassDB::bind_method("_selection_changed",&SceneTreeEditor::_selection_changed);
+ ClassDB::bind_method("_cell_button_pressed",&SceneTreeEditor::_cell_button_pressed);
+ ClassDB::bind_method("_cell_collapsed",&SceneTreeEditor::_cell_collapsed);
+ ClassDB::bind_method("_subscene_option",&SceneTreeEditor::_subscene_option);
+ ClassDB::bind_method("_rmb_select",&SceneTreeEditor::_rmb_select);
+ ClassDB::bind_method("_warning_changed",&SceneTreeEditor::_warning_changed);
- ObjectTypeDB::bind_method("_node_script_changed",&SceneTreeEditor::_node_script_changed);
- ObjectTypeDB::bind_method("_node_visibility_changed",&SceneTreeEditor::_node_visibility_changed);
+ ClassDB::bind_method("_node_script_changed",&SceneTreeEditor::_node_script_changed);
+ ClassDB::bind_method("_node_visibility_changed",&SceneTreeEditor::_node_visibility_changed);
- ObjectTypeDB::bind_method("_editor_settings_changed", &SceneTreeEditor::_editor_settings_changed);
+ ClassDB::bind_method("_editor_settings_changed", &SceneTreeEditor::_editor_settings_changed);
- ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &SceneTreeEditor::get_drag_data_fw);
- ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &SceneTreeEditor::can_drop_data_fw);
- ObjectTypeDB::bind_method(_MD("drop_data_fw"), &SceneTreeEditor::drop_data_fw);
+ ClassDB::bind_method(_MD("get_drag_data_fw"), &SceneTreeEditor::get_drag_data_fw);
+ ClassDB::bind_method(_MD("can_drop_data_fw"), &SceneTreeEditor::can_drop_data_fw);
+ ClassDB::bind_method(_MD("drop_data_fw"), &SceneTreeEditor::drop_data_fw);
- ObjectTypeDB::bind_method(_MD("update_tree"), &SceneTreeEditor::update_tree);
+ ClassDB::bind_method(_MD("update_tree"), &SceneTreeEditor::update_tree);
ADD_SIGNAL( MethodInfo("node_selected") );
ADD_SIGNAL( MethodInfo("node_renamed") );
@@ -1128,7 +1136,7 @@ void SceneTreeEditor::_bind_methods() {
ADD_SIGNAL( MethodInfo("node_changed") );
ADD_SIGNAL( MethodInfo("nodes_dragged") );
ADD_SIGNAL( MethodInfo("nodes_rearranged",PropertyInfo(Variant::ARRAY,"paths"),PropertyInfo(Variant::NODE_PATH,"to_path"),PropertyInfo(Variant::INT,"type") ) );
- ADD_SIGNAL( MethodInfo("files_dropped",PropertyInfo(Variant::STRING_ARRAY,"files"),PropertyInfo(Variant::NODE_PATH,"to_path"),PropertyInfo(Variant::INT,"type") ) );
+ ADD_SIGNAL( MethodInfo("files_dropped",PropertyInfo(Variant::POOL_STRING_ARRAY,"files"),PropertyInfo(Variant::NODE_PATH,"to_path"),PropertyInfo(Variant::INT,"type") ) );
ADD_SIGNAL( MethodInfo("script_dropped",PropertyInfo(Variant::STRING,"file"),PropertyInfo(Variant::NODE_PATH,"to_path")));
ADD_SIGNAL( MethodInfo("rmb_pressed",PropertyInfo(Variant::VECTOR2,"pos")) ) ;
@@ -1180,7 +1188,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label,bool p_can_rename, bool p_can_open
tree->connect("item_edited", this,"_renamed",varray(),CONNECT_DEFERRED);
tree->connect("multi_selected",this,"_cell_multi_selected");
tree->connect("button_pressed",this,"_cell_button_pressed");
-// tree->connect("item_edited", this,"_renamed",Vector<Variant>(),true);
+ //tree->connect("item_edited", this,"_renamed",Vector<Variant>(),true);
error = memnew( AcceptDialog );
add_child(error);
@@ -1204,14 +1212,14 @@ SceneTreeEditor::SceneTreeEditor(bool p_label,bool p_can_rename, bool p_can_open
instance_menu->add_item(TTR("Discard Instancing"),SCENE_MENU_CLEAR_INSTANCING);
instance_menu->add_separator();
instance_menu->add_item(TTR("Open in Editor"),SCENE_MENU_OPEN);
- instance_menu->connect("item_pressed",this,"_subscene_option");
+ instance_menu->connect("id_pressed",this,"_subscene_option");
add_child(instance_menu);
inheritance_menu = memnew( PopupMenu );
inheritance_menu->add_item(TTR("Clear Inheritance"),SCENE_MENU_CLEAR_INHERITANCE);
inheritance_menu->add_separator();
inheritance_menu->add_item(TTR("Open in Editor"),SCENE_MENU_OPEN_INHERITED);
- inheritance_menu->connect("item_pressed",this,"_subscene_option");
+ inheritance_menu->connect("id_pressed",this,"_subscene_option");
add_child(inheritance_menu);
@@ -1227,7 +1235,7 @@ SceneTreeEditor::SceneTreeEditor(bool p_label,bool p_can_rename, bool p_can_open
add_child(update_timer);
script_types = memnew(List<StringName>);
- ObjectTypeDB::get_inheriters_from("Script", script_types);
+ ClassDB::get_inheriters_from_class("Script", script_types);
}
@@ -1258,7 +1266,7 @@ void SceneTreeDialog::_notification(int p_what) {
get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size()));
}
- if (p_what==NOTIFICATION_VISIBILITY_CHANGED && is_visible()) {
+ if (p_what==NOTIFICATION_VISIBILITY_CHANGED && is_visible_in_tree()) {
tree->update_tree();
}
@@ -1283,8 +1291,8 @@ void SceneTreeDialog::_select() {
void SceneTreeDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_select",&SceneTreeDialog::_select);
- ObjectTypeDB::bind_method("_cancel",&SceneTreeDialog::_cancel);
+ ClassDB::bind_method("_select",&SceneTreeDialog::_select);
+ ClassDB::bind_method("_cancel",&SceneTreeDialog::_cancel);
ADD_SIGNAL( MethodInfo("selected",PropertyInfo(Variant::NODE_PATH,"path")));
}
@@ -1296,7 +1304,7 @@ SceneTreeDialog::SceneTreeDialog() {
tree = memnew( SceneTreeEditor(false,false) );
add_child(tree);
- set_child_rect(tree);
+ //set_child_rect(tree);
tree->get_scene_tree()->connect("item_activated",this,"_select");
diff --git a/tools/editor/scene_tree_editor.h b/tools/editor/scene_tree_editor.h
index 12d85ecdeb..5586f02c00 100644
--- a/tools/editor/scene_tree_editor.h
+++ b/tools/editor/scene_tree_editor.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -40,7 +40,7 @@
*/
class SceneTreeEditor : public Control {
- OBJ_TYPE( SceneTreeEditor, Control );
+ GDCLASS( SceneTreeEditor, Control );
EditorSelection *editor_selection;
@@ -117,6 +117,7 @@ class SceneTreeEditor : public Control {
void _update_selection(TreeItem *item);
void _node_script_changed(Node *p_node);
void _node_visibility_changed(Node *p_node);
+ void _update_visibility_color(Node *p_node, TreeItem *p_item);
void _subscene_option(int p_idx);
void _node_replace_owner(Node* p_base,Node* p_node,Node* p_root);
@@ -171,11 +172,11 @@ public:
class SceneTreeDialog : public ConfirmationDialog {
- OBJ_TYPE( SceneTreeDialog, ConfirmationDialog );
+ GDCLASS( SceneTreeDialog, ConfirmationDialog );
SceneTreeEditor *tree;
-// Button *select;
-// Button *cancel;
+ //Button *select;
+ //Button *cancel;
void update_tree();
void _select();
diff --git a/tools/editor/script_create_dialog.cpp b/tools/editor/script_create_dialog.cpp
index 62d5c7cd84..da01cdefe5 100644
--- a/tools/editor/script_create_dialog.cpp
+++ b/tools/editor/script_create_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "script_create_dialog.h"
+
#include "script_language.h"
#include "globals.h"
#include "io/resource_saver.h"
@@ -38,7 +39,7 @@ void ScriptCreateDialog::config(const String& p_base_name,const String&p_base_pa
class_name->set_text("");
parent_name->set_text(p_base_name);
if (p_base_path!="") {
- initial_bp=p_base_path.basename();
+ initial_bp=p_base_path.get_basename();
file_path->set_text(initial_bp+"."+ScriptServer::get_language( language_menu->get_selected() )->get_extension());
} else {
initial_bp="";
@@ -96,8 +97,20 @@ void ScriptCreateDialog::_class_name_changed(const String& p_name) {
void ScriptCreateDialog::ok_pressed() {
- if (class_name->is_editable() && !_validate(class_name->get_text())) {
+ if (create_new){
+ _create_new();
+ } else {
+ _load_exist();
+ }
+
+ create_new=true;
+ _update_controls();
+
+}
+
+void ScriptCreateDialog::_create_new() {
+ if (class_name->is_editable() && !_validate(class_name->get_text())) {
alert->set_text(TTR("Class name is invalid!"));
alert->popup_centered_minsize();
return;
@@ -105,21 +118,14 @@ void ScriptCreateDialog::ok_pressed() {
if (!_validate(parent_name->get_text())) {
alert->set_text(TTR("Parent class name is invalid!"));
alert->popup_centered_minsize();
-
return;
-
}
-
String cname;
if (class_name->is_editable())
cname=class_name->get_text();
-
-
-
Ref<Script> scr = ScriptServer::get_language( language_menu->get_selected() )->get_template(cname,parent_name->get_text());
- //scr->set_source_code(text);
String selected_language = language_menu->get_item_text(language_menu->get_selected());
editor_settings->set_last_selected_language(selected_language);
@@ -127,34 +133,40 @@ void ScriptCreateDialog::ok_pressed() {
if (cname!="")
scr->set_name(cname);
-
if (!internal->is_pressed()) {
-
-
- String lpath = Globals::get_singleton()->localize_path(file_path->get_text());
+ String lpath = GlobalConfig::get_singleton()->localize_path(file_path->get_text());
scr->set_path(lpath);
if (!path_valid) {
-
alert->set_text(TTR("Invalid path!"));
alert->popup_centered_minsize();
return;
-
}
Error err = ResourceSaver::save(lpath,scr,ResourceSaver::FLAG_CHANGE_PATH);
if (err!=OK) {
-
alert->set_text(TTR("Could not create script in filesystem."));
alert->popup_centered_minsize();
return;
}
- //scr->set_path(lpath);
- //EditorFileSystem::get_singleton()->update_file(lpath,scr->get_type());
+ }
+ hide();
+ emit_signal("script_created",scr);
+
+}
+void ScriptCreateDialog::_load_exist() {
+
+ String path=file_path->get_text();
+ RES p_script = ResourceLoader::load(path, "Script");
+ if (p_script.is_null()) {
+ alert->get_ok()->set_text(TTR("Ugh"));
+ alert->set_text(vformat(TTR("Error loading script from %s"), path));
+ alert->popup_centered_minsize();
+ return;
}
hide();
- emit_signal("script_created",scr);
+ emit_signal("script_created",p_script.get_ref_ptr());
}
@@ -166,10 +178,35 @@ void ScriptCreateDialog::_lang_changed(int l) {
} else {
class_name->set_editable(false);
}
- if (file_path->get_text().basename()==initial_bp) {
- file_path->set_text(initial_bp+"."+ScriptServer::get_language( l )->get_extension());
- _path_changed(file_path->get_text());
+
+ String selected_ext="."+ScriptServer::get_language( l )->get_extension();
+ String path=file_path->get_text();
+ String extension="";
+ if (path.find(".")>=0) {
+ extension=path.get_extension();
+ }
+
+ if (extension.length()==0) {
+ // add extension if none
+ path+=selected_ext;
+ _path_changed(path);
+ } else {
+ // change extension by selected language
+ List<String> extensions;
+ // get all possible extensions for script
+ for (int l=0;l<language_menu->get_item_count();l++) {
+ ScriptServer::get_language( l )->get_recognized_extensions(&extensions);
+ }
+
+ for(List<String>::Element *E=extensions.front();E;E=E->next()) {
+ if (E->get().nocasecmp_to(extension)==0) {
+ path=path.get_basename()+selected_ext;
+ _path_changed(path);
+ break;
+ }
+ }
}
+ file_path->set_text(path);
_class_name_changed(class_name->get_text());
}
@@ -191,8 +228,10 @@ void ScriptCreateDialog::_browse_path() {
file_browse->clear_filters();
List<String> extensions;
- int l=language_menu->get_selected();
- ScriptServer::get_language( l )->get_recognized_extensions(&extensions);
+ // get all possible extensions for script
+ for (int l=0;l<language_menu->get_item_count();l++) {
+ ScriptServer::get_language( l )->get_recognized_extensions(&extensions);
+ }
for(List<String>::Element *E=extensions.front();E;E=E->next()) {
file_browse->add_filter("*."+E->get());
@@ -205,7 +244,7 @@ void ScriptCreateDialog::_browse_path() {
void ScriptCreateDialog::_file_selected(const String& p_file) {
- String p = Globals::get_singleton()->localize_path(p_file);
+ String p = GlobalConfig::get_singleton()->localize_path(p_file);
file_path->set_text(p);
_path_changed(p);
@@ -224,7 +263,7 @@ void ScriptCreateDialog::_path_changed(const String& p_path) {
}
- p = Globals::get_singleton()->localize_path(p);
+ p = GlobalConfig::get_singleton()->localize_path(p);
if (!p.begins_with("res://")) {
path_error_label->set_text(TTR("Path is not local"));
@@ -246,58 +285,66 @@ void ScriptCreateDialog::_path_changed(const String& p_path) {
memdelete(d);
}
-
-
FileAccess *f = FileAccess::create(FileAccess::ACCESS_RESOURCES);
-
- if (f->file_exists(p)) {
-
- path_error_label->set_text(TTR("File exists"));
- path_error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8));
- memdelete(f);
- return;
- }
-
+ create_new=!f->file_exists(p);
memdelete(f);
- String extension=p.extension();
+ String extension=p.get_extension();
List<String> extensions;
- int l=language_menu->get_selected();
- ScriptServer::get_language( l )->get_recognized_extensions(&extensions);
+ // get all possible extensions for script
+ for (int l=0;l<language_menu->get_item_count();l++) {
+ ScriptServer::get_language( l )->get_recognized_extensions(&extensions);
+ }
bool found=false;
+ int index=0;
for(List<String>::Element *E=extensions.front();E;E=E->next()) {
if (E->get().nocasecmp_to(extension)==0) {
+ language_menu->select(index); // change Language option by extension
found=true;
break;
}
+ index++;
}
if (!found) {
-
path_error_label->set_text(TTR("Invalid extension"));
path_error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8));
return;
}
+ _update_controls();
- path_error_label->set_text(TTR("Valid path"));
path_error_label->add_color_override("font_color",Color(0,1.0,0.8,0.8));
path_valid=true;
}
+void ScriptCreateDialog::_update_controls() {
+
+ if (create_new) {
+ path_error_label->set_text(TTR("Create new script"));
+ get_ok()->set_text(TTR("Create"));
+ } else {
+ path_error_label->set_text(TTR("Load existing script"));
+ get_ok()->set_text(TTR("Load"));
+ }
+ parent_name->set_editable(create_new);
+ internal->set_disabled(!create_new);
+
+}
+
void ScriptCreateDialog::_bind_methods() {
- ObjectTypeDB::bind_method("_class_name_changed",&ScriptCreateDialog::_class_name_changed);
- ObjectTypeDB::bind_method("_lang_changed",&ScriptCreateDialog::_lang_changed);
- ObjectTypeDB::bind_method("_built_in_pressed",&ScriptCreateDialog::_built_in_pressed);
- ObjectTypeDB::bind_method("_browse_path",&ScriptCreateDialog::_browse_path);
- ObjectTypeDB::bind_method("_file_selected",&ScriptCreateDialog::_file_selected);
- ObjectTypeDB::bind_method("_path_changed",&ScriptCreateDialog::_path_changed);
+ ClassDB::bind_method("_class_name_changed",&ScriptCreateDialog::_class_name_changed);
+ ClassDB::bind_method("_lang_changed",&ScriptCreateDialog::_lang_changed);
+ ClassDB::bind_method("_built_in_pressed",&ScriptCreateDialog::_built_in_pressed);
+ ClassDB::bind_method("_browse_path",&ScriptCreateDialog::_browse_path);
+ ClassDB::bind_method("_file_selected",&ScriptCreateDialog::_file_selected);
+ ClassDB::bind_method("_path_changed",&ScriptCreateDialog::_path_changed);
ADD_SIGNAL(MethodInfo("script_created",PropertyInfo(Variant::OBJECT,"script",PROPERTY_HINT_RESOURCE_TYPE,"Script")));
}
@@ -307,7 +354,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+ //set_child_rect(vb);
class_name = memnew( LineEdit );
@@ -376,7 +423,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
set_size(Size2(200,150));
set_hide_on_ok(false);
- set_title(TTR("Create Node Script"));
+ set_title(TTR("Attach Node Script"));
file_browse = memnew( EditorFileDialog );
file_browse->connect("file_selected",this,"_file_selected");
@@ -385,4 +432,6 @@ ScriptCreateDialog::ScriptCreateDialog() {
alert = memnew( AcceptDialog );
add_child(alert);
_lang_changed(0);
+
+ create_new=true;
}
diff --git a/tools/editor/script_create_dialog.h b/tools/editor/script_create_dialog.h
index c71ea16d39..df16efc73c 100644
--- a/tools/editor/script_create_dialog.h
+++ b/tools/editor/script_create_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -37,7 +37,7 @@
#include "scene/gui/check_button.h"
class ScriptCreateDialog : public ConfirmationDialog {
- OBJ_TYPE(ScriptCreateDialog,ConfirmationDialog);
+ GDCLASS(ScriptCreateDialog,ConfirmationDialog);
LineEdit *class_name;
Label *error_label;
@@ -50,6 +50,7 @@ class ScriptCreateDialog : public ConfirmationDialog {
VBoxContainer *path_vb;
AcceptDialog *alert;
bool path_valid;
+ bool create_new;
String initial_bp;
EditorSettings *editor_settings;
@@ -62,6 +63,9 @@ class ScriptCreateDialog : public ConfirmationDialog {
void _browse_path();
void _file_selected(const String& p_file);
virtual void ok_pressed();
+ void _create_new();
+ void _load_exist();
+ void _update_controls();
protected:
static void _bind_methods();
diff --git a/tools/editor/script_editor_debugger.cpp b/tools/editor/script_editor_debugger.cpp
index c8170ca9a3..d5cca06820 100644
--- a/tools/editor/script_editor_debugger.cpp
+++ b/tools/editor/script_editor_debugger.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "script_editor_debugger.h"
+
#include "scene/gui/separator.h"
#include "scene/gui/label.h"
#include "scene/gui/split_container.h"
@@ -46,7 +47,7 @@
class ScriptEditorDebuggerVariables : public Object {
- OBJ_TYPE( ScriptEditorDebuggerVariables, Object );
+ GDCLASS( ScriptEditorDebuggerVariables, Object );
List<PropertyInfo> props;
Map<StringName,Variant> values;
@@ -114,7 +115,7 @@ public:
class ScriptEditorDebuggerInspectedObject : public Object {
- OBJ_TYPE( ScriptEditorDebuggerInspectedObject, Object);
+ GDCLASS( ScriptEditorDebuggerInspectedObject, Object);
@@ -177,7 +178,7 @@ void ScriptEditorDebugger::debug_next() {
ERR_FAIL_COND(!breaked);
ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected());
+ ERR_FAIL_COND(!connection->is_connected_to_host());
Array msg;
msg.push_back("next");
ppeer->put_var(msg);
@@ -189,7 +190,7 @@ void ScriptEditorDebugger::debug_step() {
ERR_FAIL_COND(!breaked);
ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected());
+ ERR_FAIL_COND(!connection->is_connected_to_host());
Array msg;
msg.push_back("step");
@@ -202,7 +203,7 @@ void ScriptEditorDebugger::debug_break() {
ERR_FAIL_COND(breaked);
ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected());
+ ERR_FAIL_COND(!connection->is_connected_to_host());
Array msg;
msg.push_back("break");
@@ -214,7 +215,7 @@ void ScriptEditorDebugger::debug_continue() {
ERR_FAIL_COND(!breaked);
ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected());
+ ERR_FAIL_COND(!connection->is_connected_to_host());
OS::get_singleton()->enable_for_stealing_focus(EditorNode::get_singleton()->get_child_process_id());
@@ -294,7 +295,7 @@ void ScriptEditorDebugger::_scene_tree_property_select_object(ObjectID p_object)
void ScriptEditorDebugger::_scene_tree_request() {
ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected());
+ ERR_FAIL_COND(!connection->is_connected_to_host());
Array msg;
msg.push_back("request_scene_tree");
@@ -305,7 +306,7 @@ void ScriptEditorDebugger::_scene_tree_request() {
void ScriptEditorDebugger::_video_mem_request() {
ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected());
+ ERR_FAIL_COND(!connection->is_connected_to_host());
Array msg;
msg.push_back("request_video_mem");
@@ -520,7 +521,7 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
d["frame"]=i;
s->set_metadata(0,d);
-// String line = itos(i)+" - "+String(d["file"])+":"+itos(d["line"])+" - at func: "+d["function"];
+ //String line = itos(i)+" - "+String(d["file"])+":"+itos(d["line"])+" - at func: "+d["function"];
String line = itos(i)+" - "+String(d["file"])+":"+itos(d["line"]);
s->set_text(0,line);
@@ -580,8 +581,7 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
String t = p_data[i];
//LOG
- if (EditorNode::get_log()->is_hidden()) {
- log_forced_visible=true;
+ if (!EditorNode::get_log()->is_visible()) {
if (EditorNode::get_singleton()->are_bottom_panels_hidden()) {
EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log());
}
@@ -826,7 +826,7 @@ void ScriptEditorDebugger::_performance_draw() {
Ref<StyleBox> graph_sb = get_stylebox("normal","TextEdit");
Ref<Font> graph_font = get_font("font","TextEdit");
- int cols = Math::ceil(Math::sqrt(which.size()));
+ int cols = Math::ceil(Math::sqrt((float)which.size()));
int rows = (which.size()+1)/cols;
if (which.size()==1)
rows=1;
@@ -906,7 +906,7 @@ void ScriptEditorDebugger::_notification(int p_what) {
inspect_scene_tree_timeout-=get_process_delta_time();
if (inspect_scene_tree_timeout<0) {
inspect_scene_tree_timeout=EditorSettings::get_singleton()->get("debugger/scene_tree_refresh_interval");
- if (inspect_scene_tree->is_visible()) {
+ if (inspect_scene_tree->is_visible_in_tree()) {
_scene_tree_request();
if (inspected_object_id!=0) {
@@ -922,7 +922,7 @@ void ScriptEditorDebugger::_notification(int p_what) {
inspect_edited_object_timeout-=get_process_delta_time();
if (inspect_edited_object_timeout<0) {
inspect_edited_object_timeout=EditorSettings::get_singleton()->get("debugger/remote_inspect_refresh_interval");
- if (inspect_scene_tree->is_visible() && inspected_object_id) {
+ if (inspect_scene_tree->is_visible_in_tree() && inspected_object_id) {
//take the chance and re-inspect selected object
Array msg;
msg.push_back("inspect_object");
@@ -957,7 +957,6 @@ void ScriptEditorDebugger::_notification(int p_what) {
break;
EditorNode::get_log()->add_message("** Debug Process Started **");
- log_forced_visible=false;
ppeer->set_stream_peer(connection);
@@ -995,7 +994,7 @@ void ScriptEditorDebugger::_notification(int p_what) {
}
};
- if (!connection->is_connected()) {
+ if (!connection->is_connected_to_host()) {
stop();
editor->notify_child_process_exited(); //somehow, exited
break;
@@ -1089,11 +1088,11 @@ void ScriptEditorDebugger::start() {
stop();
- if (!EditorNode::get_log()->is_visible()) {
- EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log());
+ if (is_visible_in_tree()) {
+ EditorNode::get_singleton()->make_bottom_panel_item_visible(this);
}
- uint16_t port = GLOBAL_DEF("debug/remote_port",6007);
+ uint16_t port = GLOBAL_GET("network/debug/remote_port");
perf_history.clear();
for(int i=0;i<Performance::MONITOR_MAX;i++) {
@@ -1132,13 +1131,6 @@ void ScriptEditorDebugger::stop(){
pending_in_queue=0;
message.clear();
- if (log_forced_visible) {
- //EditorNode::get_singleton()->make_bottom_panel_item_visible(this);
- if (EditorNode::get_log()->is_visible())
- EditorNode::get_singleton()->hide_bottom_panel();
- log_forced_visible=false;
- }
-
node_path_cache.clear();
res_path_cache.clear();
profiler_signature.clear();
@@ -1155,7 +1147,7 @@ void ScriptEditorDebugger::stop(){
if (hide_on_stop) {
- if (is_visible())
+ if (is_visible_in_tree())
EditorNode::get_singleton()->hide_bottom_panel();
emit_signal("show_debugger",false);
}
@@ -1192,12 +1184,12 @@ void ScriptEditorDebugger::_profiler_activate(bool p_enable) {
void ScriptEditorDebugger::_profiler_seeked() {
- if (!connection.is_valid() || !connection->is_connected())
+ if (!connection.is_valid() || !connection->is_connected_to_host())
return;
if (breaked)
return;
- debug_break();;
+ debug_break();
}
@@ -1214,7 +1206,7 @@ void ScriptEditorDebugger::_stack_dump_frame_selected() {
emit_signal("goto_script_line",s,int(d["line"])-1);
ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected());
+ ERR_FAIL_COND(!connection->is_connected_to_host());
///
Array msg;
@@ -1629,7 +1621,7 @@ void ScriptEditorDebugger::set_hide_on_stop(bool p_hide) {
void ScriptEditorDebugger::_paused() {
ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected());
+ ERR_FAIL_COND(!connection->is_connected_to_host());
if (!breaked && EditorNode::get_singleton()->get_pause_button()->is_pressed()) {
debug_break();
@@ -1643,39 +1635,39 @@ void ScriptEditorDebugger::_paused() {
void ScriptEditorDebugger::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_stack_dump_frame_selected"),&ScriptEditorDebugger::_stack_dump_frame_selected);
- ObjectTypeDB::bind_method(_MD("debug_next"),&ScriptEditorDebugger::debug_next);
- ObjectTypeDB::bind_method(_MD("debug_step"),&ScriptEditorDebugger::debug_step);
- ObjectTypeDB::bind_method(_MD("debug_break"),&ScriptEditorDebugger::debug_break);
- ObjectTypeDB::bind_method(_MD("debug_continue"),&ScriptEditorDebugger::debug_continue);
- ObjectTypeDB::bind_method(_MD("_output_clear"),&ScriptEditorDebugger::_output_clear);
- ObjectTypeDB::bind_method(_MD("_performance_draw"),&ScriptEditorDebugger::_performance_draw);
- ObjectTypeDB::bind_method(_MD("_performance_select"),&ScriptEditorDebugger::_performance_select);
- ObjectTypeDB::bind_method(_MD("_scene_tree_request"),&ScriptEditorDebugger::_scene_tree_request);
- ObjectTypeDB::bind_method(_MD("_video_mem_request"),&ScriptEditorDebugger::_video_mem_request);
- ObjectTypeDB::bind_method(_MD("_live_edit_set"),&ScriptEditorDebugger::_live_edit_set);
- ObjectTypeDB::bind_method(_MD("_live_edit_clear"),&ScriptEditorDebugger::_live_edit_clear);
-
- ObjectTypeDB::bind_method(_MD("_error_selected"),&ScriptEditorDebugger::_error_selected);
- ObjectTypeDB::bind_method(_MD("_error_stack_selected"),&ScriptEditorDebugger::_error_stack_selected);
- ObjectTypeDB::bind_method(_MD("_profiler_activate"),&ScriptEditorDebugger::_profiler_activate);
- ObjectTypeDB::bind_method(_MD("_profiler_seeked"),&ScriptEditorDebugger::_profiler_seeked);
-
- ObjectTypeDB::bind_method(_MD("_paused"),&ScriptEditorDebugger::_paused);
-
- ObjectTypeDB::bind_method(_MD("_scene_tree_selected"),&ScriptEditorDebugger::_scene_tree_selected);
- ObjectTypeDB::bind_method(_MD("_scene_tree_folded"),&ScriptEditorDebugger::_scene_tree_folded);
-
-
- ObjectTypeDB::bind_method(_MD("live_debug_create_node"),&ScriptEditorDebugger::live_debug_create_node);
- ObjectTypeDB::bind_method(_MD("live_debug_instance_node"),&ScriptEditorDebugger::live_debug_instance_node);
- ObjectTypeDB::bind_method(_MD("live_debug_remove_node"),&ScriptEditorDebugger::live_debug_remove_node);
- ObjectTypeDB::bind_method(_MD("live_debug_remove_and_keep_node"),&ScriptEditorDebugger::live_debug_remove_and_keep_node);
- ObjectTypeDB::bind_method(_MD("live_debug_restore_node"),&ScriptEditorDebugger::live_debug_restore_node);
- ObjectTypeDB::bind_method(_MD("live_debug_duplicate_node"),&ScriptEditorDebugger::live_debug_duplicate_node);
- ObjectTypeDB::bind_method(_MD("live_debug_reparent_node"),&ScriptEditorDebugger::live_debug_reparent_node);
- ObjectTypeDB::bind_method(_MD("_scene_tree_property_select_object"),&ScriptEditorDebugger::_scene_tree_property_select_object);
- ObjectTypeDB::bind_method(_MD("_scene_tree_property_value_edited"),&ScriptEditorDebugger::_scene_tree_property_value_edited);
+ ClassDB::bind_method(_MD("_stack_dump_frame_selected"),&ScriptEditorDebugger::_stack_dump_frame_selected);
+ ClassDB::bind_method(_MD("debug_next"),&ScriptEditorDebugger::debug_next);
+ ClassDB::bind_method(_MD("debug_step"),&ScriptEditorDebugger::debug_step);
+ ClassDB::bind_method(_MD("debug_break"),&ScriptEditorDebugger::debug_break);
+ ClassDB::bind_method(_MD("debug_continue"),&ScriptEditorDebugger::debug_continue);
+ ClassDB::bind_method(_MD("_output_clear"),&ScriptEditorDebugger::_output_clear);
+ ClassDB::bind_method(_MD("_performance_draw"),&ScriptEditorDebugger::_performance_draw);
+ ClassDB::bind_method(_MD("_performance_select"),&ScriptEditorDebugger::_performance_select);
+ ClassDB::bind_method(_MD("_scene_tree_request"),&ScriptEditorDebugger::_scene_tree_request);
+ ClassDB::bind_method(_MD("_video_mem_request"),&ScriptEditorDebugger::_video_mem_request);
+ ClassDB::bind_method(_MD("_live_edit_set"),&ScriptEditorDebugger::_live_edit_set);
+ ClassDB::bind_method(_MD("_live_edit_clear"),&ScriptEditorDebugger::_live_edit_clear);
+
+ ClassDB::bind_method(_MD("_error_selected"),&ScriptEditorDebugger::_error_selected);
+ ClassDB::bind_method(_MD("_error_stack_selected"),&ScriptEditorDebugger::_error_stack_selected);
+ ClassDB::bind_method(_MD("_profiler_activate"),&ScriptEditorDebugger::_profiler_activate);
+ ClassDB::bind_method(_MD("_profiler_seeked"),&ScriptEditorDebugger::_profiler_seeked);
+
+ ClassDB::bind_method(_MD("_paused"),&ScriptEditorDebugger::_paused);
+
+ ClassDB::bind_method(_MD("_scene_tree_selected"),&ScriptEditorDebugger::_scene_tree_selected);
+ ClassDB::bind_method(_MD("_scene_tree_folded"),&ScriptEditorDebugger::_scene_tree_folded);
+
+
+ ClassDB::bind_method(_MD("live_debug_create_node"),&ScriptEditorDebugger::live_debug_create_node);
+ ClassDB::bind_method(_MD("live_debug_instance_node"),&ScriptEditorDebugger::live_debug_instance_node);
+ ClassDB::bind_method(_MD("live_debug_remove_node"),&ScriptEditorDebugger::live_debug_remove_node);
+ ClassDB::bind_method(_MD("live_debug_remove_and_keep_node"),&ScriptEditorDebugger::live_debug_remove_and_keep_node);
+ ClassDB::bind_method(_MD("live_debug_restore_node"),&ScriptEditorDebugger::live_debug_restore_node);
+ ClassDB::bind_method(_MD("live_debug_duplicate_node"),&ScriptEditorDebugger::live_debug_duplicate_node);
+ ClassDB::bind_method(_MD("live_debug_reparent_node"),&ScriptEditorDebugger::live_debug_reparent_node);
+ ClassDB::bind_method(_MD("_scene_tree_property_select_object"),&ScriptEditorDebugger::_scene_tree_property_select_object);
+ ClassDB::bind_method(_MD("_scene_tree_property_value_edited"),&ScriptEditorDebugger::_scene_tree_property_value_edited);
ADD_SIGNAL(MethodInfo("goto_script_line"));
ADD_SIGNAL(MethodInfo("breaked",PropertyInfo(Variant::BOOL,"reallydid"),PropertyInfo(Variant::BOOL,"can_debug")));
@@ -1980,8 +1972,6 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor){
msgdialog = memnew( AcceptDialog );
add_child(msgdialog);
- log_forced_visible=false;
-
p_editor->get_undo_redo()->set_method_notify_callback(_method_changeds,this);
p_editor->get_undo_redo()->set_property_notify_callback(_property_changeds,this);
live_debug=false;
@@ -1997,7 +1987,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor){
ScriptEditorDebugger::~ScriptEditorDebugger() {
-// inspector->edit(NULL);
+ //inspector->edit(NULL);
memdelete(variables);
ppeer->set_stream_peer(Ref<StreamPeer>());
diff --git a/tools/editor/script_editor_debugger.h b/tools/editor/script_editor_debugger.h
index c4a7cea1b7..a02934bbaf 100644
--- a/tools/editor/script_editor_debugger.h
+++ b/tools/editor/script_editor_debugger.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -55,7 +55,7 @@ class ScriptEditorDebuggerInspectedObject;
class ScriptEditorDebugger : public Control {
- OBJ_TYPE( ScriptEditorDebugger, Control );
+ GDCLASS( ScriptEditorDebugger, Control );
AcceptDialog *msgdialog;
@@ -96,7 +96,6 @@ class ScriptEditorDebugger : public Control {
TabContainer *tabs;
LineEdit *reason;
- bool log_forced_visible;
ScriptEditorDebuggerVariables *variables;
Button *step;
diff --git a/tools/editor/settings_config_dialog.cpp b/tools/editor/settings_config_dialog.cpp
index 50989ea5cb..31cbcee5ae 100644
--- a/tools/editor/settings_config_dialog.cpp
+++ b/tools/editor/settings_config_dialog.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "settings_config_dialog.h"
+
#include "editor_settings.h"
#include "scene/gui/margin_container.h"
#include "globals.h"
@@ -55,7 +56,7 @@ void EditorSettingsDialog::_settings_property_edited(const String& p_name) {
// Small usability workaround to update the text color settings when the
// color theme is changed
- if (full_name == "text_editor/color_theme") {
+ if (full_name == "text_editor/theme/color_theme") {
property_editor->get_property_editor()->update_tree();
}
}
@@ -288,16 +289,16 @@ void EditorSettingsDialog::_press_a_key_confirm() {
void EditorSettingsDialog::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("_settings_save"),&EditorSettingsDialog::_settings_save);
- ObjectTypeDB::bind_method(_MD("_settings_changed"),&EditorSettingsDialog::_settings_changed);
- ObjectTypeDB::bind_method(_MD("_settings_property_edited"),&EditorSettingsDialog::_settings_property_edited);
- ObjectTypeDB::bind_method(_MD("_clear_search_box"),&EditorSettingsDialog::_clear_search_box);
- ObjectTypeDB::bind_method(_MD("_clear_shortcut_search_box"),&EditorSettingsDialog::_clear_shortcut_search_box);
- ObjectTypeDB::bind_method(_MD("_shortcut_button_pressed"),&EditorSettingsDialog::_shortcut_button_pressed);
- ObjectTypeDB::bind_method(_MD("_filter_shortcuts"),&EditorSettingsDialog::_filter_shortcuts);
- ObjectTypeDB::bind_method(_MD("_update_shortcuts"),&EditorSettingsDialog::_update_shortcuts);
- ObjectTypeDB::bind_method(_MD("_press_a_key_confirm"),&EditorSettingsDialog::_press_a_key_confirm);
- ObjectTypeDB::bind_method(_MD("_wait_for_key"),&EditorSettingsDialog::_wait_for_key);
+ ClassDB::bind_method(_MD("_settings_save"),&EditorSettingsDialog::_settings_save);
+ ClassDB::bind_method(_MD("_settings_changed"),&EditorSettingsDialog::_settings_changed);
+ ClassDB::bind_method(_MD("_settings_property_edited"),&EditorSettingsDialog::_settings_property_edited);
+ ClassDB::bind_method(_MD("_clear_search_box"),&EditorSettingsDialog::_clear_search_box);
+ ClassDB::bind_method(_MD("_clear_shortcut_search_box"),&EditorSettingsDialog::_clear_shortcut_search_box);
+ ClassDB::bind_method(_MD("_shortcut_button_pressed"),&EditorSettingsDialog::_shortcut_button_pressed);
+ ClassDB::bind_method(_MD("_filter_shortcuts"),&EditorSettingsDialog::_filter_shortcuts);
+ ClassDB::bind_method(_MD("_update_shortcuts"),&EditorSettingsDialog::_update_shortcuts);
+ ClassDB::bind_method(_MD("_press_a_key_confirm"),&EditorSettingsDialog::_press_a_key_confirm);
+ ClassDB::bind_method(_MD("_wait_for_key"),&EditorSettingsDialog::_wait_for_key);
}
@@ -307,7 +308,7 @@ EditorSettingsDialog::EditorSettingsDialog() {
tabs = memnew( TabContainer );
add_child(tabs);
- set_child_rect(tabs);
+ //set_child_rect(tabs);
VBoxContainer *vbc = memnew( VBoxContainer );
tabs->add_child(vbc);
@@ -380,7 +381,7 @@ EditorSettingsDialog::EditorSettingsDialog() {
l->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_BEGIN,30);
press_a_key_label=l;
press_a_key->add_child(l);
- press_a_key->connect("input_event",this,"_wait_for_key");
+ press_a_key->connect("gui_input",this,"_wait_for_key");
press_a_key->connect("confirmed",this,"_press_a_key_confirm");
//Button *load = memnew( Button );
diff --git a/tools/editor/settings_config_dialog.h b/tools/editor/settings_config_dialog.h
index 3b91c7f019..17a05c27d3 100644
--- a/tools/editor/settings_config_dialog.h
+++ b/tools/editor/settings_config_dialog.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -36,7 +36,7 @@
class EditorSettingsDialog : public AcceptDialog {
- OBJ_TYPE(EditorSettingsDialog,AcceptDialog);
+ GDCLASS(EditorSettingsDialog,AcceptDialog);
diff --git a/tools/editor/spatial_editor_gizmos.cpp b/tools/editor/spatial_editor_gizmos.cpp
index 84803eb6db..c670245282 100644
--- a/tools/editor/spatial_editor_gizmos.cpp
+++ b/tools/editor/spatial_editor_gizmos.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -27,6 +27,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "spatial_editor_gizmos.h"
+
#include "geometry.h"
#include "scene/3d/camera.h"
#include "scene/resources/surface_tool.h"
@@ -41,6 +42,8 @@
// Keep small children away from this file.
// It's so ugly it will eat them alive
+
+
#define HANDLE_HALF_SIZE 0.05
void EditorSpatialGizmo::clear() {
@@ -82,7 +85,6 @@ void EditorSpatialGizmo::Instance::create_instance(Spatial *p_base) {
if (extra_margin)
VS::get_singleton()->instance_set_extra_visibility_margin(instance,1);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(instance,VS::SHADOW_CASTING_SETTING_OFF);
- VS::get_singleton()->instance_geometry_set_flag(instance,VS::INSTANCE_FLAG_RECEIVE_SHADOWS,false);
VS::get_singleton()->instance_set_layer_mask(instance,1<<SpatialEditorViewport::GIZMO_EDIT_LAYER); //gizmos are 26
}
@@ -116,10 +118,10 @@ void EditorSpatialGizmo::add_lines(const Vector<Vector3> &p_lines, const Ref<Mat
a[Mesh::ARRAY_VERTEX]=p_lines;
- DVector<Color> color;
+ PoolVector<Color> color;
color.resize(p_lines.size());
{
- DVector<Color>::Write w = color.write();
+ PoolVector<Color>::Write w = color.write();
for(int i=0;i<p_lines.size();i++) {
if (is_selected())
w[i]=Color(1,1,1,0.6);
@@ -132,7 +134,7 @@ void EditorSpatialGizmo::add_lines(const Vector<Vector3> &p_lines, const Ref<Mat
a[Mesh::ARRAY_COLOR]=color;
- mesh->add_surface(Mesh::PRIMITIVE_LINES,a);
+ mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES,a);
mesh->surface_set_material(0,p_material);
if (p_billboard) {
@@ -143,7 +145,7 @@ void EditorSpatialGizmo::add_lines(const Vector<Vector3> &p_lines, const Ref<Mat
}
if (md) {
- mesh->set_custom_aabb(AABB(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0));
+ mesh->set_custom_aabb(Rect3(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0));
}
}
@@ -181,7 +183,7 @@ void EditorSpatialGizmo::add_unscaled_billboard(const Ref<Material>& p_material,
a.resize(Mesh::ARRAY_MAX);
a[Mesh::ARRAY_VERTEX]=vs;
a[Mesh::ARRAY_TEX_UV]=uv;
- mesh->add_surface(Mesh::PRIMITIVE_TRIANGLE_FAN,a);
+ mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLE_FAN,a);
mesh->surface_set_material(0,p_material);
if (true) {
@@ -192,7 +194,7 @@ void EditorSpatialGizmo::add_unscaled_billboard(const Ref<Material>& p_material,
}
if (md) {
- mesh->set_custom_aabb(AABB(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0));
+ mesh->set_custom_aabb(Rect3(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0));
}
}
@@ -244,10 +246,11 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi
Array a;
a.resize(VS::ARRAY_MAX);
a[VS::ARRAY_VERTEX]=p_handles;
- DVector<Color> colors;
+ print_line("handles?: "+itos(p_handles.size()));
+ PoolVector<Color> colors;
{
colors.resize(p_handles.size());
- DVector<Color>::Write w=colors.write();
+ PoolVector<Color>::Write w=colors.write();
for(int i=0;i<p_handles.size();i++) {
Color col(1,1,1,1);
@@ -258,7 +261,7 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi
}
a[VS::ARRAY_COLOR]=colors;
- mesh->add_surface(Mesh::PRIMITIVE_POINTS,a);
+ mesh->add_surface_from_arrays(Mesh::PRIMITIVE_POINTS,a);
mesh->surface_set_material(0,SpatialEditorGizmos::singleton->handle2_material);
if (p_billboard) {
@@ -269,7 +272,7 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi
}
if (md) {
- mesh->set_custom_aabb(AABB(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0));
+ mesh->set_custom_aabb(Rect3(Vector3(-md,-md,-md),Vector3(md,md,md)*2.0));
}
}
@@ -283,7 +286,8 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi
Vector<Vector3> normals;
int vtx_idx=0;
-#define ADD_VTX(m_idx);\
+
+#define ADD_VTX(m_idx) \
vertices.push_back( (face_points[m_idx]*HANDLE_HALF_SIZE+p_handles[ih]) );\
normals.push_back( normal_points[m_idx] );\
vtx_idx++;\
@@ -614,14 +618,14 @@ void EditorSpatialGizmo::free(){
void EditorSpatialGizmo::_bind_methods() {
- ObjectTypeDB::bind_method(_MD("add_lines","lines","material:Material","billboard"),&EditorSpatialGizmo::add_lines,DEFVAL(false));
- ObjectTypeDB::bind_method(_MD("add_mesh","mesh:Mesh","billboard","skeleton"),&EditorSpatialGizmo::add_mesh,DEFVAL(false),DEFVAL(RID()));
- ObjectTypeDB::bind_method(_MD("add_collision_segments","segments"),&EditorSpatialGizmo::add_collision_segments);
- ObjectTypeDB::bind_method(_MD("add_collision_triangles","triangles:TriangleMesh"),&EditorSpatialGizmo::add_collision_triangles);
- ObjectTypeDB::bind_method(_MD("add_unscaled_billboard","material:Material","default_scale"),&EditorSpatialGizmo::add_unscaled_billboard,DEFVAL(1));
- ObjectTypeDB::bind_method(_MD("add_handles","handles","billboard","secondary"),&EditorSpatialGizmo::add_handles,DEFVAL(false),DEFVAL(false));
- ObjectTypeDB::bind_method(_MD("set_spatial_node","node:Spatial"),&EditorSpatialGizmo::_set_spatial_node);
- ObjectTypeDB::bind_method(_MD("clear"),&EditorSpatialGizmo::clear);
+ ClassDB::bind_method(_MD("add_lines","lines","material:Material","billboard"),&EditorSpatialGizmo::add_lines,DEFVAL(false));
+ ClassDB::bind_method(_MD("add_mesh","mesh:Mesh","billboard","skeleton"),&EditorSpatialGizmo::add_mesh,DEFVAL(false),DEFVAL(RID()));
+ ClassDB::bind_method(_MD("add_collision_segments","segments"),&EditorSpatialGizmo::add_collision_segments);
+ ClassDB::bind_method(_MD("add_collision_triangles","triangles:TriangleMesh"),&EditorSpatialGizmo::add_collision_triangles);
+ ClassDB::bind_method(_MD("add_unscaled_billboard","material:Material","default_scale"),&EditorSpatialGizmo::add_unscaled_billboard,DEFVAL(1));
+ ClassDB::bind_method(_MD("add_handles","handles","billboard","secondary"),&EditorSpatialGizmo::add_handles,DEFVAL(false),DEFVAL(false));
+ ClassDB::bind_method(_MD("set_spatial_node","node:Spatial"),&EditorSpatialGizmo::_set_spatial_node);
+ ClassDB::bind_method(_MD("clear"),&EditorSpatialGizmo::clear);
BIND_VMETHOD( MethodInfo("redraw"));
BIND_VMETHOD( MethodInfo(Variant::STRING,"get_handle_name",PropertyInfo(Variant::INT,"index")));
@@ -667,9 +671,9 @@ String LightSpatialGizmo::get_handle_name(int p_idx) const {
Variant LightSpatialGizmo::get_handle_value(int p_idx) const{
if (p_idx==0)
- return light->get_parameter(Light::PARAM_RADIUS);
+ return light->get_param(Light::PARAM_RANGE);
if (p_idx==1)
- return light->get_parameter(Light::PARAM_SPOT_ANGLE);
+ return light->get_param(Light::PARAM_SPOT_ANGLE);
return Variant();
}
@@ -727,7 +731,7 @@ void LightSpatialGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_p
if (d<0)
d=0;
- light->set_parameter(Light::PARAM_RADIUS,d);
+ light->set_param(Light::PARAM_RANGE,d);
} else if (light->cast_to<OmniLight>()) {
Plane cp=Plane( gt.origin, p_camera->get_transform().basis.get_axis(2));
@@ -736,15 +740,15 @@ void LightSpatialGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_p
if (cp.intersects_ray(ray_from,ray_dir,&inters)) {
float r = inters.distance_to(gt.origin);
- light->set_parameter(Light::PARAM_RADIUS,r);
+ light->set_param(Light::PARAM_RANGE,r);
}
}
} else if (p_idx==1) {
- float a = _find_closest_angle_to_half_pi_arc(s[0],s[1],light->get_parameter(Light::PARAM_RADIUS),gt);
- light->set_parameter(Light::PARAM_SPOT_ANGLE,CLAMP(a,0.01,89.99));
+ float a = _find_closest_angle_to_half_pi_arc(s[0],s[1],light->get_param(Light::PARAM_RANGE),gt);
+ light->set_param(Light::PARAM_SPOT_ANGLE,CLAMP(a,0.01,89.99));
}
}
@@ -752,21 +756,21 @@ void LightSpatialGizmo::commit_handle(int p_idx,const Variant& p_restore,bool p_
if (p_cancel) {
- light->set_parameter(p_idx==0?Light::PARAM_RADIUS:Light::PARAM_SPOT_ANGLE,p_restore);
+ light->set_param(p_idx==0?Light::PARAM_RANGE:Light::PARAM_SPOT_ANGLE,p_restore);
} else if (p_idx==0) {
UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo();
ur->create_action(TTR("Change Light Radius"));
- ur->add_do_method(light,"set_parameter",Light::PARAM_RADIUS,light->get_parameter(Light::PARAM_RADIUS));
- ur->add_undo_method(light,"set_parameter",Light::PARAM_RADIUS,p_restore);
+ ur->add_do_method(light,"set_param",Light::PARAM_RANGE,light->get_param(Light::PARAM_RANGE));
+ ur->add_undo_method(light,"set_param",Light::PARAM_RANGE,p_restore);
ur->commit_action();
} else if (p_idx==1) {
UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo();
ur->create_action(TTR("Change Light Radius"));
- ur->add_do_method(light,"set_parameter",Light::PARAM_SPOT_ANGLE,light->get_parameter(Light::PARAM_SPOT_ANGLE));
- ur->add_undo_method(light,"set_parameter",Light::PARAM_SPOT_ANGLE,p_restore);
+ ur->add_do_method(light,"set_param",Light::PARAM_SPOT_ANGLE,light->get_param(Light::PARAM_SPOT_ANGLE));
+ ur->add_undo_method(light,"set_param",Light::PARAM_SPOT_ANGLE,p_restore);
ur->commit_action();
}
@@ -798,8 +802,8 @@ void LightSpatialGizmo::redraw() {
for(int i = 0; i < arrow_sides ; i++) {
- Matrix3 ma(Vector3(0,0,1),Math_PI*2*float(i)/arrow_sides);
- Matrix3 mb(Vector3(0,0,1),Math_PI*2*float(i+1)/arrow_sides);
+ Basis ma(Vector3(0,0,1),Math_PI*2*float(i)/arrow_sides);
+ Basis mb(Vector3(0,0,1),Math_PI*2*float(i+1)/arrow_sides);
for(int j=1;j<arrow_points-1;j++) {
@@ -829,14 +833,14 @@ void LightSpatialGizmo::redraw() {
OmniLight *on = light->cast_to<OmniLight>();
- float r = on->get_parameter(Light::PARAM_RADIUS);
+ float r = on->get_param(Light::PARAM_RANGE);
Vector<Vector3> points;
for(int i=0;i<=360;i++) {
- float ra=Math::deg2rad(i);
- float rb=Math::deg2rad(i+1);
+ float ra=Math::deg2rad((float)i);
+ float rb=Math::deg2rad((float)i+1);
Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*r;
Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*r;
@@ -869,16 +873,16 @@ void LightSpatialGizmo::redraw() {
Vector<Vector3> points;
SpotLight *on = light->cast_to<SpotLight>();
- float r = on->get_parameter(Light::PARAM_RADIUS);
- float w = r*Math::sin(Math::deg2rad(on->get_parameter(Light::PARAM_SPOT_ANGLE)));
- float d = r*Math::cos(Math::deg2rad(on->get_parameter(Light::PARAM_SPOT_ANGLE)));
+ float r = on->get_param(Light::PARAM_RANGE);
+ float w = r*Math::sin(Math::deg2rad(on->get_param(Light::PARAM_SPOT_ANGLE)));
+ float d = r*Math::cos(Math::deg2rad(on->get_param(Light::PARAM_SPOT_ANGLE)));
for(int i=0;i<360;i++) {
- float ra=Math::deg2rad(i);
- float rb=Math::deg2rad(i+1);
+ float ra=Math::deg2rad((float)i);
+ float rb=Math::deg2rad((float)i+1);
Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*w;
Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*w;
@@ -951,28 +955,6 @@ LightSpatialGizmo::LightSpatialGizmo(Light* p_light){
set_spatial_node(p_light);
}
-//////
-
-void ListenerSpatialGizmo::redraw() {
-
- clear();
-
- add_unscaled_billboard(SpatialEditorGizmos::singleton->listener_icon, 0.05);
-
- add_mesh(SpatialEditorGizmos::singleton->listener_line_mesh);
- Vector<Vector3> cursor_points;
- cursor_points.push_back(Vector3(0, 0, 0));
- cursor_points.push_back(Vector3(0, 0, -1.0));
- add_collision_segments(cursor_points);
-
-}
-
-ListenerSpatialGizmo::ListenerSpatialGizmo(Listener* p_listener){
-
- set_spatial_node(p_listener);
- listener = p_listener;
-}
-
//////
@@ -1217,7 +1199,7 @@ void SkeletonSpatialGizmo::redraw() {
weights[0]=1;
- AABB aabb;
+ Rect3 aabb;
Color bonecolor = Color(1.0,0.4,0.4,0.3);
Color rootcolor = Color(0.4,1.0,0.4,0.1);
@@ -1389,32 +1371,6 @@ SkeletonSpatialGizmo::SkeletonSpatialGizmo(Skeleton* p_skel) {
set_spatial_node(p_skel);
}
-/////
-
-
-void SpatialPlayerSpatialGizmo::redraw() {
-
- clear();
- if (splayer->cast_to<SpatialStreamPlayer>()) {
-
- add_unscaled_billboard(SpatialEditorGizmos::singleton->stream_player_icon,0.05);
-
- } else if (splayer->cast_to<SpatialSamplePlayer>()) {
-
- add_unscaled_billboard(SpatialEditorGizmos::singleton->sample_player_icon,0.05);
-
- }
-
-}
-
-SpatialPlayerSpatialGizmo::SpatialPlayerSpatialGizmo(SpatialPlayer* p_splayer){
-
- set_spatial_node(p_splayer);
- splayer=p_splayer;
-}
-
-
-/////
void RoomSpatialGizmo::redraw() {
@@ -1423,11 +1379,11 @@ void RoomSpatialGizmo::redraw() {
Ref<RoomBounds> roomie = room->get_room();
if (roomie.is_null())
return;
- DVector<Face3> faces = roomie->get_geometry_hint();
+ PoolVector<Face3> faces = roomie->get_geometry_hint();
Vector<Vector3> lines;
int fc=faces.size();
- DVector<Face3>::Read r =faces.read();
+ PoolVector<Face3>::Read r =faces.read();
Map<_EdgeKey,Vector3> edge_map;
@@ -1541,7 +1497,7 @@ void RayCastSpatialGizmo::redraw() {
}
-RayCastSpatialGizmo::RayCastSpatialGizmo(RayCast* p_raycast){
+RayCastSpatialGizmo::RayCastSpatialGizmo(RayCast* p_raycast) {
set_spatial_node(p_raycast);
raycast=p_raycast;
@@ -1563,8 +1519,8 @@ void VehicleWheelSpatialGizmo::redraw() {
const int skip=10;
for(int i=0;i<=360;i+=skip) {
- float ra=Math::deg2rad(i);
- float rb=Math::deg2rad(i+skip);
+ float ra=Math::deg2rad((float)i);
+ float rb=Math::deg2rad((float)i+skip);
Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*r;
Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*r;
@@ -1870,8 +1826,8 @@ void CollisionShapeSpatialGizmo::redraw(){
for(int i=0;i<=360;i++) {
- float ra=Math::deg2rad(i);
- float rb=Math::deg2rad(i+1);
+ float ra=Math::deg2rad((float)i);
+ float rb=Math::deg2rad((float)i+1);
Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*r;
Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*r;
@@ -1913,7 +1869,7 @@ void CollisionShapeSpatialGizmo::redraw(){
Ref<BoxShape> bs=s;
Vector<Vector3> lines;
- AABB aabb;
+ Rect3 aabb;
aabb.pos=-bs->get_extents();
aabb.size=aabb.pos*-2;
@@ -1951,8 +1907,8 @@ void CollisionShapeSpatialGizmo::redraw(){
Vector3 d(0,0,height*0.5);
for(int i=0;i<360;i++) {
- float ra=Math::deg2rad(i);
- float rb=Math::deg2rad(i+1);
+ float ra=Math::deg2rad((float)i);
+ float rb=Math::deg2rad((float)i+1);
Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*radius;
Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*radius;
@@ -2054,7 +2010,7 @@ void CollisionShapeSpatialGizmo::redraw(){
if (s->cast_to<ConvexPolygonShape>()) {
- DVector<Vector3> points = s->cast_to<ConvexPolygonShape>()->get_points();
+ PoolVector<Vector3> points = s->cast_to<ConvexPolygonShape>()->get_points();
if (points.size()>3) {
@@ -2161,12 +2117,12 @@ void VisibilityNotifierGizmo::set_handle(int p_idx,Camera *p_camera, const Point
//gt.orthonormalize();
Transform gi = gt.affine_inverse();
- AABB aabb = notifier->get_aabb();
+ Rect3 aabb = notifier->get_aabb();
Vector3 ray_from = p_camera->project_ray_origin(p_point);
Vector3 ray_dir = p_camera->project_ray_normal(p_point);
Vector3 sg[2]={gi.xform(ray_from),gi.xform(ray_from+ray_dir*4096)};
- Vector3 ofs = aabb.pos+aabb.size*0.5;;
+ Vector3 ofs = aabb.pos+aabb.size*0.5;
Vector3 axis;
axis[p_idx]=1.0;
@@ -2203,7 +2159,7 @@ void VisibilityNotifierGizmo::redraw(){
clear();
Vector<Vector3> lines;
- AABB aabb = notifier->get_aabb();
+ Rect3 aabb = notifier->get_aabb();
for(int i=0;i<12;i++) {
Vector3 a,b;
@@ -2237,6 +2193,321 @@ VisibilityNotifierGizmo::VisibilityNotifierGizmo(VisibilityNotifier* p_notifier)
////////
+///
+
+
+String ReflectionProbeGizmo::get_handle_name(int p_idx) const {
+
+ switch(p_idx) {
+ case 0: return "Extents X";
+ case 1: return "Extents Y";
+ case 2: return "Extents Z";
+ case 3: return "Origin X";
+ case 4: return "Origin Y";
+ case 5: return "Origin Z";
+ }
+
+ return "";
+}
+Variant ReflectionProbeGizmo::get_handle_value(int p_idx) const{
+
+ return Rect3(probe->get_extents(),probe->get_origin_offset());
+}
+void ReflectionProbeGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_point){
+
+ Transform gt = probe->get_global_transform();
+ //gt.orthonormalize();
+ Transform gi = gt.affine_inverse();
+
+
+ if (p_idx<3) {
+ Vector3 extents = probe->get_extents();
+
+ Vector3 ray_from = p_camera->project_ray_origin(p_point);
+ Vector3 ray_dir = p_camera->project_ray_normal(p_point);
+
+ Vector3 sg[2]={gi.xform(ray_from),gi.xform(ray_from+ray_dir*16384)};
+
+ Vector3 axis;
+ axis[p_idx]=1.0;
+
+ Vector3 ra,rb;
+ Geometry::get_closest_points_between_segments(Vector3(),axis*16384,sg[0],sg[1],ra,rb);
+ float d = ra[p_idx];
+ if (d<0.001)
+ d=0.001;
+
+ extents[p_idx]=d;
+ probe->set_extents(extents);
+ } else {
+
+ p_idx-=3;
+
+ Vector3 origin = probe->get_origin_offset();
+ origin[p_idx]=0;
+
+ Vector3 ray_from = p_camera->project_ray_origin(p_point);
+ Vector3 ray_dir = p_camera->project_ray_normal(p_point);
+
+ Vector3 sg[2]={gi.xform(ray_from),gi.xform(ray_from+ray_dir*16384)};
+
+ Vector3 axis;
+ axis[p_idx]=1.0;
+
+ Vector3 ra,rb;
+ Geometry::get_closest_points_between_segments(origin-axis*16384,origin+axis*16384,sg[0],sg[1],ra,rb);
+ float d = ra[p_idx];
+ d+=0.25;
+
+ origin[p_idx]=d;
+ probe->set_origin_offset(origin);
+
+ }
+}
+
+void ReflectionProbeGizmo::commit_handle(int p_idx,const Variant& p_restore,bool p_cancel){
+
+ Rect3 restore = p_restore;
+
+ if (p_cancel) {
+ probe->set_extents(restore.pos);
+ probe->set_origin_offset(restore.size);
+ return;
+ }
+
+ UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Change Probe Extents"));
+ ur->add_do_method(probe,"set_extents",probe->get_extents());
+ ur->add_do_method(probe,"set_origin_offset",probe->get_origin_offset());
+ ur->add_undo_method(probe,"set_extents",restore.pos);
+ ur->add_undo_method(probe,"set_origin_offset",restore.size);
+ ur->commit_action();
+
+}
+
+void ReflectionProbeGizmo::redraw(){
+
+ clear();
+
+ Vector<Vector3> lines;
+ Vector<Vector3> internal_lines;
+ Vector3 extents = probe->get_extents();
+
+ Rect3 aabb;
+ aabb.pos=-extents;
+ aabb.size=extents*2;
+
+ for(int i=0;i<12;i++) {
+ Vector3 a,b;
+ aabb.get_edge(i,a,b);
+ lines.push_back(a);
+ lines.push_back(b);
+ }
+
+ for(int i=0;i<8;i++) {
+ Vector3 ep = aabb.get_endpoint(i);
+ internal_lines.push_back(probe->get_origin_offset());
+ internal_lines.push_back(ep);
+
+
+ }
+
+ Vector<Vector3> handles;
+
+
+ for(int i=0;i<3;i++) {
+
+ Vector3 ax;
+ ax[i]=aabb.pos[i]+aabb.size[i];
+ handles.push_back(ax);
+ }
+
+ for(int i=0;i<3;i++) {
+
+
+ Vector3 orig_handle=probe->get_origin_offset();
+ orig_handle[i]-=0.25;
+ lines.push_back(orig_handle);
+ handles.push_back(orig_handle);
+
+ orig_handle[i]+=0.5;
+ lines.push_back(orig_handle);
+ }
+
+ add_lines(lines,SpatialEditorGizmos::singleton->reflection_probe_material);
+ add_lines(internal_lines,SpatialEditorGizmos::singleton->reflection_probe_material_internal);
+ //add_unscaled_billboard(SpatialEditorGizmos::singleton->visi,0.05);
+ add_collision_segments(lines);
+ add_handles(handles);
+
+}
+ReflectionProbeGizmo::ReflectionProbeGizmo(ReflectionProbe* p_probe){
+
+ probe=p_probe;
+ set_spatial_node(p_probe);
+}
+
+////////
+
+
+
+///
+
+
+String GIProbeGizmo::get_handle_name(int p_idx) const {
+
+ switch(p_idx) {
+ case 0: return "Extents X";
+ case 1: return "Extents Y";
+ case 2: return "Extents Z";
+ }
+
+ return "";
+}
+Variant GIProbeGizmo::get_handle_value(int p_idx) const{
+
+ return probe->get_extents();
+}
+void GIProbeGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_point){
+
+ Transform gt = probe->get_global_transform();
+ //gt.orthonormalize();
+ Transform gi = gt.affine_inverse();
+
+
+ Vector3 extents = probe->get_extents();
+
+ Vector3 ray_from = p_camera->project_ray_origin(p_point);
+ Vector3 ray_dir = p_camera->project_ray_normal(p_point);
+
+ Vector3 sg[2]={gi.xform(ray_from),gi.xform(ray_from+ray_dir*16384)};
+
+ Vector3 axis;
+ axis[p_idx]=1.0;
+
+ Vector3 ra,rb;
+ Geometry::get_closest_points_between_segments(Vector3(),axis*16384,sg[0],sg[1],ra,rb);
+ float d = ra[p_idx];
+ if (d<0.001)
+ d=0.001;
+
+ extents[p_idx]=d;
+ probe->set_extents(extents);
+
+}
+
+void GIProbeGizmo::commit_handle(int p_idx,const Variant& p_restore,bool p_cancel){
+
+ Vector3 restore = p_restore;
+
+ if (p_cancel) {
+ probe->set_extents(restore);
+ return;
+ }
+
+ UndoRedo *ur = SpatialEditor::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Change Probe Extents"));
+ ur->add_do_method(probe,"set_extents",probe->get_extents());
+ ur->add_undo_method(probe,"set_extents",restore);
+ ur->commit_action();
+
+}
+
+void GIProbeGizmo::redraw(){
+
+ clear();
+
+ Vector<Vector3> lines;
+ Vector3 extents = probe->get_extents();
+
+ static const int subdivs[GIProbe::SUBDIV_MAX]={64,128,256,512};
+
+ Rect3 aabb = Rect3(-extents,extents*2);
+ int subdiv = subdivs[probe->get_subdiv()];
+ float cell_size = aabb.get_longest_axis_size()/subdiv;
+
+
+ for(int i=0;i<12;i++) {
+ Vector3 a,b;
+ aabb.get_edge(i,a,b);
+ lines.push_back(a);
+ lines.push_back(b);
+ }
+
+ add_lines(lines,SpatialEditorGizmos::singleton->gi_probe_material);
+ add_collision_segments(lines);
+
+ lines.clear();
+
+ for(int i=1;i<subdiv;i++) {
+
+ for(int j=0;j<3;j++) {
+
+
+
+ if (cell_size*i>aabb.size[j]) {
+ continue;
+ }
+
+ Vector2 dir;
+ dir[j]=1.0;
+ Vector2 ta,tb;
+ int j_n1=(j+1)%3;
+ int j_n2=(j+2)%3;
+ ta[j_n1]=1.0;
+ tb[j_n2]=1.0;
+
+
+ for(int k=0;k<4;k++) {
+
+ Vector3 from=aabb.pos,to=aabb.pos;
+ from[j]+= cell_size*i;
+ to[j]+=cell_size*i;
+
+ if (k&1) {
+ to[j_n1]+=aabb.size[j_n1];
+ } else {
+
+ to[j_n2]+=aabb.size[j_n2];
+ }
+
+ if (k&2) {
+ from[j_n1]+=aabb.size[j_n1];
+ from[j_n2]+=aabb.size[j_n2];
+ }
+
+ lines.push_back(from);
+ lines.push_back(to);
+ }
+
+ }
+
+ }
+
+ add_lines(lines,SpatialEditorGizmos::singleton->reflection_probe_material_internal);
+
+ Vector<Vector3> handles;
+
+
+ for(int i=0;i<3;i++) {
+
+ Vector3 ax;
+ ax[i]=aabb.pos[i]+aabb.size[i];
+ handles.push_back(ax);
+ }
+
+
+ add_handles(handles);
+
+}
+GIProbeGizmo::GIProbeGizmo(GIProbe* p_probe){
+
+ probe=p_probe;
+ set_spatial_node(p_probe);
+}
+
+////////
+
void NavigationMeshSpatialGizmo::redraw() {
@@ -2245,8 +2516,8 @@ void NavigationMeshSpatialGizmo::redraw() {
if (navmeshie.is_null())
return;
- DVector<Vector3> vertices = navmeshie->get_vertices();
- DVector<Vector3>::Read vr=vertices.read();
+ PoolVector<Vector3> vertices = navmeshie->get_vertices();
+ PoolVector<Vector3>::Read vr=vertices.read();
List<Face3> faces;
for(int i=0;i<navmeshie->get_polygon_count();i++) {
Vector<int> p = navmeshie->get_polygon(i);
@@ -2265,11 +2536,11 @@ void NavigationMeshSpatialGizmo::redraw() {
return;
Map<_EdgeKey,bool> edge_map;
- DVector<Vector3> tmeshfaces;
+ PoolVector<Vector3> tmeshfaces;
tmeshfaces.resize(faces.size()*3);
{
- DVector<Vector3>::Write tw=tmeshfaces.write();
+ PoolVector<Vector3>::Write tw=tmeshfaces.write();
int tidx=0;
@@ -2320,7 +2591,7 @@ void NavigationMeshSpatialGizmo::redraw() {
Array a;
a.resize(Mesh::ARRAY_MAX);
a[0]=tmeshfaces;
- m->add_surface(Mesh::PRIMITIVE_TRIANGLES,a);
+ m->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES,a);
m->surface_set_material(0,navmesh->is_enabled()?SpatialEditorGizmos::singleton->navmesh_solid_material:SpatialEditorGizmos::singleton->navmesh_solid_material_disabled);
add_mesh(m);
add_collision_segments(lines);
@@ -2573,8 +2844,8 @@ void ConeTwistJointSpatialGizmo::redraw() {
//swing
for(int i=0;i<360;i+=10) {
- float ra=Math::deg2rad(i);
- float rb=Math::deg2rad(i+10);
+ float ra=Math::deg2rad((float)i);
+ float rb=Math::deg2rad((float)i+10);
Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*w;
Point2 b = Vector2(Math::sin(rb),Math::cos(rb))*w;
@@ -2605,8 +2876,8 @@ void ConeTwistJointSpatialGizmo::redraw() {
for(int i=0;i<int(ts);i+=5) {
- float ra=Math::deg2rad(i);
- float rb=Math::deg2rad(i+5);
+ float ra=Math::deg2rad((float)i);
+ float rb=Math::deg2rad((float)i+5);
float c = i/720.0;
float cn = (i+5)/720.0;
Point2 a = Vector2(Math::sin(ra),Math::cos(ra))*w*c;
@@ -2800,8 +3071,8 @@ void Generic6DOFJointSpatialGizmo::redraw() {
float s = ll+i*(Math_PI*2.0)/points;
float n = ll+(i+1)*(Math_PI*2.0)/points;
-// Vector3 from=Vector3(0,Math::cos(s),-Math::sin(s) )*cs;
-// Vector3 to=Vector3( 0,Math::cos(n),-Math::sin(n) )*cs;
+ //Vector3 from=Vector3(0,Math::cos(s),-Math::sin(s) )*cs;
+ //Vector3 to=Vector3( 0,Math::cos(n),-Math::sin(n) )*cs;
Vector3 from;
SET_VTX(from,0, Math::cos(s), -Math::sin(s) );
@@ -2848,11 +3119,7 @@ Ref<SpatialEditorGizmo> SpatialEditorGizmos::get_gizmo(Spatial *p_spatial) {
return lsg;
}
- if (p_spatial->cast_to<Listener>()) {
- Ref<ListenerSpatialGizmo> misg = memnew(ListenerSpatialGizmo(p_spatial->cast_to<Listener>()));
- return misg;
- }
if (p_spatial->cast_to<Camera>()) {
@@ -2910,12 +3177,6 @@ Ref<SpatialEditorGizmo> SpatialEditorGizmos::get_gizmo(Spatial *p_spatial) {
return misg;
}
- if (p_spatial->cast_to<SpatialPlayer>()) {
-
- Ref<SpatialPlayerSpatialGizmo> misg = memnew( SpatialPlayerSpatialGizmo(p_spatial->cast_to<SpatialPlayer>()) );
- return misg;
- }
-
if (p_spatial->cast_to<CollisionShape>()) {
Ref<CollisionShapeSpatialGizmo> misg = memnew( CollisionShapeSpatialGizmo(p_spatial->cast_to<CollisionShape>()) );
@@ -2928,6 +3189,17 @@ Ref<SpatialEditorGizmo> SpatialEditorGizmos::get_gizmo(Spatial *p_spatial) {
return misg;
}
+ if (p_spatial->cast_to<ReflectionProbe>()) {
+
+ Ref<ReflectionProbeGizmo> misg = memnew( ReflectionProbeGizmo(p_spatial->cast_to<ReflectionProbe>()) );
+ return misg;
+ }
+ if (p_spatial->cast_to<GIProbe>()) {
+
+ Ref<GIProbeGizmo> misg = memnew( GIProbeGizmo(p_spatial->cast_to<GIProbe>()) );
+ return misg;
+ }
+
if (p_spatial->cast_to<VehicleWheel>()) {
Ref<VehicleWheelSpatialGizmo> misg = memnew( VehicleWheelSpatialGizmo(p_spatial->cast_to<VehicleWheel>()) );
@@ -2974,25 +3246,26 @@ Ref<SpatialEditorGizmo> SpatialEditorGizmos::get_gizmo(Spatial *p_spatial) {
}
-Ref<FixedMaterial> SpatialEditorGizmos::create_line_material(const Color& p_base_color) {
+Ref<FixedSpatialMaterial> SpatialEditorGizmos::create_line_material(const Color& p_base_color) {
- Ref<FixedMaterial> line_material = Ref<FixedMaterial>( memnew( FixedMaterial ));
- line_material->set_flag(Material::FLAG_UNSHADED, true);
+ Ref<FixedSpatialMaterial> line_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ line_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
line_material->set_line_width(3.0);
- line_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- line_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, true);
- line_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,p_base_color);
+ line_material->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ //line_material->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true);
+ //->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true);
+ line_material->set_albedo(p_base_color);
return line_material;
}
-Ref<FixedMaterial> SpatialEditorGizmos::create_solid_material(const Color& p_base_color) {
+Ref<FixedSpatialMaterial> SpatialEditorGizmos::create_solid_material(const Color& p_base_color) {
- Ref<FixedMaterial> line_material = Ref<FixedMaterial>( memnew( FixedMaterial ));
- line_material->set_flag(Material::FLAG_UNSHADED, true);
- line_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- line_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,p_base_color);
+ Ref<FixedSpatialMaterial> line_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ line_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ line_material->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ line_material->set_albedo(p_base_color);
return line_material;
@@ -3002,65 +3275,68 @@ SpatialEditorGizmos::SpatialEditorGizmos() {
singleton=this;
- handle_material = Ref<FixedMaterial>( memnew( FixedMaterial ));
- handle_material->set_flag(Material::FLAG_UNSHADED, true);
- handle_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(0.8,0.8,0.8));
+ handle_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ handle_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ handle_material->set_albedo(Color(0.8,0.8,0.8));
- handle2_material = Ref<FixedMaterial>( memnew( FixedMaterial ));
- handle2_material->set_flag(Material::FLAG_UNSHADED, true);
- handle2_material->set_fixed_flag(FixedMaterial::FLAG_USE_POINT_SIZE, true);
+ handle2_material = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ handle2_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ handle2_material->set_flag(FixedSpatialMaterial::FLAG_USE_POINT_SIZE, true);
handle_t = SpatialEditor::get_singleton()->get_icon("Editor3DHandle","EditorIcons");
handle2_material->set_point_size(handle_t->get_width());
- handle2_material->set_texture(FixedMaterial::PARAM_DIFFUSE,handle_t);
- handle2_material->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1));
- handle2_material->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- handle2_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, true);
+ handle2_material->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,handle_t);
+ handle2_material->set_albedo(Color(1,1,1));
+ handle2_material->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ handle2_material->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true);
+ handle2_material->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true);
light_material = create_line_material(Color(1,1,0.2));
- light_material_omni_icon = Ref<FixedMaterial>( memnew( FixedMaterial ));
- light_material_omni_icon->set_flag(Material::FLAG_UNSHADED, true);
- light_material_omni_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true);
- light_material_omni_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
- light_material_omni_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- light_material_omni_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9));
- light_material_omni_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("GizmoLight","EditorIcons"));
+ light_material_omni_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ light_material_omni_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ light_material_omni_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
+ light_material_omni_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED);
+ light_material_omni_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ light_material_omni_icon->set_albedo(Color(1,1,1,0.9));
+ light_material_omni_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("GizmoLight","EditorIcons"));
- light_material_directional_icon = Ref<FixedMaterial>( memnew( FixedMaterial ));
- light_material_directional_icon->set_flag(Material::FLAG_UNSHADED, true);
- light_material_directional_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true);
- light_material_directional_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
- light_material_directional_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- light_material_directional_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9));
- light_material_directional_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("GizmoDirectionalLight","EditorIcons"));
+ light_material_directional_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ light_material_directional_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ light_material_directional_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
+ light_material_directional_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED);
+ light_material_directional_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ light_material_directional_icon->set_albedo(Color(1,1,1,0.9));
+ light_material_directional_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("GizmoDirectionalLight","EditorIcons"));
camera_material = create_line_material(Color(1.0,0.5,1.0));
navmesh_edge_material = create_line_material(Color(0.1,0.8,1.0));
navmesh_solid_material = create_solid_material(Color(0.1,0.8,1.0,0.4));
- navmesh_edge_material->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, false);
- navmesh_solid_material->set_flag(Material::FLAG_DOUBLE_SIDED,true);
+ navmesh_edge_material->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, false);
+ navmesh_edge_material->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, false);
+ navmesh_solid_material->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
navmesh_edge_material_disabled = create_line_material(Color(1.0,0.8,0.1));
navmesh_solid_material_disabled = create_solid_material(Color(1.0,0.8,0.1,0.4));
- navmesh_edge_material_disabled->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, false);
- navmesh_solid_material_disabled->set_flag(Material::FLAG_DOUBLE_SIDED,true);
+ navmesh_edge_material_disabled->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, false);
+ navmesh_edge_material_disabled->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, false);
+ navmesh_solid_material_disabled->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
skeleton_material = create_line_material(Color(0.6,1.0,0.3));
- skeleton_material->set_flag(Material::FLAG_DOUBLE_SIDED,true);
- skeleton_material->set_flag(Material::FLAG_UNSHADED,true);
- skeleton_material->set_flag(Material::FLAG_ONTOP,true);
- skeleton_material->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
+ skeleton_material->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
+ skeleton_material->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true);
+ skeleton_material->set_flag(FixedSpatialMaterial::FLAG_ONTOP,true);
+ skeleton_material->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED);
//position 3D Shared mesh
pos3d_mesh = Ref<Mesh>( memnew( Mesh ) );
{
- DVector<Vector3> cursor_points;
- DVector<Color> cursor_colors;
+ PoolVector<Vector3> cursor_points;
+ PoolVector<Color> cursor_colors;
float cs = 0.25;
cursor_points.push_back(Vector3(+cs,0,0));
cursor_points.push_back(Vector3(-cs,0,0));
@@ -3075,88 +3351,94 @@ SpatialEditorGizmos::SpatialEditorGizmos() {
cursor_colors.push_back(Color(0.5,0.5,1,0.7));
cursor_colors.push_back(Color(0.5,0.5,1,0.7));
- Ref<FixedMaterial> mat = memnew( FixedMaterial );
- mat->set_flag(Material::FLAG_UNSHADED,true);
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY,true);
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA,true);
+ Ref<FixedSpatialMaterial> mat = memnew( FixedSpatialMaterial );
+ mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED,true);
+ mat->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR,true);
+ mat->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR,true);
+ mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT,true);
mat->set_line_width(3);
Array d;
d.resize(VS::ARRAY_MAX);
d[Mesh::ARRAY_VERTEX]=cursor_points;
d[Mesh::ARRAY_COLOR]=cursor_colors;
- pos3d_mesh->add_surface(Mesh::PRIMITIVE_LINES,d);
+ pos3d_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES,d);
pos3d_mesh->surface_set_material(0,mat);
}
listener_line_mesh = Ref<Mesh>(memnew(Mesh));
{
- DVector<Vector3> cursor_points;
- DVector<Color> cursor_colors;
+ PoolVector<Vector3> cursor_points;
+ PoolVector<Color> cursor_colors;
cursor_points.push_back(Vector3(0, 0, 0));
cursor_points.push_back(Vector3(0, 0, -1.0));
cursor_colors.push_back(Color(0.5, 0.5, 0.5, 0.7));
cursor_colors.push_back(Color(0.5, 0.5, 0.5, 0.7));
- Ref<FixedMaterial> mat = memnew(FixedMaterial);
- mat->set_flag(Material::FLAG_UNSHADED, true);
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_COLOR_ARRAY, true);
- mat->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
+ Ref<FixedSpatialMaterial> mat = memnew(FixedSpatialMaterial);
+ mat->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ mat->set_flag(FixedSpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true);
+ mat->set_flag(FixedSpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true);
+ mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
mat->set_line_width(3);
Array d;
d.resize(VS::ARRAY_MAX);
d[Mesh::ARRAY_VERTEX] = cursor_points;
d[Mesh::ARRAY_COLOR] = cursor_colors;
- listener_line_mesh->add_surface(Mesh::PRIMITIVE_LINES, d);
+ listener_line_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_LINES, d);
listener_line_mesh->surface_set_material(0, mat);
}
- sample_player_icon = Ref<FixedMaterial>( memnew( FixedMaterial ));
- sample_player_icon->set_flag(Material::FLAG_UNSHADED, true);
- sample_player_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true);
- sample_player_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
- sample_player_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- sample_player_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9));
- sample_player_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("GizmoSpatialSamplePlayer","EditorIcons"));
+ sample_player_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ sample_player_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ sample_player_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
+ sample_player_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED);
+ sample_player_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ sample_player_icon->set_albedo(Color(1,1,1,0.9));
+ sample_player_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("GizmoSpatialSamplePlayer","EditorIcons"));
room_material = create_line_material(Color(1.0,0.6,0.9));
portal_material = create_line_material(Color(1.0,0.8,0.6));
raycast_material = create_line_material(Color(1.0,0.8,0.6));
car_wheel_material = create_line_material(Color(0.6,0.8,1.0));
visibility_notifier_material = create_line_material(Color(1.0,0.5,1.0));
+ reflection_probe_material = create_line_material(Color(0.5,1.0,0.7));
+ reflection_probe_material_internal = create_line_material(Color(0.3,0.8,0.5,0.15));
+ gi_probe_material = create_line_material(Color(0.7,1.0,0.5));
+ gi_probe_material_internal = create_line_material(Color(0.5,0.8,0.3,0.4));
joint_material = create_line_material(Color(0.6,0.8,1.0));
- stream_player_icon = Ref<FixedMaterial>( memnew( FixedMaterial ));
- stream_player_icon->set_flag(Material::FLAG_UNSHADED, true);
- stream_player_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true);
- stream_player_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
- stream_player_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- stream_player_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9));
- stream_player_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("GizmoSpatialStreamPlayer","EditorIcons"));
-
- visibility_notifier_icon = Ref<FixedMaterial>( memnew( FixedMaterial ));
- visibility_notifier_icon->set_flag(Material::FLAG_UNSHADED, true);
- visibility_notifier_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true);
- visibility_notifier_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
- visibility_notifier_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- visibility_notifier_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE,Color(1,1,1,0.9));
- visibility_notifier_icon->set_texture(FixedMaterial::PARAM_DIFFUSE,SpatialEditor::get_singleton()->get_icon("Visible","EditorIcons"));
-
- listener_icon = Ref<FixedMaterial>(memnew(FixedMaterial));
- listener_icon->set_flag(Material::FLAG_UNSHADED, true);
- listener_icon->set_flag(Material::FLAG_DOUBLE_SIDED, true);
- listener_icon->set_depth_draw_mode(Material::DEPTH_DRAW_NEVER);
- listener_icon->set_fixed_flag(FixedMaterial::FLAG_USE_ALPHA, true);
- listener_icon->set_parameter(FixedMaterial::PARAM_DIFFUSE, Color(1, 1, 1, 0.9));
- listener_icon->set_texture(FixedMaterial::PARAM_DIFFUSE, SpatialEditor::get_singleton()->get_icon("GizmoListener", "EditorIcons"));
+ stream_player_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ stream_player_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ stream_player_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
+ stream_player_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED);
+ stream_player_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ stream_player_icon->set_albedo(Color(1,1,1,0.9));
+ stream_player_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("GizmoSpatialStreamPlayer","EditorIcons"));
+
+ visibility_notifier_icon = Ref<FixedSpatialMaterial>( memnew( FixedSpatialMaterial ));
+ visibility_notifier_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ visibility_notifier_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
+ visibility_notifier_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED);
+ visibility_notifier_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ visibility_notifier_icon->set_albedo(Color(1,1,1,0.9));
+ visibility_notifier_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO,SpatialEditor::get_singleton()->get_icon("Visible","EditorIcons"));
+
+ listener_icon = Ref<FixedSpatialMaterial>(memnew(FixedSpatialMaterial));
+ listener_icon->set_flag(FixedSpatialMaterial::FLAG_UNSHADED, true);
+ listener_icon->set_cull_mode(FixedSpatialMaterial::CULL_DISABLED);
+ listener_icon->set_depth_draw_mode(FixedSpatialMaterial::DEPTH_DRAW_DISABLED);
+ listener_icon->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT, true);
+ listener_icon->set_albedo( Color(1, 1, 1, 0.9));
+ listener_icon->set_texture(FixedSpatialMaterial::TEXTURE_ALBEDO, SpatialEditor::get_singleton()->get_icon("GizmoListener", "EditorIcons"));
{
- DVector<Vector3> vertices;
+ PoolVector<Vector3> vertices;
#undef ADD_VTX
-#define ADD_VTX(m_idx);\
+#define ADD_VTX(m_idx) \
vertices.push_back( face_points[m_idx] );
for (int i=0;i<6;i++) {
@@ -3198,3 +3480,4 @@ SpatialEditorGizmos::SpatialEditorGizmos() {
}
+
diff --git a/tools/editor/spatial_editor_gizmos.h b/tools/editor/spatial_editor_gizmos.h
index 3d7272f522..8a63d4f81e 100644
--- a/tools/editor/spatial_editor_gizmos.h
+++ b/tools/editor/spatial_editor_gizmos.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -35,8 +35,6 @@
#include "scene/3d/listener.h"
#include "scene/3d/camera.h"
#include "scene/3d/position_3d.h"
-#include "scene/3d/spatial_sample_player.h"
-#include "scene/3d/spatial_stream_player.h"
#include "scene/3d/test_cube.h"
#include "scene/3d/mesh_instance.h"
#include "scene/3d/body_shape.h"
@@ -45,6 +43,8 @@
#include "scene/3d/portal.h"
#include "scene/3d/ray_cast.h"
#include "scene/3d/navigation_mesh.h"
+#include "scene/3d/reflection_probe.h"
+#include "scene/3d/gi_probe.h"
#include "scene/3d/vehicle_body.h"
#include "scene/3d/collision_polygon.h"
@@ -55,7 +55,7 @@ class Camera;
class EditorSpatialGizmo : public SpatialEditorGizmo {
- OBJ_TYPE(EditorSpatialGizmo,SpatialGizmo);
+ GDCLASS(EditorSpatialGizmo,SpatialGizmo);
struct Instance{
@@ -127,7 +127,7 @@ public:
class LightSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(LightSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(LightSpatialGizmo,EditorSpatialGizmo);
Light* light;
@@ -144,22 +144,9 @@ public:
};
-class ListenerSpatialGizmo : public EditorSpatialGizmo {
-
- OBJ_TYPE(ListenerSpatialGizmo, EditorSpatialGizmo);
-
- Listener* listener;
-
-public:
-
- void redraw();
- ListenerSpatialGizmo(Listener* p_listener = NULL);
-
-};
-
class CameraSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(CameraSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(CameraSpatialGizmo,EditorSpatialGizmo);
Camera* camera;
@@ -180,7 +167,7 @@ public:
class MeshInstanceSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(MeshInstanceSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(MeshInstanceSpatialGizmo,EditorSpatialGizmo);
MeshInstance* mesh;
@@ -193,7 +180,7 @@ public:
class Position3DSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(Position3DSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(Position3DSpatialGizmo,EditorSpatialGizmo);
Position3D* p3d;
@@ -206,7 +193,7 @@ public:
class SkeletonSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(SkeletonSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(SkeletonSpatialGizmo,EditorSpatialGizmo);
Skeleton* skel;
@@ -218,26 +205,9 @@ public:
};
-
-
-class SpatialPlayerSpatialGizmo : public EditorSpatialGizmo {
-
- OBJ_TYPE(SpatialPlayerSpatialGizmo,EditorSpatialGizmo);
-
- SpatialPlayer* splayer;
-
-public:
-
- void redraw();
- SpatialPlayerSpatialGizmo(SpatialPlayer* p_splayer=NULL);
-
-};
-
-
-
class TestCubeSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(TestCubeSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(TestCubeSpatialGizmo,EditorSpatialGizmo);
TestCube* tc;
@@ -250,7 +220,7 @@ public:
class RoomSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(RoomSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(RoomSpatialGizmo,EditorSpatialGizmo);
struct _EdgeKey {
@@ -275,7 +245,7 @@ public:
class PortalSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(PortalSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(PortalSpatialGizmo,EditorSpatialGizmo);
Portal* portal;
@@ -289,7 +259,7 @@ public:
class VisibilityNotifierGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(VisibilityNotifierGizmo ,EditorSpatialGizmo);
+ GDCLASS(VisibilityNotifierGizmo ,EditorSpatialGizmo);
VisibilityNotifier* notifier;
@@ -307,10 +277,48 @@ public:
};
+class ReflectionProbeGizmo : public EditorSpatialGizmo {
+
+ GDCLASS(ReflectionProbeGizmo ,EditorSpatialGizmo);
+
+
+ ReflectionProbe* probe;
+
+public:
+
+ virtual String get_handle_name(int p_idx) const;
+ virtual Variant get_handle_value(int p_idx) const;
+ virtual void set_handle(int p_idx,Camera *p_camera, const Point2& p_point);
+ virtual void commit_handle(int p_idx,const Variant& p_restore,bool p_cancel=false);
+
+ void redraw();
+ ReflectionProbeGizmo(ReflectionProbe* p_notifier=NULL);
+
+};
+
+class GIProbeGizmo : public EditorSpatialGizmo {
+
+ GDCLASS(GIProbeGizmo ,EditorSpatialGizmo);
+
+
+ GIProbe* probe;
+
+public:
+
+ virtual String get_handle_name(int p_idx) const;
+ virtual Variant get_handle_value(int p_idx) const;
+ virtual void set_handle(int p_idx,Camera *p_camera, const Point2& p_point);
+ virtual void commit_handle(int p_idx,const Variant& p_restore,bool p_cancel=false);
+
+ void redraw();
+ GIProbeGizmo(GIProbe* p_notifier=NULL);
+
+};
+
class CollisionShapeSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(CollisionShapeSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(CollisionShapeSpatialGizmo,EditorSpatialGizmo);
CollisionShape* cs;
@@ -327,7 +335,7 @@ public:
class CollisionPolygonSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(CollisionPolygonSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(CollisionPolygonSpatialGizmo,EditorSpatialGizmo);
CollisionPolygon* polygon;
@@ -339,9 +347,10 @@ public:
};
+
class RayCastSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(RayCastSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(RayCastSpatialGizmo,EditorSpatialGizmo);
RayCast* raycast;
@@ -356,7 +365,7 @@ public:
class VehicleWheelSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(VehicleWheelSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(VehicleWheelSpatialGizmo,EditorSpatialGizmo);
VehicleWheel* car_wheel;
@@ -370,7 +379,7 @@ public:
class NavigationMeshSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(NavigationMeshSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(NavigationMeshSpatialGizmo,EditorSpatialGizmo);
struct _EdgeKey {
@@ -395,7 +404,7 @@ public:
class PinJointSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(PinJointSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(PinJointSpatialGizmo,EditorSpatialGizmo);
PinJoint* p3d;
@@ -409,7 +418,7 @@ public:
class HingeJointSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(HingeJointSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(HingeJointSpatialGizmo,EditorSpatialGizmo);
HingeJoint* p3d;
@@ -422,7 +431,7 @@ public:
class SliderJointSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(SliderJointSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(SliderJointSpatialGizmo,EditorSpatialGizmo);
SliderJoint* p3d;
@@ -435,7 +444,7 @@ public:
class ConeTwistJointSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(ConeTwistJointSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(ConeTwistJointSpatialGizmo,EditorSpatialGizmo);
ConeTwistJoint* p3d;
@@ -449,7 +458,7 @@ public:
class Generic6DOFJointSpatialGizmo : public EditorSpatialGizmo {
- OBJ_TYPE(Generic6DOFJointSpatialGizmo,EditorSpatialGizmo);
+ GDCLASS(Generic6DOFJointSpatialGizmo,EditorSpatialGizmo);
Generic6DOFJoint* p3d;
@@ -464,34 +473,38 @@ public:
class SpatialEditorGizmos {
public:
- Ref<FixedMaterial> create_line_material(const Color& p_base_color);
- Ref<FixedMaterial> create_solid_material(const Color& p_base_color);
- Ref<FixedMaterial> handle2_material;
- Ref<FixedMaterial> handle_material;
- Ref<FixedMaterial> light_material;
- Ref<FixedMaterial> light_material_omni_icon;
- Ref<FixedMaterial> light_material_directional_icon;
- Ref<FixedMaterial> camera_material;
- Ref<FixedMaterial> skeleton_material;
- Ref<FixedMaterial> room_material;
- Ref<FixedMaterial> portal_material;
- Ref<FixedMaterial> raycast_material;
- Ref<FixedMaterial> visibility_notifier_material;
- Ref<FixedMaterial> car_wheel_material;
- Ref<FixedMaterial> joint_material;
-
- Ref<FixedMaterial> navmesh_edge_material;
- Ref<FixedMaterial> navmesh_solid_material;
- Ref<FixedMaterial> navmesh_edge_material_disabled;
- Ref<FixedMaterial> navmesh_solid_material_disabled;
-
- Ref<FixedMaterial> listener_icon;
-
- Ref<FixedMaterial> sample_player_icon;
- Ref<FixedMaterial> stream_player_icon;
- Ref<FixedMaterial> visibility_notifier_icon;
-
- Ref<FixedMaterial> shape_material;
+ Ref<FixedSpatialMaterial> create_line_material(const Color& p_base_color);
+ Ref<FixedSpatialMaterial> create_solid_material(const Color& p_base_color);
+ Ref<FixedSpatialMaterial> handle2_material;
+ Ref<FixedSpatialMaterial> handle_material;
+ Ref<FixedSpatialMaterial> light_material;
+ Ref<FixedSpatialMaterial> light_material_omni_icon;
+ Ref<FixedSpatialMaterial> light_material_directional_icon;
+ Ref<FixedSpatialMaterial> camera_material;
+ Ref<FixedSpatialMaterial> skeleton_material;
+ Ref<FixedSpatialMaterial> reflection_probe_material;
+ Ref<FixedSpatialMaterial> reflection_probe_material_internal;
+ Ref<FixedSpatialMaterial> gi_probe_material;
+ Ref<FixedSpatialMaterial> gi_probe_material_internal;
+ Ref<FixedSpatialMaterial> room_material;
+ Ref<FixedSpatialMaterial> portal_material;
+ Ref<FixedSpatialMaterial> raycast_material;
+ Ref<FixedSpatialMaterial> visibility_notifier_material;
+ Ref<FixedSpatialMaterial> car_wheel_material;
+ Ref<FixedSpatialMaterial> joint_material;
+
+ Ref<FixedSpatialMaterial> navmesh_edge_material;
+ Ref<FixedSpatialMaterial> navmesh_solid_material;
+ Ref<FixedSpatialMaterial> navmesh_edge_material_disabled;
+ Ref<FixedSpatialMaterial> navmesh_solid_material_disabled;
+
+ Ref<FixedSpatialMaterial> listener_icon;
+
+ Ref<FixedSpatialMaterial> sample_player_icon;
+ Ref<FixedSpatialMaterial> stream_player_icon;
+ Ref<FixedSpatialMaterial> visibility_notifier_icon;
+
+ Ref<FixedSpatialMaterial> shape_material;
Ref<Texture> handle_t;
Ref<Mesh> pos3d_mesh;
@@ -505,5 +518,4 @@ public:
SpatialEditorGizmos();
};
-
#endif // SPATIAL_EDITOR_GIZMOS_H
diff --git a/tools/scripts/addheader.py b/tools/scripts/addheader.py
index d040d8b5d6..056e807c81 100644
--- a/tools/scripts/addheader.py
+++ b/tools/scripts/addheader.py
@@ -1,4 +1,4 @@
-header="""\
+header = """\
/*************************************************************************/
/* $filename */
/*************************************************************************/
@@ -6,7 +6,7 @@ header="""\
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -29,44 +29,42 @@ header="""\
/*************************************************************************/
"""
-f = open("files","rb")
+f = open("files", "rb")
fname = f.readline()
-while (fname!=""):
+while (fname != ""):
- fr = open(fname.strip(),"rb")
- l = fr.readline()
- bc=False
- fsingle = fname.strip()
+ fr = open(fname.strip(), "rb")
+ l = fr.readline()
+ bc = False
+ fsingle = fname.strip()
- if (fsingle.find("/")!=-1):
- fsingle=fsingle[fsingle.rfind("/")+1:]
- rep_fl="$filename"
- rep_fi=fsingle
- len_fl=len(rep_fl)
- len_fi=len(rep_fi)
- if (len_fi<len_fl):
- for x in range(len_fl-len_fi):
- rep_fi+=" "
- elif (len_fl<len_fi):
- for x in range(len_fi-len_fl):
- rep_fl+=" "
- if (header.find(rep_fl)!=-1):
- text=header.replace(rep_fl,rep_fi)
- else:
- text=header.replace("$filename",fsingle)
+ if (fsingle.find("/") != -1):
+ fsingle = fsingle[fsingle.rfind("/") + 1:]
+ rep_fl = "$filename"
+ rep_fi = fsingle
+ len_fl = len(rep_fl)
+ len_fi = len(rep_fi)
+ if (len_fi < len_fl):
+ for x in range(len_fl - len_fi):
+ rep_fi += " "
+ elif (len_fl < len_fi):
+ for x in range(len_fi - len_fl):
+ rep_fl += " "
+ if (header.find(rep_fl) != -1):
+ text = header.replace(rep_fl, rep_fi)
+ else:
+ text = header.replace("$filename", fsingle)
+ while (l != ""):
+ if ((l.find("//") != 0 and l.find("/*") != 0 and l.strip() != "") or bc):
+ text += l
+ bc = True
+ l = fr.readline()
- while (l!=""):
- if ((l.find("//")!=0 and l.find("/*")!=0 and l.strip()!="") or bc):
- text+=l
- bc=True
- l=fr.readline()
-
- fr.close()
- fr=open(fname.strip(),"wb")
- fr.write(text)
- fr.close()
- #print(text)
- fname=f.readline()
-
+ fr.close()
+ fr = open(fname.strip(), "wb")
+ fr.write(text)
+ fr.close()
+ # print(text)
+ fname = f.readline()
diff --git a/tools/scripts/file-hex-array.py b/tools/scripts/file-hex-array.py
index 05352396f1..a6cdfe541f 100755
--- a/tools/scripts/file-hex-array.py
+++ b/tools/scripts/file-hex-array.py
@@ -2,34 +2,38 @@ import binascii
import os.path
import sys
+
def tof(filepath):
- with open(filepath, 'r') as f:
- content = f.read()
- content = content.replace("0x","")
- content = content.split(',')
- for i in range(len(content)):
- if len(content[i]) == 1: content[i] = "0" + content[i]
- content = "".join(content)
- with open(filepath+".file", 'wb') as f:
- content = f.write(content.decode("hex"))
- print(os.path.basename(filepath)+".file created.")
- exit(0)
+ with open(filepath, 'r') as f:
+ content = f.read()
+ content = content.replace("0x", "")
+ content = content.split(',')
+ for i in range(len(content)):
+ if len(content[i]) == 1:
+ content[i] = "0" + content[i]
+ content = "".join(content)
+ with open(filepath + ".file", 'wb') as f:
+ content = f.write(content.decode("hex"))
+ print(os.path.basename(filepath) + ".file created.")
+ exit(0)
+
def toa(filepath):
- with open(filepath, 'rb') as f:
- content = f.read()
- content = binascii.hexlify(content)
- content = [content[i:i+2] for i in range(0, len(content), 2)]
- content = ",0x".join(content)
- content = "0x" + content
- content = content.replace("0x00","0x0")
- with open(filepath+".array", 'w') as f:
- content = f.write(content)
- print(os.path.basename(filepath)+".array created.")
- exit(0)
+ with open(filepath, 'rb') as f:
+ content = f.read()
+ content = binascii.hexlify(content)
+ content = [content[i:i + 2] for i in range(0, len(content), 2)]
+ content = ",0x".join(content)
+ content = "0x" + content
+ content = content.replace("0x00", "0x0")
+ with open(filepath + ".array", 'w') as f:
+ content = f.write(content)
+ print(os.path.basename(filepath) + ".array created.")
+ exit(0)
+
def usage():
- print("========================================================\n\
+ print("========================================================\n\
#\n\
# Usage: python file-hex-array.py [action] [option]\n\
#\n\
@@ -40,13 +44,13 @@ def usage():
# Example : python file-hex-array.py toa 1.png\n\
#\n\
========================================================")
- exit(1)
+ exit(1)
if len(sys.argv) != 3:
- usage()
+ usage()
if sys.argv[1] == "toa" and os.path.isfile(sys.argv[2]):
- toa(sys.argv[2])
+ toa(sys.argv[2])
elif sys.argv[1] == "tof" and os.path.isfile(sys.argv[2]):
- tof(sys.argv[2])
+ tof(sys.argv[2])
else:
- usage() \ No newline at end of file
+ usage()
diff --git a/tools/scripts/make_bmfhdr.py b/tools/scripts/make_bmfhdr.py
index 0f6f453004..1d3c40f9c6 100644
--- a/tools/scripts/make_bmfhdr.py
+++ b/tools/scripts/make_bmfhdr.py
@@ -2,69 +2,66 @@
import sys
-if (len(sys.argv)!=2):
- print("Pass me a .fnt argument!")
+if (len(sys.argv) != 2):
+ print("Pass me a .fnt argument!")
-f = open(sys.argv[1],"rb")
+f = open(sys.argv[1], "rb")
-name = sys.argv[1].lower().replace(".fnt","")
+name = sys.argv[1].lower().replace(".fnt", "")
l = f.readline()
-font_height=0
-font_ascent=0
-font_charcount=0
-font_chars=[]
-font_cc=0
-
-while(l!=""):
-
- fs = l.strip().find(" ")
- if (fs==-1):
- l=f.readline()
- continue
- t = l[0:fs]
-
- dv = l[fs+1:].split(" ")
- d = {}
- for x in dv:
- if (x.find("=")==-1):
- continue
- s = x.split("=")
- d[ s[0] ] = s[1]
-
-
- if (t=="common"):
- font_height=d["lineHeight"]
- font_ascent=d["base"]
-
- if (t=="char"):
- font_chars.append(d["id"])
- font_chars.append(d["x"])
- font_chars.append(d["y"])
- font_chars.append(d["width"])
- font_chars.append(d["height"])
- font_chars.append(d["xoffset"])
- font_chars.append(d["yoffset"])
- font_chars.append(d["xadvance"])
- font_cc+=1
-
-
-
- l = f.readline()
-
-
-print("static const int _bi_font_"+name+"_height="+str(font_height)+";")
-print("static const int _bi_font_"+name+"_ascent="+str(font_ascent)+";")
-print("static const int _bi_font_"+name+"_charcount="+str(font_cc)+";")
-cstr="static const int _bi_font_"+name+"_characters={"
+font_height = 0
+font_ascent = 0
+font_charcount = 0
+font_chars = []
+font_cc = 0
+
+while(l != ""):
+
+ fs = l.strip().find(" ")
+ if (fs == -1):
+ l = f.readline()
+ continue
+ t = l[0:fs]
+
+ dv = l[fs + 1:].split(" ")
+ d = {}
+ for x in dv:
+ if (x.find("=") == -1):
+ continue
+ s = x.split("=")
+ d[s[0]] = s[1]
+
+ if (t == "common"):
+ font_height = d["lineHeight"]
+ font_ascent = d["base"]
+
+ if (t == "char"):
+ font_chars.append(d["id"])
+ font_chars.append(d["x"])
+ font_chars.append(d["y"])
+ font_chars.append(d["width"])
+ font_chars.append(d["height"])
+ font_chars.append(d["xoffset"])
+ font_chars.append(d["yoffset"])
+ font_chars.append(d["xadvance"])
+ font_cc += 1
+
+ l = f.readline()
+
+
+print("static const int _bi_font_" + name + "_height=" + str(font_height) + ";")
+print("static const int _bi_font_" + name + "_ascent=" + str(font_ascent) + ";")
+print("static const int _bi_font_" + name + "_charcount=" + str(font_cc) + ";")
+cstr = "static const int _bi_font_" + name + "_characters={"
for i in range(len(font_chars)):
- c=font_chars[i]
- if (i>0):
- cstr+=", "
- cstr+=c
+ c = font_chars[i]
+ if (i > 0):
+ cstr += ", "
+ cstr += c
-cstr+=("};")
+cstr += ("};")
-print(cstr) \ No newline at end of file
+print(cstr)
diff --git a/tools/scripts/make_glwrapper.py b/tools/scripts/make_glwrapper.py
index b4c582f1eb..5694d2327e 100644
--- a/tools/scripts/make_glwrapper.py
+++ b/tools/scripts/make_glwrapper.py
@@ -1,32 +1,32 @@
#! /usr/bin/env python
import sys
-if (len(sys.argv)<2):
- print("usage: make_glwrapper.py <headers>")
- sys.exit(255)
+if (len(sys.argv) < 2):
+ print("usage: make_glwrapper.py <headers>")
+ sys.exit(255)
-functions=[]
-types=[]
-constants=[]
+functions = []
+types = []
+constants = []
-READ_FUNCTIONS=0
-READ_TYPES=1
-READ_CONSTANTS=2
+READ_FUNCTIONS = 0
+READ_TYPES = 1
+READ_CONSTANTS = 2
-read_what=READ_TYPES
+read_what = READ_TYPES
-for x in (range(len(sys.argv)-1)):
- f=open(sys.argv[x+1],"r")
+for x in (range(len(sys.argv) - 1)):
+ f = open(sys.argv[x + 1], "r")
- while(True):
+ while(True):
- line=f.readline()
- if (line==""):
- break
+ line = f.readline()
+ if (line == ""):
+ break
- line=line.replace("\n","").strip()
- """
+ line = line.replace("\n", "").strip()
+ """
if (line.find("[types]")!=-1):
read_what=READ_TYPES
continue
@@ -38,67 +38,66 @@ for x in (range(len(sys.argv)-1)):
continue
"""
- if (line.find("#define")!=-1):
- if (line.find("0x")==-1 and line.find("GL_VERSION")==-1):
- continue
- constants.append(line)
- elif (line.find("typedef")!=-1):
- if (line.find("(")!=-1 or line.find(")")!=-1 or line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("GL")==-1):
- continue
- types.append(line)
- elif (line.find("APIENTRY")!=-1 and line.find("GLAPI")!=-1):
+ if (line.find("#define") != -1):
+ if (line.find("0x") == -1 and line.find("GL_VERSION") == -1):
+ continue
+ constants.append(line)
+ elif (line.find("typedef") != -1):
+ if (line.find("(") != -1 or line.find(")") != -1 or line.find("ARB") != -1 or line.find("EXT") != -1 or line.find("GL") == -1):
+ continue
+ types.append(line)
+ elif (line.find("APIENTRY") != -1 and line.find("GLAPI") != -1):
- if (line.find("ARB")!=-1 or line.find("EXT")!=-1 or line.find("NV")!=-1):
- continue
+ if (line.find("ARB") != -1 or line.find("EXT") != -1 or line.find("NV") != -1):
+ continue
- line=line.replace("APIENTRY","")
- line=line.replace("GLAPI","")
+ line = line.replace("APIENTRY", "")
+ line = line.replace("GLAPI", "")
- glpos=line.find(" gl")
- if (glpos==-1):
+ glpos = line.find(" gl")
+ if (glpos == -1):
- glpos=line.find("\tgl")
- if (glpos==-1):
- continue
+ glpos = line.find("\tgl")
+ if (glpos == -1):
+ continue
- ret=line[:glpos].strip();
+ ret = line[:glpos].strip()
- line=line[glpos:].strip()
- namepos=line.find("(")
+ line = line[glpos:].strip()
+ namepos = line.find("(")
- if (namepos==-1):
- continue
+ if (namepos == -1):
+ continue
- name=line[:namepos].strip()
- line=line[namepos:]
+ name = line[:namepos].strip()
+ line = line[namepos:]
- argpos=line.rfind(")")
- if (argpos==-1):
- continue
+ argpos = line.rfind(")")
+ if (argpos == -1):
+ continue
- args=line[1:argpos]
+ args = line[1:argpos]
- funcdata={}
- funcdata["ret"]=ret
- funcdata["name"]=name
- funcdata["args"]=args
+ funcdata = {}
+ funcdata["ret"] = ret
+ funcdata["name"] = name
+ funcdata["args"] = args
- functions.append(funcdata)
- print(funcdata)
+ functions.append(funcdata)
+ print(funcdata)
+# print(types)
+# print(constants)
+# print(functions)
-#print(types)
-#print(constants)
-#print(functions)
-
-f=open("glwrapper.h","w")
+f = open("glwrapper.h", "w")
f.write("#ifndef GL_WRAPPER\n")
f.write("#define GL_WRAPPER\n\n\n")
-header_code="""\
+header_code = """\
#if defined(__gl_h_) || defined(__GL_H__)
#error gl.h included before glwrapper.h
#endif
@@ -128,56 +127,52 @@ header_code="""\
f.write("#include <stddef.h>\n\n\n")
-f.write(header_code);
+f.write(header_code)
f.write("#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\n")
f.write("#if defined(_WIN32) && !defined(__CYGWIN__)\n")
f.write("#define GLWRP_APIENTRY __stdcall\n")
-f.write("#else\n");
+f.write("#else\n")
f.write("#define GLWRP_APIENTRY \n")
-f.write("#endif\n\n");
+f.write("#endif\n\n")
for x in types:
- f.write(x+"\n")
+ f.write(x + "\n")
f.write("\n\n")
for x in constants:
- f.write(x+"\n")
+ f.write(x + "\n")
f.write("\n\n")
for x in functions:
- f.write("extern "+x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+");\n")
- f.write("#define "+x["name"]+" __wrapper_"+x["name"]+"\n")
+ f.write("extern " + x["ret"] + " GLWRP_APIENTRY (*__wrapper_" + x["name"] + ")(" + x["args"] + ");\n")
+ f.write("#define " + x["name"] + " __wrapper_" + x["name"] + "\n")
f.write("\n\n")
-f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n");
+f.write("typedef void (*GLWrapperFuncPtr)(void);\n\n")
f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) );\n")
f.write("#ifdef __cplusplus\n}\n#endif\n")
f.write("#endif\n\n")
-f=open("glwrapper.c","w")
+f = open("glwrapper.c", "w")
f.write("\n\n")
f.write("#include \"glwrapper.h\"\n")
f.write("\n\n")
for x in functions:
- f.write(x["ret"]+" GLWRP_APIENTRY (*__wrapper_"+x["name"]+")("+x["args"]+")=NULL;\n")
+ f.write(x["ret"] + " GLWRP_APIENTRY (*__wrapper_" + x["name"] + ")(" + x["args"] + ")=NULL;\n")
f.write("\n\n")
f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) ) {\n")
f.write("\n")
for x in functions:
- f.write("\t__wrapper_"+x["name"]+"=("+x["ret"]+" GLWRP_APIENTRY (*)("+x["args"]+"))wrapperFunc(\""+x["name"]+"\");\n")
+ f.write("\t__wrapper_" + x["name"] + "=(" + x["ret"] + " GLWRP_APIENTRY (*)(" + x["args"] + "))wrapperFunc(\"" + x["name"] + "\");\n")
f.write("\n\n")
f.write("}\n")
f.write("\n\n")
-
-
-
-
diff --git a/tools/scripts/makeargs.py b/tools/scripts/makeargs.py
index 8c5539c5fe..2cd47ae087 100644
--- a/tools/scripts/makeargs.py
+++ b/tools/scripts/makeargs.py
@@ -1,5 +1,5 @@
-text="""
+text = """
#define FUNC$numR(m_r,m_func,$argt)\\
virtual m_r m_func($argtp) { \\
if (Thread::get_caller_ID()!=server_thread) {\\
@@ -64,25 +64,19 @@ text="""
"""
+for i in range(1, 8):
-for i in range(1,8):
-
- tp=""
- p=""
- t=""
- for j in range(i):
- if (j>0):
- tp+=", "
- p+=", "
- t+=", "
- tp +=("m_arg"+str(j+1)+" p"+str(j+1))
- p+=("p"+str(j+1))
- t+=("m_arg"+str(j+1))
-
- t = text.replace("$argtp",tp).replace("$argp",p).replace("$argt",t).replace("$num",str(i))
- print(t)
-
-
-
-
+ tp = ""
+ p = ""
+ t = ""
+ for j in range(i):
+ if (j > 0):
+ tp += ", "
+ p += ", "
+ t += ", "
+ tp += ("m_arg" + str(j + 1) + " p" + str(j + 1))
+ p += ("p" + str(j + 1))
+ t += ("m_arg" + str(j + 1))
+ t = text.replace("$argtp", tp).replace("$argp", p).replace("$argt", t).replace("$num", str(i))
+ print(t)
diff --git a/tools/scripts/memsort.py b/tools/scripts/memsort.py
index d2e4fe0226..fb636b0f78 100644
--- a/tools/scripts/memsort.py
+++ b/tools/scripts/memsort.py
@@ -1,35 +1,35 @@
import sys
-arg="memdump.txt"
+arg = "memdump.txt"
-if (len(sys.argv)>1):
- arg=sys.argv[1]
+if (len(sys.argv) > 1):
+ arg = sys.argv[1]
-f = open(arg,"rb")
+f = open(arg, "rb")
-l=f.readline()
+l = f.readline()
sum = {}
-cnt={}
+cnt = {}
-while(l!=""):
+while(l != ""):
- s=l.split("-")
- amount = int(s[1])
- what=s[2]
- if (what in sum):
- sum[what]+=amount
- cnt[what]+=1
- else:
- sum[what]=amount
- cnt[what]=1
+ s = l.split("-")
+ amount = int(s[1])
+ what = s[2]
+ if (what in sum):
+ sum[what] += amount
+ cnt[what] += 1
+ else:
+ sum[what] = amount
+ cnt[what] = 1
- l=f.readline()
+ l = f.readline()
for x in sum:
- print(x.strip()+"("+str(cnt[x])+"):\n: "+str(sum[x]))
+ print(x.strip() + "(" + str(cnt[x]) + "):\n: " + str(sum[x]))
diff --git a/tools/scripts/svgs_2_pngs.py b/tools/scripts/svgs_2_pngs.py
index 879926ab42..b24324dcd7 100644
--- a/tools/scripts/svgs_2_pngs.py
+++ b/tools/scripts/svgs_2_pngs.py
@@ -51,7 +51,7 @@ def export_icons():
# name without extensions
name_only = file_name.replace('.svg', '')
- out_icon_names = [name_only] # export to a png with the same file name
+ out_icon_names = [name_only] # export to a png with the same file name
theme_out_icon_names = []
# special cases
if special_icons.has_key(name_only):
@@ -73,7 +73,6 @@ def export_icons():
svg_to_png(source_path, theme_dir_base + theme_out_icon_name, 90)
-
def export_theme():
svgs_path = theme_dir_source
file_names = [f for f in listdir(svgs_path) if isfile(join(svgs_path, f))]
@@ -82,7 +81,7 @@ def export_theme():
# name without extensions
name_only = file_name.replace('.svg', '')
- out_icon_names = [name_only] # export to a png with the same file name
+ out_icon_names = [name_only] # export to a png with the same file name
# special cases
if theme_icons.has_key(name_only):
special_icon = theme_icons[name_only]
@@ -102,36 +101,36 @@ special_icons = {
output_names=['icon_add'],
theme_output_names=['icon_add', 'icon_zoom_more']
),
- 'icon_new': dict( output_names=['icon_file'] ),
- 'icon_animation_tree_player': dict( output_names=['icon_animation_tree'] ),
+ 'icon_new': dict(output_names=['icon_file']),
+ 'icon_animation_tree_player': dict(output_names=['icon_animation_tree']),
'icon_tool_rotate': dict(
output_names=['icon_reload'],
- theme_output_names= ['icon_reload']
+ theme_output_names=['icon_reload']
),
- 'icon_multi_edit': dict( output_names=['icon_multi_node_edit'] ),
+ 'icon_multi_edit': dict(output_names=['icon_multi_node_edit']),
'icon_folder': dict(
output_names=['icon_load', 'icon_open'],
- theme_output_names= ['icon_folder']
+ theme_output_names=['icon_folder']
),
- 'icon_file_list': dict( output_names=['icon_enum'] ),
- 'icon_collision_2d': dict( output_names=['icon_collision_polygon_2d', 'icon_polygon_2d'] ),
- 'icon_class_list': dict( output_names=['icon_filesystem'] ),
- 'icon_color_ramp': dict( output_names=['icon_graph_color_ramp'] ),
- 'icon_translation': dict( output_names=['icon_p_hash_translation'] ),
- 'icon_shader': dict( output_names=['icon_shader_material', 'icon_material_shader'] ),
- 'icon_canvas_item_shader_graph': dict( output_names=['icon_material_shader_graph'] ),
-
- 'icon_color_pick': dict( theme_output_names= ['icon_color_pick'], avoid_self=True ),
- 'icon_play': dict( theme_output_names= ['icon_play'] ),
- 'icon_stop': dict( theme_output_names= ['icon_stop'] ),
- 'icon_zoom_less': dict( theme_output_names= ['icon_zoom_less'], avoid_self=True ),
- 'icon_zoom_reset': dict( theme_output_names= ['icon_zoom_reset'], avoid_self=True ),
+ 'icon_file_list': dict(output_names=['icon_enum']),
+ 'icon_collision_2d': dict(output_names=['icon_collision_polygon_2d', 'icon_polygon_2d']),
+ 'icon_class_list': dict(output_names=['icon_filesystem']),
+ 'icon_color_ramp': dict(output_names=['icon_graph_color_ramp']),
+ 'icon_translation': dict(output_names=['icon_p_hash_translation']),
+ 'icon_shader': dict(output_names=['icon_shader_material', 'icon_material_shader']),
+ 'icon_canvas_item_shader_graph': dict(output_names=['icon_material_shader_graph']),
+
+ 'icon_color_pick': dict(theme_output_names=['icon_color_pick'], avoid_self=True),
+ 'icon_play': dict(theme_output_names=['icon_play']),
+ 'icon_stop': dict(theme_output_names=['icon_stop']),
+ 'icon_zoom_less': dict(theme_output_names=['icon_zoom_less'], avoid_self=True),
+ 'icon_zoom_reset': dict(theme_output_names=['icon_zoom_reset'], avoid_self=True),
'icon_snap': dict(theme_output_names=['icon_snap'])
}
theme_icons = {
- 'icon_close': dict(output_names=['close', 'close_hl']),
- 'tab_menu': dict(output_names=['tab_menu_hl'])
+ 'icon_close': dict(output_names=['close', 'close_hl']),
+ 'tab_menu': dict(output_names=['tab_menu_hl'])
}
export_icons()
diff --git a/tools/translations/ar.po b/tools/translations/ar.po
index de03046e16..0bfef1cfe1 100644
--- a/tools/translations/ar.po
+++ b/tools/translations/ar.po
@@ -1,5 +1,5 @@
# Arabic translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Mohammmad Khashashneh <mohammad.rasmi@gmail.com>, 2016.
@@ -33,12 +33,6 @@ msgid "step argument is zero!"
msgstr ""
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr ""
@@ -383,74 +377,74 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -562,10 +556,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -625,7 +615,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1768,6 +1759,11 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "عمل اشتراك"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1835,7 +1831,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2060,7 +2058,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2740,6 +2740,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2967,6 +2968,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3867,6 +3872,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4731,18 +4779,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5505,6 +5541,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5964,10 +6058,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6111,7 +6201,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6144,10 +6234,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6224,14 +6310,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6240,10 +6318,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6282,10 +6356,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6310,10 +6380,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6352,10 +6418,15 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "عمل اشتراك"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr ""
@@ -6378,13 +6449,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6480,6 +6549,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6492,15 +6565,16 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "عمل اشتراك"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6512,7 +6586,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6678,3 +6752,7 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
diff --git a/tools/translations/bg.po b/tools/translations/bg.po
index f1fdc9086a..9197a6e702 100644
--- a/tools/translations/bg.po
+++ b/tools/translations/bg.po
@@ -1,5 +1,5 @@
# Bulgarian translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Bojidar Marinov <bojidar.marinov.bg@gmail.com>, 2016.
@@ -35,12 +35,6 @@ msgid "step argument is zero!"
msgstr "Стъпката на range() е нула!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
#, fuzzy
msgid "Not a script with an instance"
msgstr "Скриптът няма инстанция"
@@ -395,75 +389,75 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Error creating the signature object."
msgstr "Имаше грешка при изнасяне на проекта!"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -601,10 +595,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -667,7 +657,8 @@ msgstr ""
msgid "Cancel"
msgstr "Отказ"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "Добре"
@@ -1811,6 +1802,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1878,7 +1873,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2103,7 +2100,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Изберете главна сцена"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2784,6 +2783,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -3011,6 +3011,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3911,6 +3915,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4776,18 +4823,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5550,6 +5585,66 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Създаване на папка"
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Преходи"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -6009,10 +6104,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6156,7 +6247,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6190,10 +6281,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6272,14 +6359,6 @@ msgid "Scene Run Settings"
msgstr "Настройки за пускане на сцена"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6288,10 +6367,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6330,10 +6405,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6358,10 +6429,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6400,8 +6467,14 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Script"
+msgstr "Нова сцена"
+
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Нова сцена"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6427,13 +6500,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6529,6 +6600,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Грешка при зареждането на шрифта."
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6541,15 +6617,16 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "Създаване на папка"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6561,8 +6638,9 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Node Script"
+msgstr "Нова сцена"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6727,3 +6805,7 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
diff --git a/tools/translations/bn.po b/tools/translations/bn.po
index 19861e2158..a3a3a072fc 100644
--- a/tools/translations/bn.po
+++ b/tools/translations/bn.po
@@ -1,14 +1,14 @@
# Bengali translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
-# Abu Md. Maruf Sarker <maruf.webdev@gmail.com>, 2016.
+# Abu Md. Maruf Sarker <maruf.webdev@gmail.com>, 2016-2017.
# Tahmid Karim <tahmidk15@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-09-02 13:47+0000\n"
+"PO-Revision-Date: 2017-01-07 04:19+0000\n"
"Last-Translator: ABU MD. MARUF SARKER <maruf.webdev@gmail.com>\n"
"Language-Team: Bengali <https://hosted.weblate.org/projects/godot-engine/"
"godot/bn/>\n"
@@ -16,12 +16,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.8\n"
+"X-Generator: Weblate 2.11-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "অগ্রহণযোগ্য মান convert()-এ গিয়েছে, TYPE_* ধ্রুবক ব্যবহার করুন।"
+msgstr "অগ্রহণযোগ্য মান/আর্গুমেন্ট convert()-এ গিয়েছে, TYPE_* ধ্রুবক ব্যবহার করুন।"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -30,13 +30,7 @@ msgstr "বিন্যাস জানার জন্য যথেষ্ট
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr "ধাপ মান শূন্য!"
-
-#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
+msgstr "ধাপ মান/আর্গুমেন্ট শূন্য!"
#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
@@ -167,9 +161,8 @@ msgid "Editing Signal:"
msgstr "সংকেত/সিগন্যাল সম্পাদন:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Expression"
-msgstr "অ্যানিমেশনের (Anim) ট্র্যানজিশন/স্থানান্তরণ পরিবর্তন করুন"
+msgstr "অভিব্যক্তি (Expression) পরিবর্তন করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
@@ -178,84 +171,86 @@ msgstr "নোড সংযোজন করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
-"গেটার (Getter) ফেলতে/নামাতে মেটা কী (Meta) চাপুন। জেনেরিক সিগনেচার (generic "
-"signature) ফেলতে/নামাতে শিফট কী (Shift) চাপুন।"
+"গেটার (Getter) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন। জেনেরিক সিগনেচার "
+"(generic signature) তৈরি করতে/নামাতে শিফট কী (Shift) চেপে রাখুন।"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
-"গেটার (Getter) ফেলতে/নামাতে কন্ট্রোল কী (Ctrl) চাপুন। জেনেরিক সিগনেচার (generic "
-"signature) ফেলতে/নামাতে শিফট কী (Shift) চাপুন।"
+"গেটার (Getter) তৈরি করতে/নামাতে কন্ট্রোল কী (Ctrl) চেপে রাখুন। জেনেরিক সিগনেচার "
+"(generic signature) তৈরি করতে/নামাতে শিফট কী (Shift) চেপে রাখুন।"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a simple reference to the node."
msgstr ""
+"নোডে সাধারণ সম্পর্ক (reference) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন।"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
msgstr ""
+"নোডে সাধারণ সম্পর্ক (reference) তৈরি করতে/নামাতে কন্ট্রোল কী (Ctrl) চেপে রাখুন।"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a Variable Setter."
-msgstr ""
+msgstr "চলক সেটার (Variable Setter) তৈরি করতে/নামাতে মেটা কী (Meta) চেপে রাখুন।"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Variable Setter."
msgstr ""
+"চলক সেটার (Variable Setter) তৈরি করতে/নামাতে কন্ট্রোল কী (Ctrl) চেপে রাখুন।"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Preload Node"
-msgstr ""
+msgstr "প্রিলোড নোড যুক্ত করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
-msgstr ""
+msgstr "শাখা (tree) হতে নোড (সমূহ) যুক্ত করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
-msgstr ""
+msgstr "গেটার (Getter) এর বৈশিষ্ট্যে যুক্ত করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
-msgstr ""
+msgstr "সেটার (Setter) এর বৈশিষ্ট্যে যুক্ত করুন"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "অনুবাদসমূহ"
+msgstr "শর্ত (Condition)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "ক্রম (Sequence)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Switch"
-msgstr ""
+msgstr "সুইচ (Switch)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "পুনরুক্তিকারী (Iterator)"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "যতক্ষণ (While)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Return"
-msgstr ""
+msgstr "ফেরৎ পাঠান (Return)"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
-msgstr ""
+msgstr "ডাকুন (Call)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Get"
-msgstr ""
+msgstr "মান পান (Get)"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
msgid "Set"
-msgstr ""
+msgstr "নিযুক্ত করুন (Set)"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -264,23 +259,23 @@ msgstr ""
#: tools/editor/plugins/shader_editor_plugin.cpp
#: tools/editor/project_manager.cpp
msgid "Edit"
-msgstr ""
+msgstr "সম্পাদন করুন (Edit)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Base Type:"
-msgstr ""
+msgstr "তলের ধরণ (Base Type):"
#: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp
msgid "Members:"
-msgstr ""
+msgstr "সদস্যগণ (Members):"
#: modules/visual_script/visual_script_editor.cpp
msgid "Available Nodes:"
-msgstr ""
+msgstr "উপস্থিত নোডসমূহ:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit graph"
-msgstr ""
+msgstr "গ্রাফ সম্পাদন করতে ফাংশন নির্বাচন অথবা তৈরি করুন"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
#: tools/editor/connections_dialog.cpp
@@ -293,19 +288,19 @@ msgstr ""
#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
#: tools/editor/run_settings_dialog.cpp tools/editor/settings_config_dialog.cpp
msgid "Close"
-msgstr ""
+msgstr "বন্ধ করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Signal Arguments:"
-msgstr ""
+msgstr "সংকেত/সিগন্যাল-এর মান/আর্গুমেন্ট-সমূহ সম্পাদন করুন:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Variable:"
-msgstr ""
+msgstr "চলক/ভেরিয়েবল সম্পাদন করুন:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change"
-msgstr ""
+msgstr "পরিবর্তন করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
@@ -314,19 +309,19 @@ msgstr "নির্বাচিত সমূহ অপসারণ করুন
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/plugins/script_text_editor.cpp
msgid "Toggle Breakpoint"
-msgstr ""
+msgstr "ছেদবিন্দু অদলবদল করুন (টগল ব্রেকপয়েন্ট)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr ""
+msgstr "নোডের ধরণ সন্ধান করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
-msgstr ""
+msgstr "নোড-সমূহ প্রতিলিপি/কপি করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr ""
+msgstr "নোড-সমূহ কর্তন/কাট করুন"
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste Nodes"
@@ -334,138 +329,142 @@ msgstr "নোড-সমূহ প্রতিলেপন/পেস্ট ক
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr ""
+msgstr "যোগান/ইনপুট-এর ধরণ পুনরাবৃত্তিমূলক নয়: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr ""
+msgstr "পুনরাবৃত্তকারী অকার্যকর হয়ে পড়েছে"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr ""
+msgstr "পুনরাবৃত্তকারী অকার্যকর হয়ে পড়েছে: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
-msgstr ""
+msgstr "সূচক/ইনডেক্স মানের অগ্রহনযোগ্য নাম।"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr ""
+msgstr "ভিত্তিটি (বেস) নোড নয়!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
-msgstr ""
+msgstr "পথটি নোডকে দিকনির্দেশ করে না!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr ""
+msgstr "%s নোডে সূচক/ইনডেক্স মানের অগ্রহনযোগ্য নাম '%s'।"
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ""
+msgstr ": অগ্রহনযোগ্য মান/আর্গুমেন্ট-এর ধরণ: "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
-msgstr ""
+msgstr ": অগ্রহনযোগ্য মান/আর্গুমেন্ট-সমূহ: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
-msgstr ""
+msgstr "স্ক্রিপ্টে চলক-প্রাপক (VariableGet) পাওয়া যায়নি: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableSet not found in script: "
-msgstr ""
+msgstr "স্ক্রিপ্টে চলক-স্থাপক (VariableSet) পাওয়া যায়নি: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
-msgstr ""
+msgstr "স্বনির্মিত (custom) নোডে কোনো _step() মেথড নেই, গ্রাফ প্রক্রিয়াকরণ অসম্ভব।"
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
+"_step() হতে অগ্রহনযোগ্য মান ফেরৎ এসেছে, মান অবশ্যই পূর্ণসংখ্যা (integer) (ক্রমিক), "
+"অথবা শব্দমালা/বাক্য (string) (ভুল/সমস্যা) হতে হবে।"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "এইমাত্র চাপিত"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "এইমাত্র অব্যাহিত/মুক্ত"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"সার্টিফিকেট ফাইলটি পড়া সম্ভব হচ্ছে না। ফাইলের পথ এবং পাসওয়ার্ড দুটোই কি সঠিক দেয়া "
+"হয়েছে?"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr ""
+msgstr "স্বাক্ষরিত বস্তু (signature object) তৈরিতে সমস্যা হয়েছে।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "প্যাকেজের স্বাক্ষর (package signature) তৈরিতে সমস্যা হয়েছে।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"এক্সপোর্ট এর জন্য প্রয়োজণীয় টেমপ্লেট পাওয়া যায়নি।\n"
+"এক্সপোর্ট টেমপ্লেট-সমূহ ডাউনলোড করে ইন্সটল করুন।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "স্বনির্মিত ডিবাগ (debug) প্যাকেজ খুঁজে পাওয়া যায়নি।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "স্বনির্মিত রিলিস (release) প্যাকেজ খুঁজে পাওয়া যায়নি।"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "ফন্টের আকার অগ্র্যহনযোগ্য।"
+msgstr "একক (অনন্য) নামটি অগ্রহনযোগ্য।"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "ফন্টের আকার অগ্র্যহনযোগ্য।"
+msgstr "পণ্যের অগ্রহনযোগ্য GUID।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr ""
+msgstr "প্রকাশকের অগ্রহনযোগ্য GUID।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr ""
+msgstr "পটভূমির (background) অগ্রহনযোগ্য রঙ।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "স্টোর লোগোর (Store Logo) ছবির অগ্রহনযোগ্য মাত্রা (৫০x৫০ হতে হবে)।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "৪৪x৪৪ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৪৪x৪৪ হতে হবে)।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "৭১x৭১ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৭১x৭১ হতে হবে)।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "১৫০x১৫০ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (১৫০x১৫০ হতে হবে)।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "৩১০x৩১০ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৩১০x৩১০ হতে হবে)।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "৩১০x১৫০ প্রশস্ত লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৩১০x১৫০ হতে হবে)।"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "স্প্ল্যাশ পর্দার (splash screen) ছবির অগ্রহনযোগ্য মাত্রা (৬২০x৩০০ হতে হবে)।"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -480,8 +479,8 @@ msgid ""
"Only one visible CanvasModulate is allowed per scene (or set of instanced "
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
-"প্রতি scene-এ (অথবা ইন্সট্যান্সড scene-এর সম্মেলনে) সর্বোচ্চ একটি দৃশ্যমান "
-"CanvasModulate সম্ভব। সর্বপ্রথমেরটি দৃশ্যত হলেও বাকিগুলো বাতিল হয়ে যাবে।"
+"প্রতি দৃশ্যে (অথবা ইন্সট্যান্সড দৃশ্যের সম্মেলনে) সর্বোচ্চ একটি দৃশ্যমান CanvasModulate "
+"সম্ভব। সর্বপ্রথমেরটি দৃশ্যত হলেও বাকিগুলো বাতিল হয়ে যাবে।"
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -598,10 +597,6 @@ msgstr ""
"VisibilityEnable2D সর্বোত্তম কার্যকর হয় যখন সম্পাদিত দৃশ্য মূল দৃশ্য হিসেবে সরাসরি "
"ব্যবহৃত হয়।"
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -649,16 +644,15 @@ msgstr ""
"এটা শুধুমাত্র ন্যাভিগেশনের তথ্য প্রদান করে।"
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid "Path property must point to a valid Spatial node to work."
-msgstr "Path এর দিক অবশ্যই একটি কার্যকর Particles2D এর দিকে নির্দেশ করাতে হবে।"
+msgstr "Path এর দিক অবশ্যই একটি কার্যকর Spatial নোডের এর দিকে নির্দেশ করাতে হবে।"
#: scene/3d/scenario_fx.cpp
msgid ""
"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
msgstr ""
-"প্রতি scene-এ (অথবা ইন্সট্যান্সড scene-এর সম্মেলনে) সর্বোচ্চ একটি দৃশ্যমান "
-"WorldEnvironment সম্ভব।"
+"প্রতি দৃশ্যে (অথবা ইন্সট্যান্সড দৃশ্যের সম্মেলনে) সর্বোচ্চ একটি দৃশ্যমান WorldEnvironment "
+"সম্ভব।"
#: scene/3d/spatial_sample_player.cpp
msgid ""
@@ -680,7 +674,8 @@ msgstr ""
msgid "Cancel"
msgstr "বাতিল"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "সঠিক"
@@ -912,7 +907,7 @@ msgstr "ফন্ট তুলতে/লোডে সমস্যা হয়ে
#: scene/resources/dynamic_font.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Invalid font size."
-msgstr "ফন্টের আকার অগ্র্যহনযোগ্য।"
+msgstr "ফন্টের আকার অগ্রহনযোগ্য।"
#: tools/editor/animation_editor.cpp
msgid "Disabled"
@@ -1171,83 +1166,84 @@ msgstr "নির্বাচিত ট্র্যাক/পথ অপসার
#: tools/editor/animation_editor.cpp
msgid "Track tools"
-msgstr ""
+msgstr "ট্র্যাক/পথের সরঞ্জামসমূহ"
#: tools/editor/animation_editor.cpp
msgid "Enable editing of individual keys by clicking them."
-msgstr ""
+msgstr "প্রতিটি চাবির সম্পাদন-যোগ্যতা সক্রিয় করার জন্য তাদের নির্বাচন করুন।"
#: tools/editor/animation_editor.cpp
msgid "Anim. Optimizer"
-msgstr ""
+msgstr "অ্যানিমেশন পরিমার্জনকারী"
#: tools/editor/animation_editor.cpp
msgid "Max. Linear Error:"
-msgstr ""
+msgstr "সর্বোচ্চ রৈখিক ভুল/সমস্যা:"
#: tools/editor/animation_editor.cpp
msgid "Max. Angular Error:"
-msgstr ""
+msgstr "সর্বোচ্চ কৌণিক ভুল/সমস্যা:"
#: tools/editor/animation_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr ""
+msgstr "সর্বোচ্চ পরিশোধনযোগ্য কোণ:"
#: tools/editor/animation_editor.cpp
msgid "Optimize"
-msgstr ""
+msgstr "পরিমার্জন করুন"
#: tools/editor/animation_editor.cpp
msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
msgstr ""
+"অ্যানিমেশনসমূহ সম্পাদন করতে দৃশ্যের তালিকা থেকে একটি AnimationPlayer নির্বাচন করুন।"
#: tools/editor/animation_editor.cpp
msgid "Key"
-msgstr ""
+msgstr "চাবি"
#: tools/editor/animation_editor.cpp
msgid "Transition"
-msgstr ""
+msgstr "ট্র্যানজিশন/স্থানান্তরণ"
#: tools/editor/animation_editor.cpp
msgid "Scale Ratio:"
-msgstr ""
+msgstr "স্কেল/মাপের অনুপাত:"
#: tools/editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
-msgstr ""
+msgstr "কোন নোডে ফাংশন(সমূহ) ডাকবেন?"
#: tools/editor/animation_editor.cpp
msgid "Remove invalid keys"
-msgstr ""
+msgstr "অগ্রহনযোগ্য চাবিসমূহ অপসারণ করুন"
#: tools/editor/animation_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr ""
+msgstr "অমীমাংসিত এবং খালি/অসার ট্র্যাক/পথসমূহ অপসারণ করুন"
#: tools/editor/animation_editor.cpp
msgid "Clean-up all animations"
-msgstr ""
+msgstr "সকল অ্যানিমেশনসমূহ পরিচ্ছন্ন করুন"
#: tools/editor/animation_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
+msgstr "সকল অ্যানিমেশনসমূহ পরিচ্ছন্ন করুন (অফেরৎযোগ্য!)"
#: tools/editor/animation_editor.cpp
msgid "Clean-Up"
-msgstr ""
+msgstr "পরিচ্ছন্ন করুন"
#: tools/editor/array_property_edit.cpp
msgid "Resize Array"
-msgstr ""
+msgstr "শ্রেণীবিন্যাস/সারি পুনর্মাপন করুন"
#: tools/editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr ""
+msgstr "শ্রেণীবিন্যাস/সারির মানের ধরণ পরিবর্তন করুন"
#: tools/editor/array_property_edit.cpp
msgid "Change Array Value"
-msgstr ""
+msgstr "শ্রেণীবিন্যাস/সারির মান পরিবর্তন করুন"
#: tools/editor/asset_library_editor_plugin.cpp tools/editor/create_dialog.cpp
#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
@@ -1255,100 +1251,100 @@ msgstr ""
#: tools/editor/property_selector.cpp tools/editor/quick_open.cpp
#: tools/editor/settings_config_dialog.cpp
msgid "Search:"
-msgstr ""
+msgstr "অনুসন্ধান করুন:"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Sort:"
-msgstr ""
+msgstr "সাজান:"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Reverse"
-msgstr ""
+msgstr "উল্টান/বিপরীত দিকে ফিরান"
#: tools/editor/asset_library_editor_plugin.cpp
#: tools/editor/project_settings.cpp
msgid "Category:"
-msgstr ""
+msgstr "বিভাগ:"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "All"
-msgstr ""
+msgstr "সকল"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr ""
+msgstr "ওয়েবসাইট:"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Support.."
-msgstr ""
+msgstr "সমর্থন.."
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "অফিসিয়াল/প্রাথমিক উৎস"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "কমিউনিটি/যৌথ-সামাজিক উৎস"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr ""
+msgstr "পরীক্ষামূলক উৎস"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr ""
+msgstr "প্রয়োজনীয় উপকরণসমূহের ZIP ফাইল"
#: tools/editor/call_dialog.cpp
msgid "Method List For '%s':"
-msgstr ""
+msgstr "'%s' এর জন্য মেথডের তালিকা:"
#: tools/editor/call_dialog.cpp
msgid "Method List:"
-msgstr ""
+msgstr "মেথডের তালিকা:"
#: tools/editor/call_dialog.cpp
msgid "Arguments:"
-msgstr ""
+msgstr "মান/আর্গুমেন্ট-সমূহ:"
#: tools/editor/call_dialog.cpp
msgid "Return:"
-msgstr ""
+msgstr "প্রত্যাবর্তন:"
#: tools/editor/code_editor.cpp
msgid "Go to Line"
-msgstr ""
+msgstr "লাইন-এ যান"
#: tools/editor/code_editor.cpp
msgid "Line Number:"
-msgstr ""
+msgstr "লাইন নাম্বার:"
#: tools/editor/code_editor.cpp
msgid "No Matches"
-msgstr ""
+msgstr "কোনো মিল নেই"
#: tools/editor/code_editor.cpp
msgid "Replaced %d Ocurrence(s)."
-msgstr ""
+msgstr "%d টি সংঘটন প্রতিস্থাপিত হয়েছে।"
#: tools/editor/code_editor.cpp
msgid "Replace"
-msgstr ""
+msgstr "প্রতিস্থাপন করুন"
#: tools/editor/code_editor.cpp
msgid "Replace All"
-msgstr ""
+msgstr "সমস্তগুলি প্রতিস্থাপন করুন"
#: tools/editor/code_editor.cpp
msgid "Match Case"
-msgstr ""
+msgstr "অক্ষরের মাত্রা (বড়/ছোট-হাতের) মিল করুন"
#: tools/editor/code_editor.cpp
msgid "Whole Words"
-msgstr ""
+msgstr "সম্পূর্ণ শব্দ"
#: tools/editor/code_editor.cpp
msgid "Selection Only"
-msgstr ""
+msgstr "শুধুমাত্র নির্বাচিতসমূহ"
#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
#: tools/editor/plugins/script_editor_plugin.cpp
@@ -1356,79 +1352,81 @@ msgstr ""
#: tools/editor/plugins/shader_editor_plugin.cpp
#: tools/editor/project_settings.cpp
msgid "Search"
-msgstr ""
+msgstr "অনুসন্ধান করুন"
#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
msgid "Find"
-msgstr ""
+msgstr "সন্ধান করুন"
#: tools/editor/code_editor.cpp
msgid "Next"
-msgstr ""
+msgstr "পরবর্তী"
#: tools/editor/code_editor.cpp
msgid "Replaced %d ocurrence(s)."
-msgstr ""
+msgstr "%d টি সংঘটন প্রতিস্থাপিত হয়েছে।"
#: tools/editor/code_editor.cpp
msgid "Not found!"
-msgstr ""
+msgstr "খুঁজে পাওয়া যায়নি!"
#: tools/editor/code_editor.cpp
msgid "Replace By"
-msgstr ""
+msgstr "এর দ্বারা প্রতিস্থাপন করুন"
#: tools/editor/code_editor.cpp
msgid "Case Sensitive"
-msgstr ""
+msgstr "অক্ষরের মাত্রা (বড়/ছোট-হাতের) সংবেদনশীল"
#: tools/editor/code_editor.cpp
msgid "Backwards"
-msgstr ""
+msgstr "পিছনের/অতীতের দিকে"
#: tools/editor/code_editor.cpp
msgid "Prompt On Replace"
-msgstr ""
+msgstr "প্রতিস্থাপনে অবহিত করুন"
#: tools/editor/code_editor.cpp
msgid "Skip"
-msgstr ""
+msgstr "অতিক্রম করে যান"
#: tools/editor/code_editor.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom In"
-msgstr ""
+msgstr "সম্প্রসারিত করুন (জুম্ ইন)"
#: tools/editor/code_editor.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom Out"
-msgstr ""
+msgstr "সংকুচিত করুন (জুম্ আউট)"
#: tools/editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr ""
+msgstr "সম্প্রসারন/সংকোচন অপসারণ করুন (রিসেট জুম্)"
#: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp
msgid "Line:"
-msgstr ""
+msgstr "লাইন:"
#: tools/editor/code_editor.cpp
msgid "Col:"
-msgstr ""
+msgstr "কলাম:"
#: tools/editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
-msgstr ""
+msgstr "নির্দেশিত নোডের মেথড নির্দিষ্ট করতে হবে!"
#: tools/editor/connections_dialog.cpp
msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"উদ্দেশ্যিত মেথড পাওয়া যায়নি! উদ্দেশ্যিত নোডে একটি কার্যকর মেথড নির্দিষ্ট করুন অথবা "
+"একটি স্ক্রিপ্ট ফাইল সংযুক্ত করুন।"
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
-msgstr ""
+msgstr "নোডের সাথে সংযুক্ত করুন:"
#: tools/editor/connections_dialog.cpp
#: tools/editor/editor_autoload_settings.cpp tools/editor/groups_editor.cpp
@@ -1436,144 +1434,148 @@ msgstr ""
#: tools/editor/plugins/theme_editor_plugin.cpp
#: tools/editor/project_settings.cpp
msgid "Add"
-msgstr ""
+msgstr "সংযোজন করুন"
#: tools/editor/connections_dialog.cpp tools/editor/dependency_editor.cpp
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
#: tools/editor/plugins/theme_editor_plugin.cpp
#: tools/editor/project_manager.cpp
msgid "Remove"
-msgstr ""
+msgstr "অপসারণ করুন"
#: tools/editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr ""
+msgstr "ডাকযোগ্য অতিরিক্ত মান/আর্গুমেন্ট সংযুক্ত করুন:"
#: tools/editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr ""
+msgstr "ডাকযোগ্য অতিরিক্ত মান/আর্গুমেন্ট-সমূহ:"
#: tools/editor/connections_dialog.cpp
msgid "Path to Node:"
-msgstr ""
+msgstr "নোডের পথ:"
#: tools/editor/connections_dialog.cpp
msgid "Make Function"
-msgstr ""
+msgstr "নির্মাণ ফাংশন"
#: tools/editor/connections_dialog.cpp
msgid "Deferred"
-msgstr ""
+msgstr "বিলম্বিত"
#: tools/editor/connections_dialog.cpp
msgid "Oneshot"
-msgstr ""
+msgstr "ওয়ান-শট"
#: tools/editor/connections_dialog.cpp
msgid "Connect"
-msgstr ""
+msgstr "সংযোগ"
#: tools/editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr ""
+msgstr "'%s' এর সাথে '%s' সংযুক্ত করুন"
#: tools/editor/connections_dialog.cpp
msgid "Connecting Signal:"
-msgstr ""
+msgstr "সংযোজক সংকেত/সিগন্যাল:"
#: tools/editor/connections_dialog.cpp
msgid "Create Subscription"
-msgstr ""
+msgstr "সদস্যতা/সাবস্ক্রিপশন তৈরি করুন"
#: tools/editor/connections_dialog.cpp
msgid "Connect.."
-msgstr ""
+msgstr "সংযোগ.."
#: tools/editor/connections_dialog.cpp
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Disconnect"
-msgstr ""
+msgstr "সংযোগ বিচ্ছিন্ন করুন"
#: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp
msgid "Signals"
-msgstr ""
+msgstr "সংকেতসমূহ"
#: tools/editor/create_dialog.cpp
msgid "Create New"
-msgstr ""
+msgstr "নতুন তৈরি করুন"
#: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/filesystem_dock.cpp
msgid "Favorites:"
-msgstr ""
+msgstr "ফেবরিট/প্রিয়-সমূহ:"
#: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Recent:"
-msgstr ""
+msgstr "সাম্প্রতিক:"
#: tools/editor/create_dialog.cpp tools/editor/editor_help.cpp
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/property_selector.cpp tools/editor/quick_open.cpp
msgid "Matches:"
-msgstr ""
+msgstr "মিলসমূহ:"
#: tools/editor/create_dialog.cpp tools/editor/editor_help.cpp
#: tools/editor/property_selector.cpp tools/editor/script_editor_debugger.cpp
msgid "Description:"
-msgstr ""
+msgstr "বর্ণনা:"
#: tools/editor/dependency_editor.cpp
msgid "Search Replacement For:"
-msgstr ""
+msgstr "এর জন্য প্রতিস্থাপকের অনুসন্ধান করুন:"
#: tools/editor/dependency_editor.cpp
msgid "Dependencies For:"
-msgstr ""
+msgstr "এর জন্য নির্ভরতা-সমূহ:"
#: tools/editor/dependency_editor.cpp
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will not take effect unless reloaded."
msgstr ""
+"'%s' দৃশ্যটি এই-মুহূর্তে সম্পাদিত হচ্ছে।\n"
+"পুনরায়-লোড (রিলোড) না করা পর্যন্ত পরিবর্তন-সমূহ কার্যকর হবে না।"
#: tools/editor/dependency_editor.cpp
msgid ""
"Resource '%s' is in use.\n"
"Changes will take effect when reloaded."
msgstr ""
+"'%s' রিসোর্সটি ব্যবহৃত হচ্ছে।\n"
+"পুনরায়-লোড (রিলোড)-এর সময় পরিবর্তনসমূহ কার্যকর হবে।"
#: tools/editor/dependency_editor.cpp
msgid "Dependencies"
-msgstr ""
+msgstr "নির্ভরতা-সমূহ"
#: tools/editor/dependency_editor.cpp
msgid "Resource"
-msgstr ""
+msgstr "রিসোর্স"
#: tools/editor/dependency_editor.cpp tools/editor/editor_autoload_settings.cpp
#: tools/editor/project_manager.cpp tools/editor/project_settings.cpp
msgid "Path"
-msgstr ""
+msgstr "পথ"
#: tools/editor/dependency_editor.cpp
msgid "Dependencies:"
-msgstr ""
+msgstr "নির্ভরতা-সমূহ:"
#: tools/editor/dependency_editor.cpp
msgid "Fix Broken"
-msgstr ""
+msgstr "ত্রুটিপূর্ণ/ভগ্ন-অংশসমূহ ঠিক করুন"
#: tools/editor/dependency_editor.cpp
msgid "Dependency Editor"
-msgstr ""
+msgstr "নির্ভরতা-সমূহের এডিটর"
#: tools/editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr ""
+msgstr "প্রতিস্থাপক রিসোর্স-এর অনুসন্ধান করুন:"
#: tools/editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr ""
+msgstr "স্বত্বাধিকারীসমূহ:"
#: tools/editor/dependency_editor.cpp
msgid ""
@@ -1583,432 +1585,447 @@ msgid ""
msgstr ""
"যেসব ফাইল অপসারিত হচ্ছে তারা অন্যান্য রিসোর্স ফাইলের কার্যকররুপে কাজ করার জন্য "
"দরকারি।\n"
-"তবুও তাদের অপসারণ করবেন? (তাদের আর ফেরত পাবেন না/আনডু অসম্ভব)"
+"তবুও তাদের অপসারণ করবেন? (অফেরৎযোগ্য)"
#: tools/editor/dependency_editor.cpp
msgid "Remove selected files from the project? (no undo)"
-msgstr ""
+msgstr "নির্বাচিত ফাইলসমূহ প্রকল্প হতে অপসারণ করবেন? (অফেরৎযোগ্য)"
#: tools/editor/dependency_editor.cpp
msgid "Error loading:"
-msgstr ""
+msgstr "লোডে সমস্যা হয়েছে:"
#: tools/editor/dependency_editor.cpp
msgid "Scene failed to load due to missing dependencies:"
-msgstr ""
+msgstr "নির্ভরতা-সমূহের অনুপস্থিতিতে দৃশ্যের লোড ব্যর্থ হয়েছে:"
#: tools/editor/dependency_editor.cpp
msgid "Open Anyway"
-msgstr ""
+msgstr "যেকোনো উপায়েই খুলুন"
#: tools/editor/dependency_editor.cpp
msgid "Which action should be taken?"
-msgstr ""
+msgstr "কোন সিধান্তটি নেয়া উচিত হবে?"
#: tools/editor/dependency_editor.cpp
msgid "Fix Dependencies"
-msgstr ""
+msgstr "নির্ভরতা-সমূহ ঠিক করুন"
#: tools/editor/dependency_editor.cpp
msgid "Errors loading!"
-msgstr ""
+msgstr "লোডে একাধিক সমস্যা হয়েছে!"
#: tools/editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr ""
+msgstr "%d -টি বস্তু(সমূহ) স্থায়ীভাবে মুছে ফেলবেন? (অফেরৎযোগ্য!)"
#: tools/editor/dependency_editor.cpp
msgid "Owns"
-msgstr ""
+msgstr "আয়ত্তে"
#: tools/editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr ""
+msgstr "স্পষ্ট মালিকানা বিহীন রিসোর্সসমূহ:"
#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
msgid "Orphan Resource Explorer"
-msgstr ""
+msgstr "মালিকবিহীন রিসোর্সের অনুসন্ধানকারী"
#: tools/editor/dependency_editor.cpp
msgid "Delete selected files?"
-msgstr ""
+msgstr "নির্বাচিত ফাইলসমূহ অপসারণ করবেন?"
#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
#: tools/editor/filesystem_dock.cpp
#: tools/editor/plugins/item_list_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "Delete"
-msgstr ""
+msgstr "অপসারণ করুন"
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid name."
-msgstr ""
+msgstr "অগ্রহনযোগ্য নাম।"
#: tools/editor/editor_autoload_settings.cpp
msgid "Valid characters:"
-msgstr ""
+msgstr "গ্রহনযোগ্য অক্ষরসমূহ:"
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing engine class name."
msgstr ""
+"অগ্রহনযোগ্য নাম। নামটি অবশ্যই ইঞ্জিনে বিদ্যমান ক্লাসের নামের সাথে পরম্পরবিরোধী হতে "
+"পারবে না।"
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing buit-in type name."
msgstr ""
+"অগ্রহনযোগ্য নাম। নামটি অবশ্যই বিদ্যমান পূর্বনির্মিত ধরণের নামের সাথে পরম্পরবিরোধী "
+"হতে পারবে না।"
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing global constant name."
msgstr ""
+"অগ্রহনযোগ্য নাম। নামটি অবশ্যই বিদ্যমান সার্বজনীন ধ্রুবকের নামের সাথে পরম্পরবিরোধী "
+"হতে পারবে না।"
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid Path."
-msgstr ""
+msgstr "অকার্যকর পথ।"
#: tools/editor/editor_autoload_settings.cpp
msgid "File does not exist."
-msgstr ""
+msgstr "ফাইলটি বিদ্যমান নয়।"
#: tools/editor/editor_autoload_settings.cpp
msgid "Not in resource path."
-msgstr ""
+msgstr "রিসোর্সের পথে নয়।"
#: tools/editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
-msgstr ""
+msgstr "AutoLoad সংযুক্ত করুন"
#: tools/editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
-msgstr ""
+msgstr "'%s' এর AutoLoad ইতিমধ্যেই বিদ্যমান!"
#: tools/editor/editor_autoload_settings.cpp
msgid "Rename Autoload"
-msgstr ""
+msgstr "Autoload পুনঃনামকরণ করুন"
#: tools/editor/editor_autoload_settings.cpp
msgid "Toggle AutoLoad Globals"
-msgstr ""
+msgstr "AutoLoad এর সার্বজনীন মানসমূহ অদলবদল/টগল করুন"
#: tools/editor/editor_autoload_settings.cpp
msgid "Move Autoload"
-msgstr ""
+msgstr "Autoload স্থানান্তর করুন"
#: tools/editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr ""
+msgstr "Autoload অপসারণ করুন"
#: tools/editor/editor_autoload_settings.cpp
msgid "Enable"
-msgstr ""
+msgstr "সক্রিয় করুন"
#: tools/editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
-msgstr ""
+msgstr "Autoload সমূহ পুনর্বিন্যস্ত করুন"
#: tools/editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr ""
+msgstr "নোডের নাম:"
#: tools/editor/editor_autoload_settings.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/plugins/sample_library_editor_plugin.cpp
#: tools/editor/project_manager.cpp
msgid "Name"
-msgstr ""
+msgstr "নাম"
#: tools/editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr ""
+msgstr "একক-বস্তু/সিঙ্গেলটোন"
#: tools/editor/editor_autoload_settings.cpp
msgid "List:"
-msgstr ""
+msgstr "তালিকা:"
#: tools/editor/editor_data.cpp
msgid "Updating Scene"
-msgstr ""
+msgstr "দৃশ্য হাল নাগাদ হচ্ছে"
#: tools/editor/editor_data.cpp
msgid "Storing local changes.."
-msgstr ""
+msgstr "স্থানীয় পরিবর্তন-সমূহ সংরক্ষিত হচ্ছে.."
#: tools/editor/editor_data.cpp
msgid "Updating scene.."
-msgstr ""
+msgstr "দৃশ্য হাল নাগাদ হচ্ছে.."
#: tools/editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
-msgstr ""
+msgstr "একটি স্থান পছন্দ করুন"
#: tools/editor/editor_dir_dialog.cpp
msgid "Choose"
-msgstr ""
+msgstr "পছন্দ করুন"
#: tools/editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr ""
+msgstr "পিছনের দিকে যান"
#: tools/editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr ""
+msgstr "সামনের দিকে যান"
#: tools/editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr ""
+msgstr "উপরের দিকে যান"
#: tools/editor/editor_file_dialog.cpp
msgid "Refresh"
-msgstr ""
+msgstr "রিফ্রেস করুন"
#: tools/editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr ""
+msgstr "অদৃশ্য ফাইলসমূহ অদলবদল/টগল করুন"
#: tools/editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr ""
+msgstr "ফেবরিট/প্রিয়-সমূহ অদলবদল/টগল করুন"
#: tools/editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr ""
+msgstr "মোড অদলবদল/টগল করুন"
#: tools/editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr ""
+msgstr "পথের উপর ফোকাস করুন"
#: tools/editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr ""
+msgstr "ফেবরিট/প্রিয়কে উপরের দিকে তুলুন"
#: tools/editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr ""
+msgstr "ফেবরিট/প্রিয়কে নিচের দিকে নামান"
#: tools/editor/editor_file_dialog.cpp
msgid "Preview:"
-msgstr ""
+msgstr "প্রিভিউ:"
#: tools/editor/editor_file_system.cpp
msgid "ScanSources"
-msgstr ""
+msgstr "উৎসসমূহ স্ক্যান করুন"
#: tools/editor/editor_help.cpp tools/editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr ""
+msgstr "সাহায্য অনুসন্ধান করুন"
#: tools/editor/editor_help.cpp
msgid "Class List:"
-msgstr ""
+msgstr "ক্লাসের তালিকা:"
#: tools/editor/editor_help.cpp
msgid "Search Classes"
-msgstr ""
+msgstr "ক্লাসের অনুসন্ধান করুন"
#: tools/editor/editor_help.cpp tools/editor/property_editor.cpp
msgid "Class:"
-msgstr ""
+msgstr "ক্লাস:"
#: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp
#: tools/editor/script_create_dialog.cpp
msgid "Inherits:"
-msgstr ""
+msgstr "গ্রহণ করে:"
#: tools/editor/editor_help.cpp
msgid "Inherited by:"
-msgstr ""
+msgstr "গৃহীত হয়েছে:"
#: tools/editor/editor_help.cpp
msgid "Brief Description:"
-msgstr ""
+msgstr "সংক্ষিপ্ত বর্ণনা:"
#: tools/editor/editor_help.cpp
msgid "Public Methods:"
-msgstr ""
+msgstr "সর্বজনীন/প্রকাশ্য মেথডসমূহ:"
#: tools/editor/editor_help.cpp
msgid "GUI Theme Items:"
-msgstr ""
+msgstr "GUI থিম এর বস্তুসমূহ:"
#: tools/editor/editor_help.cpp
msgid "Constants:"
-msgstr ""
+msgstr "ধ্রুবকসমূহ:"
+
+#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "সংক্ষিপ্ত বর্ণনা:"
#: tools/editor/editor_help.cpp
msgid "Method Description:"
-msgstr ""
+msgstr "মেথডের বর্ণ্না:"
#: tools/editor/editor_help.cpp
msgid "Search Text"
-msgstr ""
+msgstr "টেক্সট অনুসন্ধান করুন"
#: tools/editor/editor_import_export.cpp
msgid "Added:"
-msgstr ""
+msgstr "সংযোজিত:"
#: tools/editor/editor_import_export.cpp
msgid "Removed:"
-msgstr ""
+msgstr "অপসারিত:"
#: tools/editor/editor_import_export.cpp tools/editor/project_export.cpp
msgid "Error saving atlas:"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলী সংরক্ষণে সমস্যা হয়েছে:"
#: tools/editor/editor_import_export.cpp
msgid "Could not save atlas subtexture:"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলীর উপ-গঠনবিন্যাস (subtexture) সংরক্ষণ অসমর্থ হয়েছে:"
#: tools/editor/editor_import_export.cpp
msgid "Storing File:"
-msgstr ""
+msgstr "সংরক্ষিত ফাইল:"
#: tools/editor/editor_import_export.cpp
msgid "Packing"
-msgstr ""
+msgstr "প্যাক/গুচ্ছিত করা"
#: tools/editor/editor_import_export.cpp
msgid "Exporting for %s"
-msgstr ""
+msgstr "%s এর জন্য এক্সপোর্ট (export) হচ্ছে"
#: tools/editor/editor_import_export.cpp
msgid "Setting Up.."
-msgstr ""
+msgstr "স্থাপিত/বিন্যস্ত হচ্ছে.."
#: tools/editor/editor_log.cpp
msgid " Output:"
-msgstr ""
+msgstr " আউটপুট/ফলাফল:"
#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
msgid "Re-Importing"
-msgstr ""
+msgstr "পুনরায় ইম্পোর্ট হচ্ছে"
#: tools/editor/editor_node.cpp
msgid "Importing:"
-msgstr ""
+msgstr "ইম্পোর্ট হচ্ছে:"
#: tools/editor/editor_node.cpp
msgid "Node From Scene"
-msgstr ""
+msgstr "দৃশ্য হতে নোড"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/resources_dock.cpp
msgid "Error saving resource!"
-msgstr ""
+msgstr "রিসোর্স সংরক্ষণে সমস্যা হয়েছে!"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/resources_dock.cpp
msgid "Save Resource As.."
-msgstr ""
+msgstr "রিসোর্স এইরূপে সংরক্ষণ করুন.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
-msgstr ""
+msgstr "বুঝলাম.."
#: tools/editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr ""
+msgstr "লেখার জন্য ফাইলটি খোলায় সমস্যা হয়েছে:"
#: tools/editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr ""
+msgstr "আবেদনকৃত ফাইল ফরম্যাট/ধরণ অজানা:"
#: tools/editor/editor_node.cpp
msgid "Error while saving."
-msgstr ""
+msgstr "সংরক্ষণের সময় সমস্যা হয়েছে।"
#: tools/editor/editor_node.cpp
msgid "Saving Scene"
-msgstr ""
+msgstr "দৃশ্য সংরক্ষিত হচ্ছে"
#: tools/editor/editor_node.cpp
msgid "Analyzing"
-msgstr ""
+msgstr "বিশ্লেষণ হচ্ছে"
#: tools/editor/editor_node.cpp
msgid "Creating Thumbnail"
-msgstr ""
+msgstr "থাম্বনেইল তৈরি হচ্ছে"
#: tools/editor/editor_node.cpp
msgid ""
"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
msgstr ""
+"দৃশ্যটি সংরক্ষণ করা সম্ভব হচ্ছে না। সম্ভবত যেসবের (ইন্সট্যান্স) উপর নির্ভর করছে তাদের "
+"সন্তুষ্ট করা সম্ভব হচ্ছে না।"
#: tools/editor/editor_node.cpp
msgid "Failed to load resource."
-msgstr ""
+msgstr "রিসোর্স লোড ব্যর্থ হয়েছে।"
#: tools/editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr ""
+msgstr "একত্রিত করার জন্য প্রয়োজনীয় MeshLibrary লোড অসম্ভব হয়েছে!"
#: tools/editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr ""
+msgstr "MeshLibrary সংরক্ষণে সমস্যা হয়েছে!"
#: tools/editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr ""
+msgstr "একত্রিত করার জন্য প্রয়োজনীয় TileSet লোড অসম্ভব হয়েছে!"
#: tools/editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr ""
+msgstr "TileSet সংরক্ষণে সমস্যা হয়েছে!"
#: tools/editor/editor_node.cpp
msgid "Can't open export templates zip."
-msgstr ""
+msgstr "এক্সপোর্ট টেমপ্লেটের zip খোলায় সমস্যা হয়েছে।"
#: tools/editor/editor_node.cpp
msgid "Loading Export Templates"
-msgstr ""
+msgstr "এক্সপোর্ট টেমপ্লেটসমূহ লোড হচ্ছে"
#: tools/editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr ""
+msgstr "লেআউট/নকশা সংরক্ষণের চেষ্টায় সমস্যা হয়েছে!"
#: tools/editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr ""
+msgstr "এডিটরের সাধারণ লেআউট/নকশা পরিবর্তিত হয়েছে।"
#: tools/editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr ""
+msgstr "লেআউট/নকশার নাম পাওয়া যায়নি!"
#: tools/editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr ""
+msgstr "সাধারণ লেআউট/নকশা আদি সেটিংসে প্রত্যাবর্তিত হয়েছে।"
#: tools/editor/editor_node.cpp
msgid "Copy Params"
-msgstr ""
+msgstr "মানসমূহ প্রতিলিপি/কপি করুন"
#: tools/editor/editor_node.cpp
msgid "Paste Params"
-msgstr ""
+msgstr "মানসমূহ প্রতিলেপন/পেস্ট করুন"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Paste Resource"
-msgstr ""
+msgstr "রিসোর্স প্রতিলেপন/পেস্ট করুন"
#: tools/editor/editor_node.cpp
msgid "Copy Resource"
-msgstr ""
+msgstr "রিসোর্স প্রতিলিপি/কপি করুন"
#: tools/editor/editor_node.cpp
msgid "Make Built-In"
-msgstr ""
+msgstr "পূর্বনির্মাণ হিসেবে তৈরি করুন"
#: tools/editor/editor_node.cpp
msgid "Make Sub-Resources Unique"
-msgstr ""
+msgstr "উপ-রিসোর্সকে অনন্য হিসেবে তৈরি করুন"
#: tools/editor/editor_node.cpp
msgid "Open in Help"
-msgstr ""
+msgstr "সাহায্যের পাতায় খুলুন"
#: tools/editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr ""
+msgstr "চালানোর জন্য কোনো দৃশ্য নির্দিষ্ট করা নেই।"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2016,6 +2033,9 @@ msgid ""
"You can change it later in later in \"Project Settings\" under the "
"'application' category."
msgstr ""
+"কোনো মুখ্য দৃশ্য নির্ধারণ করা হয়নি, নির্ধারণ করবেন?\n"
+"আপনি পরবর্তিতে তা 'অ্যাপ্লিকেশন (application)' বিভাগের \\\"প্রকল্পের সেটিংস "
+"(Project Settings)\\\"-এ পরিবর্তন করতে পারবেন।"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2023,6 +2043,9 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"নির্বাচিত '%s' দৃশ্যটি বিদ্যমান নয়, একটি কার্যকর দৃশ্য নির্ধারণ করবেন?\n"
+"আপনি পরবর্তিতে তা 'অ্যাপ্লিকেশন (application)' বিভাগের \\\"প্রকল্পের সেটিংস "
+"(Project Settings)\\\"-এ পরিবর্তন করতে পারবেন।"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2030,244 +2053,255 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"নির্বাচিত '%s' দৃশ্যটি কোনো দৃশ্যের ফাইল নয়, একটি কার্যকর দৃশ্যের ফাইল নির্ধারণ "
+"করবেন?\n"
+"আপনি পরবর্তিতে তা 'অ্যাপ্লিকেশন (application)' বিভাগের \\\"প্রকল্পের সেটিংস "
+"(Project Settings)\\\"-এ পরিবর্তন করতে পারবেন।"
#: tools/editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
msgstr ""
+"বর্তমান দৃশ্যটি কখনোই সংরক্ষণ করা হয় নি, অনুগ্রহ করে চালানোর পূর্বে এটি সংরক্ষণ করুন।"
#: tools/editor/editor_node.cpp
msgid "Could not start subprocess!"
-msgstr ""
+msgstr "উপ-প্রক্রিয়াকে শুরু করা সম্ভব হয়নি!"
#: tools/editor/editor_node.cpp
msgid "Open Scene"
-msgstr ""
+msgstr "দৃশ্য খুলুন"
#: tools/editor/editor_node.cpp
msgid "Open Base Scene"
-msgstr ""
+msgstr "গোড়ার দৃশ্য খুলুন"
#: tools/editor/editor_node.cpp
msgid "Quick Open Scene.."
-msgstr ""
+msgstr "দ্রুত দৃশ্য খুলুন.."
#: tools/editor/editor_node.cpp
msgid "Quick Open Script.."
-msgstr ""
+msgstr "দ্রুত স্ক্রিপ্ট খুলুন.."
#: tools/editor/editor_node.cpp
msgid "Yes"
-msgstr ""
+msgstr "হ্যাঁ"
#: tools/editor/editor_node.cpp
msgid "Close scene? (Unsaved changes will be lost)"
-msgstr ""
+msgstr "দৃশ্য বন্ধ করবেন? (অসংরক্ষিত পরিবর্তনসমূহ হারিয়ে যাবে)"
#: tools/editor/editor_node.cpp
msgid "Save Scene As.."
-msgstr ""
+msgstr "দৃশ্য এইরূপে সংরক্ষণ করুন.."
#: tools/editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
-msgstr ""
+msgstr "এই দৃশ্যটি কখনোই সংরক্ষণ করা হয় নি। চালানোর পূর্বে সংরক্ষণ করবেন?"
#: tools/editor/editor_node.cpp
msgid "Please save the scene first."
-msgstr ""
+msgstr "প্রথমে অনুগ্রহ করে দৃশ্যটি সংরক্ষণ করুন।"
#: tools/editor/editor_node.cpp
msgid "Save Translatable Strings"
-msgstr ""
+msgstr "অনুবাদ-সম্ভব শব্দমালা/বাক্য-সমূহ সংরক্ষণ করুন"
#: tools/editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr ""
+msgstr "Mesh Library এক্সপোর্ট করুন"
#: tools/editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr ""
+msgstr "Tile Set এক্সপোর্ট করুন"
#: tools/editor/editor_node.cpp
msgid "Quit"
-msgstr ""
+msgstr "প্রস্থান করুন"
#: tools/editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr ""
+msgstr "এডিটর হতে প্রস্থান করবেন?"
#: tools/editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr ""
+msgstr "বর্তমান দৃশ্যটি সংরক্ষিত হয়নি। তবুও খুলবেন?"
#: tools/editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr ""
+msgstr "পূর্বে কখনোই সংরক্ষিত হয়নি এমন দৃশ্য পুনরায়-লোড (রিলোড) করা অসম্ভব।"
#: tools/editor/editor_node.cpp
msgid "Revert"
-msgstr ""
+msgstr "প্রত্যাবর্তন করুন"
#: tools/editor/editor_node.cpp
msgid "This action cannot be undone. Revert anyway?"
-msgstr ""
+msgstr "এই কাজটি অসম্পাদিত করা সম্ভব হবে না। তবুও প্রত্যাবর্তন করবেন?"
#: tools/editor/editor_node.cpp
msgid "Quick Run Scene.."
-msgstr ""
+msgstr "দ্রুত দৃশ্য চালান.."
#: tools/editor/editor_node.cpp
msgid ""
"Open Project Manager? \n"
"(Unsaved changes will be lost)"
msgstr ""
+"প্রকল্প ম্যানেজার (Project Manager) খুলবেন? \n"
+"(অ-সংরক্ষিত পরিবর্তন-সমূহ হারিয়ে যাবে)"
#: tools/editor/editor_node.cpp
msgid "Pick a Main Scene"
-msgstr ""
+msgstr "একটি মুখ্য দৃশ্য মনোনীত করুন"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
-msgstr ""
+msgstr "আহ্‌"
#: tools/editor/editor_node.cpp
msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
+"দৃশ্য লোডে সমস্যা হয়েছে, দৃশ্যটি অবশ্যই প্রকল্পের পথের ভিতরে হতে হবে। 'ইম্পোর্ট "
+"(Import)' ব্যবহার করে দৃশ্যটি খুলুন, তারপর তা প্রকল্পের পথের ভিতরে সংরক্ষণ করুন।"
#: tools/editor/editor_node.cpp
msgid "Error loading scene."
-msgstr ""
+msgstr "দৃশ্য লোডে সমস্যা হয়েছে।"
#: tools/editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
-msgstr ""
+msgstr "'%s' দৃশ্যটির অসংলগ্ন নির্ভরতা রয়েছে:"
#: tools/editor/editor_node.cpp
msgid "Save Layout"
-msgstr ""
+msgstr "লেআউট/নকশা সংরক্ষণ করুন"
#: tools/editor/editor_node.cpp
msgid "Delete Layout"
-msgstr ""
+msgstr "লেআউট/নকশা অপসারণ করুন"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
-msgstr ""
+msgstr "সাধারণ/ডিফল্ট"
#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
-msgstr ""
+msgstr "দৃশ্যের ট্যাব পরিবর্তন করুন"
#: tools/editor/editor_node.cpp
msgid "%d more file(s)"
-msgstr ""
+msgstr "%d টি অধিক ফাইল(সমূহ)"
#: tools/editor/editor_node.cpp
msgid "%d more file(s) or folder(s)"
-msgstr ""
+msgstr "%d টি অধিক ফাইল(সমূহ) বা ফোল্ডার(সমূহ)"
#: tools/editor/editor_node.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Scene"
-msgstr ""
+msgstr "দৃশ্য"
#: tools/editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr ""
+msgstr "পূর্বে খোলা দৃশ্যে যান।"
#: tools/editor/editor_node.cpp
msgid "Next tab"
-msgstr ""
+msgstr "পরের ট্যাব"
#: tools/editor/editor_node.cpp
msgid "Previous tab"
-msgstr ""
+msgstr "পূর্বের ট্যাব"
#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
-msgstr ""
+msgstr "দৃশ্যের ফাইলের সাথে কার্যকলাপসমূহ।"
#: tools/editor/editor_node.cpp
msgid "New Scene"
-msgstr ""
+msgstr "নতুন দৃশ্য"
#: tools/editor/editor_node.cpp
msgid "New Inherited Scene.."
-msgstr ""
+msgstr "নতুন উত্তরাধিকারী দৃশ্য.."
#: tools/editor/editor_node.cpp
msgid "Open Scene.."
-msgstr ""
+msgstr "দৃশ্য খুলুন.."
#: tools/editor/editor_node.cpp
msgid "Save Scene"
-msgstr ""
+msgstr "দৃশ্য সংরক্ষণ করুন"
#: tools/editor/editor_node.cpp
msgid "Save all Scenes"
-msgstr ""
+msgstr "সকল দৃশ্য সংরক্ষণ করুন"
#: tools/editor/editor_node.cpp
msgid "Close Scene"
-msgstr ""
+msgstr "দৃশ্য বন্ধ করুন"
#: tools/editor/editor_node.cpp
msgid "Close Goto Prev. Scene"
-msgstr ""
+msgstr "বন্ধ করে পূর্বের দৃশ্যে যান"
#: tools/editor/editor_node.cpp
msgid "Open Recent"
-msgstr ""
+msgstr "সাম্প্রতিকসমূহ খুলুন"
#: tools/editor/editor_node.cpp
msgid "Quick Filter Files.."
-msgstr ""
+msgstr "দ্রুত ফাইলসমূহ ফিল্টার করুন.."
#: tools/editor/editor_node.cpp
msgid "Convert To.."
-msgstr ""
+msgstr "এতে রূপান্তর করুন.."
#: tools/editor/editor_node.cpp
msgid "Translatable Strings.."
-msgstr ""
+msgstr "অনুবাদ-সম্ভব শব্দমালা/বাক্য-সমূহ.."
#: tools/editor/editor_node.cpp
msgid "MeshLibrary.."
-msgstr ""
+msgstr "MeshLibrary (মেস-লাইব্রেরি).."
#: tools/editor/editor_node.cpp
msgid "TileSet.."
-msgstr ""
+msgstr "TileSet (টাইল-সেট).."
#: tools/editor/editor_node.cpp tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Redo"
-msgstr ""
+msgstr "পুনরায় করুন"
#: tools/editor/editor_node.cpp
msgid "Run Script"
-msgstr ""
+msgstr "স্ক্রিপ্ট চালান"
#: tools/editor/editor_node.cpp
msgid "Project Settings"
-msgstr ""
+msgstr "প্রকল্পের সেটিংস"
#: tools/editor/editor_node.cpp
msgid "Revert Scene"
-msgstr ""
+msgstr "দৃশ্য প্রত্যাবৃত্ত করুন"
#: tools/editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr ""
+msgstr "প্রকল্পের তালিকায় প্রস্থান করুন"
#: tools/editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr ""
+msgstr "বিক্ষেপ-হীন মোড"
#: tools/editor/editor_node.cpp
msgid "Import assets to the project."
-msgstr ""
+msgstr "উপাদানসমূহ প্রকল্পে ইম্পোর্ট করুন।"
#: tools/editor/editor_node.cpp
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
@@ -2279,83 +2313,85 @@ msgstr ""
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
#: tools/editor/project_manager.cpp
msgid "Import"
-msgstr ""
+msgstr "ইম্পোর্ট"
#: tools/editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
-msgstr ""
+msgstr "প্রকল্প অথবা দৃশ্যে-ব্যাপী বিবিধ সরঞ্জাম-সমূহ।"
#: tools/editor/editor_node.cpp
msgid "Tools"
-msgstr ""
+msgstr "সরঞ্জাম-সমূহ"
#: tools/editor/editor_node.cpp
msgid "Export the project to many platforms."
-msgstr ""
+msgstr "প্রকল্পটি একাধিক প্লাটফর্মে এক্সপোর্ট করুন।"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Export"
-msgstr ""
+msgstr "এক্সপোর্ট"
#: tools/editor/editor_node.cpp
msgid "Play the project."
-msgstr ""
+msgstr "প্রকল্পটি চালান।"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Play"
-msgstr ""
+msgstr "চালান"
#: tools/editor/editor_node.cpp
msgid "Pause the scene"
-msgstr ""
+msgstr "দৃশ্যটিকে বিরতি দিন"
#: tools/editor/editor_node.cpp
msgid "Pause Scene"
-msgstr ""
+msgstr "দৃশ্যকে বিরতি দিন"
#: tools/editor/editor_node.cpp
msgid "Stop the scene."
-msgstr ""
+msgstr "দৃশ্যটিকে থামান।"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Stop"
-msgstr ""
+msgstr "থামান"
#: tools/editor/editor_node.cpp
msgid "Play the edited scene."
-msgstr ""
+msgstr "সম্পাদিত দৃশ্যটি চালান।"
#: tools/editor/editor_node.cpp
msgid "Play Scene"
-msgstr ""
+msgstr "দৃশ্য চালান"
#: tools/editor/editor_node.cpp
msgid "Play custom scene"
-msgstr ""
+msgstr "স্বনির্বাচিত দৃশ্য চালান"
#: tools/editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr ""
+msgstr "স্বনির্বাচিত দৃশ্য চালান"
#: tools/editor/editor_node.cpp
msgid "Debug options"
-msgstr ""
+msgstr "ডিবাগের সিদ্ধান্তসমূহ"
#: tools/editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr ""
+msgstr "দূরবর্তী ডিবাগের সহিত ডিপ্লয় করুন"
#: tools/editor/editor_node.cpp
msgid ""
"When exporting or deploying, the resulting executable will attempt to "
"connect to the IP of this computer in order to be debugged."
msgstr ""
+"এক্সপোর্ট (Export) বা ডিপ্লয় (Deploy)-এর সময় প্রস্তুতকৃত এক্সিকিউটেবল (executable) "
+"ডিবাগ (debug)-এর উদ্দেশ্যে এই কম্পিউটারের আইপি (IP)-তে সংযোগ করার চেষ্টা করবে।"
#: tools/editor/editor_node.cpp
msgid "Small Deploy with Network FS"
-msgstr ""
+msgstr "নেটওয়ার্ক ফাইল-সিস্টেমের সহিত ক্ষুদ্র-ডিপ্লয় করুন"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2366,30 +2402,40 @@ msgid ""
"On Android, deploy will use the USB cable for faster performance. This "
"option speeds up testing for games with a large footprint."
msgstr ""
+"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে, এক্সপোর্ট (Export) বা ডিপ্লয় (Deploy)-এ স্বল্পতম "
+"মানের এক্সিকিউটেবল (executable) উৎপাদন হবে।\n"
+"ফাইল-সিস্টেম (filesystem) প্রকল্প হতে এডিটর (editor) দিয়ে নেটওয়ার্ক-এর মাধ্যমে "
+"যোগান দেয়া হবে।\n"
+"অ্যান্ড্রয়েড ডিপ্লয়ে (deploy) দ্রুততর কর্মক্ষমতার জন্য ইউএসবি (USB) ক্যাবল ব্যবহৃত হবে। "
+"এই সিদ্ধান্তটি (অপশন) বৃহৎ মানের গেমের পরীক্ষা দ্রুততর করে তুলে।"
#: tools/editor/editor_node.cpp
msgid "Visible Collision Shapes"
-msgstr ""
+msgstr "দৃশ্যমান সাংঘর্ষিক আকারসমূহ (Collision Shapes)"
#: tools/editor/editor_node.cpp
msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
+"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে চলমান গেমে কলিশ়ন (Collision) আকৃতি এবং রে-কাস্ট "
+"(RayCast) নোড (2D এবং 3D) দৃশ্যমান হবে।"
#: tools/editor/editor_node.cpp
msgid "Visible Navigation"
-msgstr ""
+msgstr "দৃশ্যমান নেভিগেশন (Navigation)"
#: tools/editor/editor_node.cpp
msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
+"এই সিদ্ধান্তটি (অপশন) সক্রিয় করলে চলমান গেমে ন্যাভিগেশন (Navigation) মেস এবং "
+"পলিগন-সমূহ দৃশ্যমান হবে।"
#: tools/editor/editor_node.cpp
msgid "Sync Scene Changes"
-msgstr ""
+msgstr "দৃশ্যের পরিবর্তনসমূহ সুসংগত/সমন্বয় করুন"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2398,10 +2444,14 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"এই সিদ্ধান্তটি (অপশন) সক্রিয় থাকলে, এডিটরে কোনো দৃশ্যের পরিবর্তন করলে তা চলমান "
+"গেমে প্রতিফলিত হবে।\n"
+"রিমোট ডিভাইসে ব্যবহারের সময়, নেটওয়ার্ক ফাইল-সিস্টেম (filesystem) এটিকে আরো "
+"কার্যকর করবে।"
#: tools/editor/editor_node.cpp
msgid "Sync Script Changes"
-msgstr ""
+msgstr "স্ক্রিপ্টের পরিবর্তনসমূহ সুসংগত/সমন্বয় করুন"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2410,278 +2460,284 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"এই সিদ্ধান্তটি (অপশন) সক্রিয় থাকলে, কোনো স্ক্রিপ্টের পরিবর্তন সংরক্ষণে তা চলমান গেমে "
+"প্রতিফলিত হবে।\n"
+"রিমোট ডিভাইসে ব্যবহারের সময়, নেটওয়ার্ক ফাইল-সিস্টেম (filesystem) এটিকে আরো "
+"কার্যকর করবে।"
#: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Settings"
-msgstr ""
+msgstr "সেটিংস"
#: tools/editor/editor_node.cpp tools/editor/settings_config_dialog.cpp
msgid "Editor Settings"
-msgstr ""
+msgstr "এডিটরের সেটিংস"
#: tools/editor/editor_node.cpp
msgid "Editor Layout"
-msgstr ""
+msgstr "এডিটরের লেআউট/নকশা"
#: tools/editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr ""
+msgstr "পূর্ণ-পর্দা অদলবদল/টগল করুন"
#: tools/editor/editor_node.cpp
msgid "Install Export Templates"
-msgstr ""
+msgstr "এক্সপোর্টের টেমপ্লেটসমূহ ইন্সটল করুন"
#: tools/editor/editor_node.cpp
msgid "About"
-msgstr ""
+msgstr "সম্বন্ধে/সম্পর্কে"
#: tools/editor/editor_node.cpp
msgid "Alerts when an external resource has changed."
-msgstr ""
+msgstr "বহি:স্থ রিসোর্সের পরিবর্তনে সতর্ক করে।"
#: tools/editor/editor_node.cpp
msgid "Spins when the editor window repaints!"
-msgstr ""
+msgstr "এডিটরের পুন-অঙ্কনে এটি ঘূর্ণন করে!"
#: tools/editor/editor_node.cpp
msgid "Update Always"
-msgstr ""
+msgstr "সর্বদা হাল-নাগাদ করুন"
#: tools/editor/editor_node.cpp
msgid "Update Changes"
-msgstr ""
+msgstr "পরিবর্তনসমূহ হাল-নাগাদ করুন"
#: tools/editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "হাল-নাগাদকারী ঘূর্ণক নিষ্ক্রিয় করুন"
#: tools/editor/editor_node.cpp
msgid "Inspector"
-msgstr ""
+msgstr "পরিদর্শক/পরীক্ষক"
#: tools/editor/editor_node.cpp
msgid "Create a new resource in memory and edit it."
-msgstr ""
+msgstr "মেমোরিতে নতুন একটি রিসোর্স তৈরি করুন এবং সম্পাদন করুন।"
#: tools/editor/editor_node.cpp
msgid "Load an existing resource from disk and edit it."
-msgstr ""
+msgstr "ডিস্ক হতে একটি বিদ্যমান রিসোর্স লোড করুন এবং সম্পাদন করুন।"
#: tools/editor/editor_node.cpp
msgid "Save the currently edited resource."
-msgstr ""
+msgstr "এই-মুহূর্তে সম্পাদিত রিসোর্সটি সংরক্ষণ করুন।"
#: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp
msgid "Save As.."
-msgstr ""
+msgstr "এইরূপে সংরক্ষণ করুন.."
#: tools/editor/editor_node.cpp
msgid "Go to the previous edited object in history."
-msgstr ""
+msgstr "স্মৃতিতে অবস্থিত পূর্বে সম্পাদিত বস্তুতে যান।"
#: tools/editor/editor_node.cpp
msgid "Go to the next edited object in history."
-msgstr ""
+msgstr "স্মৃতিতে অবস্থিত পরবর্তিতে সম্পাদিত বস্তুতে যান।"
#: tools/editor/editor_node.cpp
msgid "History of recently edited objects."
-msgstr ""
+msgstr "সাম্প্রতিক সময়ে সম্পাদিত বস্তুর স্মৃতি।"
#: tools/editor/editor_node.cpp
msgid "Object properties."
-msgstr ""
+msgstr "বস্তুর বৈশিষ্ট্যসমূহ।"
#: tools/editor/editor_node.cpp
msgid "FileSystem"
-msgstr ""
+msgstr "ফাইলসিস্টেম"
#: tools/editor/editor_node.cpp tools/editor/node_dock.cpp
msgid "Node"
-msgstr ""
+msgstr "নোড"
#: tools/editor/editor_node.cpp
msgid "Output"
-msgstr ""
+msgstr "আউটপুট/ফলাফল"
#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
msgid "Re-Import"
-msgstr ""
+msgstr "পুন-ইম্পোর্ট"
#: tools/editor/editor_node.cpp tools/editor/editor_plugin_settings.cpp
msgid "Update"
-msgstr ""
+msgstr "হালনাগাদ"
#: tools/editor/editor_node.cpp
msgid "Thanks from the Godot community!"
-msgstr ""
+msgstr "Godot কমিউনিটি হতে আপনাকে ধন্যবাদ!"
#: tools/editor/editor_node.cpp
msgid "Thanks!"
-msgstr ""
+msgstr "ধন্যবাদ!"
#: tools/editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr ""
+msgstr "ZIP ফাইল হতে টেমপ্লেট-সমূহ ইম্পোর্ট করুন"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Export Project"
-msgstr ""
+msgstr "প্রকল্প এক্সপোর্ট করুন"
#: tools/editor/editor_node.cpp
msgid "Export Library"
-msgstr ""
+msgstr "লাইব্রেরি এক্সপোর্ট করুন"
#: tools/editor/editor_node.cpp
msgid "Merge With Existing"
-msgstr ""
+msgstr "বিদ্যমানের সাথে একত্রিত করুন"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Password:"
-msgstr ""
+msgstr "পাসওয়ার্ড:"
#: tools/editor/editor_node.cpp
msgid "Open & Run a Script"
-msgstr ""
+msgstr "একটি স্ক্রিপ্ট খুলুন এবং চালান"
#: tools/editor/editor_node.cpp
msgid "Load Errors"
-msgstr ""
+msgstr "ভুল/সমস্যা-সমূহ লোড করুন"
#: tools/editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
-msgstr ""
+msgstr "ইন্সটল-কৃত প্লাগইন-সমূহ:"
#: tools/editor/editor_plugin_settings.cpp
msgid "Version:"
-msgstr ""
+msgstr "সংস্করণ:"
#: tools/editor/editor_plugin_settings.cpp
msgid "Author:"
-msgstr ""
+msgstr "লেখক:"
#: tools/editor/editor_plugin_settings.cpp
msgid "Status:"
-msgstr ""
+msgstr "অবস্থা:"
#: tools/editor/editor_profiler.cpp
msgid "Stop Profiling"
-msgstr ""
+msgstr "প্রোফাইলিং বন্ধ করুন"
#: tools/editor/editor_profiler.cpp
msgid "Start Profiling"
-msgstr ""
+msgstr "প্রোফাইলিং শুরু করুন"
#: tools/editor/editor_profiler.cpp
msgid "Measure:"
-msgstr ""
+msgstr "মাপ:"
#: tools/editor/editor_profiler.cpp
msgid "Frame Time (sec)"
-msgstr ""
+msgstr "ফ্রেম-এর সময় (সেঃ)"
#: tools/editor/editor_profiler.cpp
msgid "Average Time (sec)"
-msgstr ""
+msgstr "গড় সময় (সেঃ)"
#: tools/editor/editor_profiler.cpp
msgid "Frame %"
-msgstr ""
+msgstr "ফ্রেম %"
#: tools/editor/editor_profiler.cpp
msgid "Fixed Frame %"
-msgstr ""
+msgstr "স্থির/বদ্ধ ফ্রেম %"
#: tools/editor/editor_profiler.cpp tools/editor/script_editor_debugger.cpp
msgid "Time:"
-msgstr ""
+msgstr "সময়:"
#: tools/editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr ""
+msgstr "অন্তর্ভুক্ত"
#: tools/editor/editor_profiler.cpp
msgid "Self"
-msgstr ""
+msgstr "স্বীয়"
#: tools/editor/editor_profiler.cpp
msgid "Frame #:"
-msgstr ""
+msgstr "ফ্রেম #:"
#: tools/editor/editor_reimport_dialog.cpp
msgid "Please wait for scan to complete."
-msgstr ""
+msgstr "স্ক্যান সম্পন্ন হওয়া পর্যন্ত অনুগ্রহ করে অপেক্ষা করুন।"
#: tools/editor/editor_reimport_dialog.cpp
msgid "Current scene must be saved to re-import."
-msgstr ""
+msgstr "পুনরায়-ইম্পোর্ট করতে বর্তমান দৃশ্যটিকে অবশ্যই সংরক্ষণ করতে হবে।"
#: tools/editor/editor_reimport_dialog.cpp
msgid "Save & Re-Import"
-msgstr ""
+msgstr "সংরক্ষণ এবং পুন-ইম্পোর্ট করুন"
#: tools/editor/editor_reimport_dialog.cpp
msgid "Re-Import Changed Resources"
-msgstr ""
+msgstr "পুন-ইম্পোর্টে রিসোর্স-সমূহ পরিবর্তিত হয়েছে"
#: tools/editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
-msgstr ""
+msgstr "আপনার লজিক/যুক্তি-সমূহ _run() মেথডে লিখুন।"
#: tools/editor/editor_run_script.cpp
msgid "There is an edited scene already."
-msgstr ""
+msgstr "এখানে ইতিমধ্যেই একটি সম্পাদিত দৃশ্য রয়েছে।"
#: tools/editor/editor_run_script.cpp
msgid "Couldn't instance script:"
-msgstr ""
+msgstr "স্ক্রিপ্ট ইনস্ট্যান্স করা সম্ভব হয়নি:"
#: tools/editor/editor_run_script.cpp
msgid "Did you forget the 'tool' keyword?"
-msgstr ""
+msgstr "আপনি কি 'tool' কীওয়ার্ড/শব্দটি দিতে ভুলেছেন?"
#: tools/editor/editor_run_script.cpp
msgid "Couldn't run script:"
-msgstr ""
+msgstr "স্ক্রিপ্ট চালানো সম্ভব হয়নি:"
#: tools/editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
-msgstr ""
+msgstr "আপনি কি '_run' মেথডটি দিতে ভুলেছেন?"
#: tools/editor/editor_settings.cpp
msgid "Default (Same as Editor)"
-msgstr ""
+msgstr "ডিফল্ট/সাধারণ (এডিটরের মতোই)"
#: tools/editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr ""
+msgstr "ইম্পোর্টের জন্য নোড(সমূহ) নির্বাচন করুন"
#: tools/editor/editor_sub_scene.cpp
msgid "Scene Path:"
-msgstr ""
+msgstr "দৃশ্যের পথ:"
#: tools/editor/editor_sub_scene.cpp
msgid "Import From Node:"
-msgstr ""
+msgstr "নোড হতে ইম্পোর্ট করুন:"
#: tools/editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
msgstr ""
+"লেখার জন্য file_type_cache.cch খোলা সম্ভব হচ্ছে না, ফাইলের ধরণ ক্যাশ (cache) "
+"সংরক্ষিত হচ্ছে না!"
#: tools/editor/filesystem_dock.cpp
msgid "Same source and destination files, doing nothing."
-msgstr ""
+msgstr "ফাইল্গুলোর একই উৎস এবং গন্তব্যস্থান, কিছুই করা হচ্ছে না।"
#: tools/editor/filesystem_dock.cpp
msgid "Same source and destination paths, doing nothing."
-msgstr ""
+msgstr "পথগুলোর একই উৎস এবং গন্তব্যস্থান, কিছুই করা হচ্ছে না।"
#: tools/editor/filesystem_dock.cpp
msgid "Can't move directories to within themselves."
-msgstr ""
+msgstr "স্থানসমূহকে তাদের মাঝেই স্থানান্তর করা সম্ভব নয়।"
#: tools/editor/filesystem_dock.cpp
msgid "Can't operate on '..'"
-msgstr ""
+msgstr "'..' তে পরিচালনা করা সম্ভব নয়"
#: tools/editor/filesystem_dock.cpp
msgid "Pick New Name and Location For:"
@@ -2693,111 +2749,111 @@ msgstr "কোনো ফাইল নির্বাচিত হয়নি!"
#: tools/editor/filesystem_dock.cpp
msgid "Instance"
-msgstr ""
+msgstr "ইনস্ট্যান্স"
#: tools/editor/filesystem_dock.cpp
msgid "Edit Dependencies.."
-msgstr ""
+msgstr "নির্ভরতাসমূহ সম্পাদন করুন.."
#: tools/editor/filesystem_dock.cpp
msgid "View Owners.."
-msgstr ""
+msgstr "স্বত্বাধিকারীদের দেখুন.."
#: tools/editor/filesystem_dock.cpp
msgid "Copy Path"
-msgstr ""
+msgstr "পথ প্রতিলিপি/কপি করুন"
#: tools/editor/filesystem_dock.cpp
msgid "Rename or Move.."
-msgstr ""
+msgstr "পুনঃনামকরণ করুন অথবা সরান.."
#: tools/editor/filesystem_dock.cpp
msgid "Move To.."
-msgstr ""
+msgstr "এখানে সরান.."
#: tools/editor/filesystem_dock.cpp
msgid "Info"
-msgstr ""
+msgstr "তথ্য"
#: tools/editor/filesystem_dock.cpp
msgid "Show In File Manager"
-msgstr ""
+msgstr "ফাইল-ম্যানেজারে দেখুন"
#: tools/editor/filesystem_dock.cpp
msgid "Re-Import.."
-msgstr ""
+msgstr "পুন-ইম্পোর্ট.."
#: tools/editor/filesystem_dock.cpp
msgid "Previous Directory"
-msgstr ""
+msgstr "পূর্বের স্থান"
#: tools/editor/filesystem_dock.cpp
msgid "Next Directory"
-msgstr ""
+msgstr "পরের স্থান"
#: tools/editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr ""
+msgstr "ফাইলসিস্টেম পুন-স্ক্যান করুন"
#: tools/editor/filesystem_dock.cpp
msgid "Toggle folder status as Favorite"
-msgstr ""
+msgstr "ফোল্ডারের অবস্থা ফেবরিট/প্রিয় হিসেবে অদলবদল/টগল করুন"
#: tools/editor/filesystem_dock.cpp
msgid "Instance the selected scene(s) as child of the selected node."
-msgstr ""
+msgstr "নির্বাচিত দৃশ্য(সমূহ)-কে নির্বাচিত নোডের অংশ হিসেবে ইনস্ট্যান্স করুন।"
#: tools/editor/filesystem_dock.cpp
msgid "Move"
-msgstr ""
+msgstr "সরান"
#: tools/editor/groups_editor.cpp
msgid "Add to Group"
-msgstr ""
+msgstr "গ্রুপ/দলে যোগ করুন"
#: tools/editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr ""
+msgstr "গ্রুপ/দল হতে অপসারণ করুন"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
msgid "No bit masks to import!"
-msgstr ""
+msgstr "ইম্পোর্ট করার জন্য কোনো বিট মাস্ক নেই!"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Target path is empty."
-msgstr ""
+msgstr "উদ্দেশ্যিত পথটি খালি।"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Target path must be a complete resource path."
-msgstr ""
+msgstr "উদ্দেশ্যিত পথটি অবশ্যই একটি সম্পুর্ণ রিসোর্স পথ হতে হবে।"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Target path must exist."
-msgstr ""
+msgstr "উদ্দেশ্যিত পথটি অবশ্যই বিদ্যমান হতে হবে।"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "Save path is empty!"
-msgstr ""
+msgstr "সংরক্ষণের পথটি খালি!"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
msgid "Import BitMasks"
-msgstr ""
+msgstr "BitMasks ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Source Texture(s):"
-msgstr ""
+msgstr "টেক্সার(সমূহ)-এর উৎস:"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
@@ -2805,8 +2861,9 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
-msgstr ""
+msgstr "উদ্দেশ্যিত পথ:"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
@@ -2815,676 +2872,688 @@ msgstr ""
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Accept"
-msgstr ""
+msgstr "গ্রহণ করুন"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
msgid "Bit Mask"
-msgstr ""
+msgstr "বিট-মাস্ক (Bit Mask)"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "No source font file!"
-msgstr ""
+msgstr "ফন্টের কোনো উৎস ফাইল নেই!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "No target font resource!"
-msgstr ""
+msgstr "ফন্টের কোনো উদ্দেশ্যিত রিসোর্স নেই!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid ""
"Invalid file extension.\n"
"Please use .fnt."
msgstr ""
+"ফাইলের অগ্রহনযোগ্য এক্সটেনশন।\n"
+"অনুগ্রহ করে .fnt ব্যবহার করুন।"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
-msgstr ""
+msgstr "ফন্টের উৎস লোড/প্রসেস করা সম্ভব হচ্ছে না।"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Couldn't save font."
-msgstr ""
+msgstr "ফন্ট সংরক্ষণ করা সম্ভব হয়নি।"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Source Font:"
-msgstr ""
+msgstr "ফন্টের উৎস:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Source Font Size:"
-msgstr ""
+msgstr "উৎস ফন্টের আকার:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Dest Resource:"
-msgstr ""
+msgstr "রিসোর্সের গন্তব্যস্থান:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "The quick brown fox jumps over the lazy dog."
msgstr ""
+"বাদামী রঙ্গের দ্রুত শিয়ালটি অলস কুকুরের উপর দিয়ে লাফিয়ে যায় (The quick brown fox "
+"jumps over the lazy dog.)।"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Test:"
-msgstr ""
+msgstr "পরীক্ষা:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Options:"
-msgstr ""
+msgstr "সিদ্ধান্তসমূহ (অপশন):"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Font Import"
-msgstr ""
+msgstr "ফন্ট ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid ""
"This file is already a Godot font file, please supply a BMFont type file "
"instead."
msgstr ""
+"এই ফাইলটি ইতিমধ্যেই একটি Godot ফন্ট ফাইল, পরিবর্তে অনুগ্রহ করে BMFont ধরণের ফাইল "
+"প্রদান করুন।"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Failed opening as BMFont file."
-msgstr ""
+msgstr "BMFont ফাইল খোলা ব্যর্থ হয়েছে।"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Invalid font custom source."
-msgstr ""
+msgstr "স্বনির্মিত ফন্টের অগ্রহনযোগ্য উৎস।"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Font"
-msgstr ""
+msgstr "ফন্ট"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "No meshes to import!"
-msgstr ""
+msgstr "ইম্পোর্ট করার মতো কোনো মেস নেই!"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "Single Mesh Import"
-msgstr ""
+msgstr "একক মেস ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "Source Mesh(es):"
-msgstr ""
+msgstr "মেস(সমূহ)-এর উৎস:"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
-msgstr ""
+msgstr "মেস"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "Surface %d"
-msgstr ""
+msgstr "পৃষ্ঠতল %d"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "No samples to import!"
-msgstr ""
+msgstr "ইম্পোর্ট করার মতো কোনো নমুনা নেই!"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "Import Audio Samples"
-msgstr ""
+msgstr "শব্দের নমুনাসমূহ ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "Source Sample(s):"
-msgstr ""
+msgstr "নমুনা(সমূহ)-এর উৎস:"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "Audio Sample"
-msgstr ""
+msgstr "শব্দের নমুনা"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "New Clip"
-msgstr ""
+msgstr "নতুন ক্লিপ"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Animation Options"
-msgstr ""
+msgstr "অ্যানিমেশনের সিদ্ধান্তসমূহ"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Flags"
-msgstr ""
+msgstr "পতাকাসমূহ"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Bake FPS:"
-msgstr ""
+msgstr "সিদ্ধ FPS:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Optimizer"
-msgstr ""
+msgstr "পরিমার্জক"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Max Linear Error"
-msgstr ""
+msgstr "সর্বোচ্চ রৈখিক ভুল/সমস্যা"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Max Angular Error"
-msgstr ""
+msgstr "সর্বোচ্চ কৌণিক ভুল/সমস্যা"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Max Angle"
-msgstr ""
+msgstr "সর্বোচ্চ কোণ"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Clips"
-msgstr ""
+msgstr "ক্লিপসমূহ"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Start(s)"
-msgstr ""
+msgstr "আরম্ভ(সমূহ)"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "End(s)"
-msgstr ""
+msgstr "সমাপ্তি(সমূহ)"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
-msgstr ""
+msgstr "লুপ"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Filters"
-msgstr ""
+msgstr "ফিল্টারসমূহ"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Source path is empty."
-msgstr ""
+msgstr "উৎসের পথটি খালি।"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Couldn't load post-import script."
-msgstr ""
+msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট লোড করা সম্ভব হয়নি।"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Invalid/broken script for post-import."
-msgstr ""
+msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট অকার্যকর/ত্রুটিপূর্ণ।"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Error importing scene."
-msgstr ""
+msgstr "দৃশ্য ইম্পোর্টে সমস্যা হয়েছে।"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Import 3D Scene"
-msgstr ""
+msgstr "3D দৃশ্য ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Source Scene:"
-msgstr ""
+msgstr "উৎস দৃশ্য:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Same as Target Scene"
-msgstr ""
+msgstr "উদ্দেশ্যিত দৃশ্যের ন্যায়"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Shared"
-msgstr ""
+msgstr "শেয়ারকৃত"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Target Texture Folder:"
-msgstr ""
+msgstr "গঠনবিন্যাসের উদ্দেশ্যিত ফোল্ডার:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Post-Process Script:"
-msgstr ""
+msgstr "প্রক্রিয়া-পরবর্তী স্ক্রিপ্ট:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Custom Root Node Type:"
-msgstr ""
+msgstr "স্বনির্মিত মূল নোডের ধরণ:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Auto"
-msgstr ""
+msgstr "স্বয়ংক্রিয়"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr "মূল নোডের নাম:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
-msgstr ""
+msgstr "নিম্নোক্ত ফাইলসমূহ অনুপস্থিত:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Import Anyway"
-msgstr ""
+msgstr "যেকোনো উপায়েই ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Import & Open"
-msgstr ""
+msgstr "ইম্পোর্ট করুন এবং খুলুন"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Edited scene has not been saved, open imported scene anyway?"
-msgstr ""
+msgstr "সম্পাদিত দৃশ্য সংরক্ষণ করা হয়নি, তবুও ইম্পোর্ট করা দৃশ্যটি খুলবেন?"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import Scene"
-msgstr ""
+msgstr "দৃশ্য ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Importing Scene.."
-msgstr ""
+msgstr "দৃশ্য ইম্পোর্ট করা হচ্ছে.."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Running Custom Script.."
-msgstr ""
+msgstr "স্বনির্মিত স্ক্রিপ্ট চালানো হচ্ছে.."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট লোড করা সম্ভব হয়নি:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
+msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট অকার্যকর/ত্রুটিপূর্ণ (কনসোল দেখুন):"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "ইম্পোর্ট-পরবর্তী স্ক্রিপ্ট চালানোয় সমস্যা হয়েছে:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Import Image:"
-msgstr ""
+msgstr "ছবি ইম্পোর্ট করুন:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Can't import a file over itself:"
-msgstr ""
+msgstr "ফাইলকে তার নিজের উপরেই ইম্পোর্ট করা সম্ভব নয়:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Couldn't localize path: %s (already local)"
-msgstr ""
+msgstr "পথ স্থানীয়করণ সম্ভব হচ্ছে না: %s (ইতিমধ্যেই স্থানীয়)"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Saving.."
-msgstr ""
+msgstr "সংরক্ষিত হচ্ছে.."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "3D Scene Animation"
-msgstr ""
+msgstr "3D দৃশ্যের অ্যানিমেশন"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Uncompressed"
-msgstr ""
+msgstr "অসংকুচিত"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Compress Lossless (PNG)"
-msgstr ""
+msgstr "ধ্বংসবিহীন সঙ্কোচন (PNG)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Compress Lossy (WebP)"
-msgstr ""
+msgstr "ধ্বংসাত্মক সঙ্কোচন (WebP)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Compress (VRAM)"
-msgstr ""
+msgstr "সঙ্কোচন (VRAM)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Texture Format"
-msgstr ""
+msgstr "গঠনবিন্যাসের ফরম্যাট"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Texture Compression Quality (WebP):"
-msgstr ""
+msgstr "গঠনবিন্যাস সঙ্কোচনের গুণমান (WebP):"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Texture Options"
-msgstr ""
+msgstr "গঠনবিন্যাসের সিদ্ধান্ত (অপশন)-সমূহ"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Please specify some files!"
-msgstr ""
+msgstr "অনুগ্রহ করে কিছু ফাইল নির্দিষ্ট করে দিন!"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "At least one file needed for Atlas."
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলীর জন্য কমপক্ষে একটি ফাইল প্রয়োজন।"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Error importing:"
-msgstr ""
+msgstr "ইম্পোর্টে সমস্যা হয়েছে:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Only one file is required for large texture."
-msgstr ""
+msgstr "বৃহৎ গঠনবিন্যাসের জন্য শুধুমাত্র একটি ফাইল প্রয়োজন।"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Max Texture Size:"
-msgstr ""
+msgstr "গঠনবিন্যাসের সর্বোচ্চ আকার:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Textures for Atlas (2D)"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলীর জন্য গঠনবিন্যাস ইম্পোর্ট করুন (2D)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Cell Size:"
-msgstr ""
+msgstr "সেল (Cell)-এর আকার:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Large Texture"
-msgstr ""
+msgstr "বৃহৎ গঠনবিন্যাস"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Large Textures (2D)"
-msgstr ""
+msgstr "বৃহৎ গঠনবিন্যাস ইম্পোর্ট করুন (2D)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Source Texture"
-msgstr ""
+msgstr "গঠনবিন্যাসের উৎস"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Base Atlas Texture"
-msgstr ""
+msgstr "গোড়ার এটলাস/মানচিত্রাবলীর গঠনবিন্যাস"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Source Texture(s)"
-msgstr ""
+msgstr "গঠনবিন্যাস(সমূহ)-এর উৎস"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Textures for 2D"
-msgstr ""
+msgstr "2D-এর জন্য গঠনবিন্যাসসমূহ ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Textures for 3D"
-msgstr ""
+msgstr "3D-এর জন্য গঠনবিন্যাসসমূহ ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Textures"
-msgstr ""
+msgstr "গঠনবিন্যাসসমূহ ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "2D Texture"
-msgstr ""
+msgstr "2D গঠনবিন্যাস"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "3D Texture"
-msgstr ""
+msgstr "3D গঠনবিন্যাস"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Atlas Texture"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলীর গঠনবিন্যাস"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid ""
"NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files to "
"the project."
msgstr ""
+"নোটিশ: 2D টেক্সচার (texture) ইম্পোর্ট (import) করা অত্যাবশ্যক নয়। শুধুমাত্র png/jpg "
+"ফাইলসমূহ প্রকল্পে প্রতিলিপি/কপি করুন।"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Crop empty space."
-msgstr ""
+msgstr "খালি স্থান ছেঁটে ফেলুন।"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Texture"
-msgstr ""
+msgstr "গঠনবিন্যাস"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Large Texture"
-msgstr ""
+msgstr "বৃহৎ গঠনবিন্যাস ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Load Source Image"
-msgstr ""
+msgstr "উৎস হতে ছবি লোড করুন"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Slicing"
-msgstr ""
+msgstr "টুকরো করুন"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Inserting"
-msgstr ""
+msgstr "সন্নিবেশিত হচ্ছে"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Saving"
-msgstr ""
+msgstr "সংরক্ষিত হচ্ছে"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Couldn't save large texture:"
-msgstr ""
+msgstr "বৃহৎ গঠনবিন্যাস সংরক্ষণ করা সম্ভব হচ্ছে না:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Build Atlas For:"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলী নির্মাণ করুন:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Loading Image:"
-msgstr ""
+msgstr "ছবি লোড করা হচ্ছে:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Couldn't load image:"
-msgstr ""
+msgstr "ছবি লোড করা সম্ভব হচ্ছে না:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Converting Images"
-msgstr ""
+msgstr "ছবিসমূহ রূপান্তর করা হচ্ছে"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Cropping Images"
-msgstr ""
+msgstr "ছবিসমূহ ছাঁটা হচ্ছে"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Blitting Images"
-msgstr ""
+msgstr "ছবিসমূহ ব্লিটিং (Blitting) করা হচ্ছে"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Couldn't save atlas image:"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলীর ছবি সংরক্ষণ করা সম্ভব হচ্ছে না:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Couldn't save converted texture:"
-msgstr ""
+msgstr "রূপান্তরিত গঠনবিন্যাস সংরক্ষণ করা সম্ভব হচ্ছে না:"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Invalid source!"
-msgstr ""
+msgstr "অকার্যকর উৎস!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Invalid translation source!"
-msgstr ""
+msgstr "অকার্যকর অনুবাদের উৎস!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Column"
-msgstr ""
+msgstr "কলাম"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
#: tools/editor/script_create_dialog.cpp
msgid "Language"
-msgstr ""
+msgstr "ভাষা"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "No items to import!"
-msgstr ""
+msgstr "ইম্পোর্ট করার মতো কোনো বস্তু নেই!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "No target path!"
-msgstr ""
+msgstr "কোনো উদ্দেশ্যিত পথ নেই!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Import Translations"
-msgstr ""
+msgstr "অনুবাদসমূহ ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Couldn't import!"
-msgstr ""
+msgstr "ইম্পোর্ট করা সম্ভব হচ্ছে না!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Import Translation"
-msgstr ""
+msgstr "অনুবাদ ইম্পোর্ট করুন"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Source CSV:"
-msgstr ""
+msgstr "CSV-এর উৎস:"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Ignore First Row"
-msgstr ""
+msgstr "প্রথম সারি অগ্রাহ্য করুন"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Compress"
-msgstr ""
+msgstr "সঙ্কোচন করুন"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Add to Project (engine.cfg)"
-msgstr ""
+msgstr "প্রকল্পে সংযুক্ত করুন (engine.cfg)"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Import Languages:"
-msgstr ""
+msgstr "ভাষাসমূহ ইম্পোর্ট করুন:"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Translation"
-msgstr ""
+msgstr "অনুবাদ"
#: tools/editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr ""
+msgstr "মাল্টি-নোড স্থাপন করুন"
#: tools/editor/node_dock.cpp
msgid "Groups"
-msgstr ""
+msgstr "দলসমূহ"
#: tools/editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "সিগন্যাল-সমূহ এবং দলসমূহ সম্পাদন করতে একটি নোড নির্বাচন করুন।"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "স্বয়ংক্রিয়ভাবে চালানো টগল করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr ""
+msgstr "নতুন অ্যানিমেশনের নাম:"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+msgstr "নতুন অ্যানিমেশন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr ""
+msgstr "অ্যানিমেশনের নাম পরিবর্তন করুন:"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "অ্যানিমেশন অপসারণ করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Invalid animation name!"
-msgstr ""
+msgstr "ভুল: অগ্রহনযোগ্য অ্যানিমেশনের নাম!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Animation name already exists!"
-msgstr ""
+msgstr "ভুল: অ্যানিমেশনের নাম ইতিমধ্যেই বিদ্যমান!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr ""
+msgstr "অ্যানিমেশন পুনঃনামকরণ করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr ""
+msgstr "অ্যানিমেশন যুক্ত করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr ""
+msgstr "পরবর্তী পরিবর্তনের সাথে ব্লেন্ড করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
-msgstr ""
+msgstr "ব্লেন্ড-এর সময় পরিবর্তন করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
-msgstr ""
+msgstr "অ্যানিমেশন লোড করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr ""
+msgstr "অ্যানিমেশন প্রতিলিপি করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to copy!"
-msgstr ""
+msgstr "ভুল: প্রতিলিপি করার মতো কোনো অ্যানিমেশন নেই!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation resource on clipboard!"
-msgstr ""
+msgstr "ভুল: ক্লীপবোর্ডে অ্যানিমেশনের কোনো রিসোর্স নেই!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr ""
+msgstr "প্রতিলিপিত অ্যানিমেশন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
-msgstr ""
+msgstr "অ্যানিমেশন প্রতিলেপন করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to edit!"
-msgstr ""
+msgstr "ভুল: সম্পাদন করার মতো কোনো অ্যানিমেশন নেই!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
+msgstr "নির্বাচিত অ্যানিমেশনটি বর্তমান স্থান হতে পিছনের দিকে চালান। (A)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "নির্বাচিত অ্যানিমেশনটি শেষ হতে পিছনের দিকে চালান। (Shift+A)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr ""
+msgstr "অ্যানিমেশনের চালনা বন্ধ করুন। (S)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
+msgstr "নির্বাচিত অ্যানিমেশনটি শুরু হতে চালান। (Shift+D)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr ""
+msgstr "নির্বাচিত অ্যানিমেশনটি বর্তমান স্থান হতে চালান। (D)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
-msgstr ""
+msgstr "অ্যানিমেশনের স্থান (সেকেন্ডে)।"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr ""
+msgstr "নোডের অ্যানিমেশন চালনার স্কেল/মাপ সার্বজনীনভাবে পরিবর্তন করুন।"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Create new animation in player."
-msgstr ""
+msgstr "প্লেয়ারে নতুন অ্যানিমেশন তৈরি করুন।"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Load animation from disk."
-msgstr ""
+msgstr "ডিস্ক হতে অ্যানিমেশন লোড করুন।"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Load an animation from disk."
-msgstr ""
+msgstr "ডিস্ক হতে একটি অ্যানিমেশন লোড করুন।"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Save the current animation"
-msgstr ""
+msgstr "বর্তমান অ্যানিমেশন সংরক্ষণ করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Save As"
-msgstr ""
+msgstr "এইরূপে সংরক্ষণ করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr ""
+msgstr "প্লেয়ারে অ্যানিমেশনসমূহের তালিকা দেখান।"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
-msgstr ""
+msgstr "লোডের পরেই স্বয়ংক্রিয়ভাবে চালান্‌"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Target Blend Times"
-msgstr ""
+msgstr "উদ্দেশ্যিত ব্লেন্ড-এর সময় সম্পাদন করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr ""
+msgstr "অ্যানিমেশনের সরঞ্জামসমূহ"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Copy Animation"
-msgstr ""
+msgstr "অ্যানিমেশন প্রতিলিপি করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr ""
+msgstr "নতুন অ্যানিমেশন তৈরি করুন"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr ""
+msgstr "অ্যানিমেশনের নাম:"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -3492,277 +3561,278 @@ msgstr ""
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Error!"
-msgstr ""
+msgstr "ভুল/সমস্যা!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "ব্লেন্ড-এর সময়সমূহ:"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "পরবর্তী (স্বয়ংক্রিয়ভাবে সারিবদ্ধ করুন):"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
-msgstr ""
+msgstr "আন্ত-অ্যানিমেশন ব্লেন্ড সময়"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
-msgstr ""
+msgstr "অ্যানিমেশন"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "New name:"
-msgstr ""
+msgstr "নতুন নাম:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr ""
+msgstr "স্কেল/মাপ:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade In (s):"
-msgstr ""
+msgstr "অন্তঃস্থ ফেড/বিলীন (সেঃ):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade Out (s):"
-msgstr ""
+msgstr "বহিঃস্থ ফেড/বিলীন (সেঃ):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend"
-msgstr ""
+msgstr "ব্লেন্ড/মিশ্রণ"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix"
-msgstr ""
+msgstr "মিশ্রিত করুন"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr ""
+msgstr "স্বয়ংক্রিয়ভাবে পুনরারম্ভ করুন:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Restart (s):"
-msgstr ""
+msgstr "পুনরারম্ভ (সেঃ):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr ""
+msgstr "যথেচ্ছ পুনরারম্ভ (সেঃ):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Start!"
-msgstr ""
+msgstr "আরম্ভ!"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Amount:"
-msgstr ""
+msgstr "পরিমাণ:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend:"
-msgstr ""
+msgstr "ব্লেন্ড/মিশ্রণ:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 0:"
-msgstr ""
+msgstr "ব্লেন্ড/মিশ্রণ ০:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 1:"
-msgstr ""
+msgstr "ব্লেন্ড/মিশ্রণ ১:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr ""
+msgstr "X-ফেড/বিলীন সময় (সেঃ):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Current:"
-msgstr ""
+msgstr "বর্তমান:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Add Input"
-msgstr ""
+msgstr "ইনপুট যোগ করুন"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Clear Auto-Advance"
-msgstr ""
+msgstr "স্বয়ংক্রিয়-অগ্রগতি পরিষ্কার করুন"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Set Auto-Advance"
-msgstr ""
+msgstr "স্বয়ংক্রিয়-অগ্রগতি স্থাপন করুন"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Delete Input"
-msgstr ""
+msgstr "ইনপুট অপসারণ করুন"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Rename"
-msgstr ""
+msgstr "পুনঃনামকরণ করুন"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr ""
+msgstr "অ্যানিমেশনের তালিকাটি কার্যকর।"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr ""
+msgstr "অ্যানিমেশনের তালিকাটি অকার্যকর।"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation Node"
-msgstr ""
+msgstr "অ্যানিমেশনের নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "OneShot Node"
-msgstr ""
+msgstr "ওয়ান-শট নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "মিশ্র নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr ""
+msgstr "ব্লেন্ড২ নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr ""
+msgstr "ব্লেন্ড৩ নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr ""
+msgstr "ব্লেন্ড৪ নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr ""
+msgstr "টাইম-স্কেল নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr ""
+msgstr "টাইম-সীক্‌ নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "ট্র্যানজিশন নোড"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
-msgstr ""
+msgstr "অ্যানিমেশনসমূহ ইম্পোর্ট করুন.."
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "নোড ফিল্টারসমূহ সম্পাদন করুন"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Filters.."
-msgstr ""
+msgstr "ফিল্টারসমূহ.."
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Parsing %d Triangles:"
-msgstr ""
+msgstr "%d টি ত্রিভুজ বিশ্লেষণ করা হচ্ছে:"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Triangle #"
-msgstr ""
+msgstr "ত্রিভুজ #"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Light Baker Setup:"
-msgstr ""
+msgstr "লাইট্‌ সিদ্ধ/বেক্‌-এর সেটআপ:"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Parsing Geometry"
-msgstr ""
+msgstr "জ্যামিতিক-আকার বিশ্লেষণ করা হচ্ছে"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Fixing Lights"
-msgstr ""
+msgstr "লাইট্‌সমূহ ঠিক করা হচ্ছে"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Making BVH"
-msgstr ""
+msgstr "BVH তৈরি করা হচ্ছে"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Creating Light Octree"
-msgstr ""
+msgstr "লাইটের ওকট্রী (octree) তৈরি করা হচ্ছে"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Creating Octree Texture"
-msgstr ""
+msgstr "ওকট্রী (octree) গঠনবিন্যাস তৈরি করা হচ্ছে"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Transfer to Lightmaps:"
-msgstr ""
+msgstr "লাইট্ম্যাপে হস্তান্তর করুন:"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Allocating Texture #"
-msgstr ""
+msgstr "গঠনবিন্যাস বণ্টিত হচ্ছে #"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Baking Triangle #"
-msgstr ""
+msgstr "ত্রিভুজ সিদ্ধ/বেক্‌ করা হচ্ছে #"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Post-Processing Texture #"
-msgstr ""
+msgstr "গঠনবিন্যাসের প্রক্রিয়া-পরবর্তী প্রক্রিয়াকরণ #"
#: tools/editor/plugins/baked_light_editor_plugin.cpp
msgid "Bake!"
-msgstr ""
+msgstr "সিদ্ধ/বেক্‌!"
#: tools/editor/plugins/baked_light_editor_plugin.cpp
msgid "Reset the lightmap octree baking process (start over)."
msgstr ""
+"লাইট্ম্যাপ ওকট্রীর (octree) সিদ্ধ/বেক্‌-এর প্রক্রিয়াকরণ পুন:স্থাপন করুন (পুনরারম্ভ)।"
#: tools/editor/plugins/camera_editor_plugin.cpp
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Preview"
-msgstr ""
+msgstr "প্রিভিউ"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr ""
+msgstr "স্ন্যাপ কনফিগার করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset:"
-msgstr ""
+msgstr "গ্রিডের অফসেট/ভারসাম্য:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step:"
-msgstr ""
+msgstr "গ্রিডের পদক্ষেপ:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
-msgstr ""
+msgstr "ঘূর্ণায়নের অফসেট/ভারসাম্য:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
-msgstr ""
+msgstr "ঘূর্ণায়নের পদক্ষেপ:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Pivot"
-msgstr ""
+msgstr "কেন্দ্র স্থানান্তর করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Action"
-msgstr ""
+msgstr "প্রক্রিয়া স্থানান্তর করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit IK Chain"
-msgstr ""
+msgstr "IK চেইন সম্পাদন করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit CanvasItem"
-msgstr ""
+msgstr "CanvasItem সম্পাদন করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors"
-msgstr ""
+msgstr "অ্যাংকরসমূহ পরিবর্তন করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom (%):"
-msgstr ""
+msgstr "জুম্ (%):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr ""
+msgstr "ভঙ্গি প্রতিলেপন করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Select Mode"
@@ -3770,19 +3840,19 @@ msgstr "মোড (Mode) বাছাই করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
-msgstr ""
+msgstr "টান: ঘূর্ণন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+Drag: Move"
-msgstr ""
+msgstr "অল্টার কী + টান: স্থানান্তর"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
-msgstr ""
+msgstr "কেন্দ্র পরিবর্তন করতে 'v' চাপুন, কেন্দ্র টানতে 'Shift+v' চাপুন (যখন সরাচ্ছেন)।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr ""
+msgstr "অল্টার কী + মাউসের ডান বোতাম: গভীর তালিকায় নির্বাচন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Mode"
@@ -3790,7 +3860,7 @@ msgstr "মোড (Mode) সরান"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr ""
+msgstr "ঘূর্ণায়ন মোড"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
@@ -3798,145 +3868,192 @@ msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
+"ক্লিক-কৃত স্থানে সকল বস্তুর একটি তালিকা দেখুন\n"
+"(ঠিক যেমন সিলেক্ট মোডে অল্টার কী (Alt) + মাউসের ডান বোতাম (RMB))।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
-msgstr ""
+msgstr "বস্তুর ঘূর্ণায়ন কেন্দ্র পরিবর্তন করতে ক্লিক করুন।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
-msgstr ""
+msgstr "প্যান মোড"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
+msgstr "নির্বাচিত বস্তুটিকে এই স্থানে আটকিয়ে রাখুন (সরানো সম্ভব হবেনা)।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
-msgstr ""
+msgstr "নির্বাচিত বস্তুটিকে মুক্ত করুন (সরানো সম্ভব হবে)।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
-msgstr ""
+msgstr "বস্তুর অন্তর্ভুক্ত-সমূহ যাতে নির্বাচনযোগ্য না হয় তা নিশ্চিত করে।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
-msgstr ""
+msgstr "বস্তুর অন্তর্ভুক্ত-সমূহের নির্বাচনযোগ্যতা পুনরায় ফিরিয়ে আনে।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr ""
+msgstr "স্ন্যাপ ব্যবহার করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Show Grid"
-msgstr ""
+msgstr "গ্রিড দেখান"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
-msgstr ""
+msgstr "ঘূর্ণন স্ন্যাপ ব্যবহার করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "আপেক্ষিক স্ন্যাপ"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Configure Snap.."
-msgstr ""
+msgstr "স্ন্যাপ কনফিগার করুন.."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
-msgstr ""
+msgstr "পিক্সেল স্ন্যাপ ব্যবহার করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Expand to Parent"
-msgstr ""
+msgstr "ধারক/বাহক পর্যন্ত বিস্তৃত করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton.."
-msgstr ""
+msgstr "স্কেলেটন/কাঠাম.."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make Bones"
-msgstr ""
+msgstr "বোন্‌/হাড় তৈরি করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Bones"
-msgstr ""
+msgstr "বোন্‌/হাড় পরিষ্কার করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
-msgstr ""
+msgstr "বোন্‌/হাড় দেখান"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
-msgstr ""
+msgstr "IK চেইন তৈরি করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr ""
+msgstr "IK চেইন পরিষ্কার করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr ""
+msgstr "দৃশ্য/পরিদর্শন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom Reset"
-msgstr ""
+msgstr "জুম্ পুন:স্থাপন করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom Set.."
-msgstr ""
+msgstr "জুম্ নির্ধারণ করুন.."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr ""
+msgstr "নির্বাচনকে কেন্দ্রীভূত করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
-msgstr ""
+msgstr "নির্বাচনকে ফ্রেমভূক্ত করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchor"
-msgstr ""
+msgstr "অ্যাংকর"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Keys"
-msgstr ""
+msgstr "চাবিসমূহ সন্নিবেশ করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr ""
+msgstr "চাবি সন্নিবেশ করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr ""
+msgstr "চাবি সন্নিবেশ করুন (বিদ্যমান ট্র্যাক/পথসমূহ)"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
-msgstr ""
+msgstr "ভঙ্গি প্রতিলিপি করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr ""
+msgstr "ভঙ্গি পরিষ্কার করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Set a Value"
-msgstr ""
+msgstr "একটি মান নির্ধারণ করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap (Pixels):"
+msgstr "স্ন্যাপ (পিক্সেলসমূহ):"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr "%s সংযুক্ত করুন"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr "%s সংযুক্ত হচ্ছে..."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "নোড তৈরি করুন"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "%s হতে দৃশ্য ইনস্ট্যান্স করাতে সমস্যা হয়েছে"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "ঠিক আছে :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "ইনস্ট্যান্স করার জন্য প্রয়োজনীয় ধারক উপস্থিত নেই।"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "এই কাজটি করার জন্য একটি একক নির্বাচিত নোড প্রয়োজন।"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr "ডিফল্ট ধরণ পরিবর্তন করুন"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
msgstr ""
+"টানুন এবং ফেলুন + শিফট কী (Shift) : সহোদর নোড সংযোজন করতে\n"
+"টানুন এবং ফেলুন + অল্টার কী (Alt) : নোডের ধরণ পরিবর্তন করতে"
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Poly"
-msgstr ""
+msgstr "Poly তৈরি করুন"
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
@@ -3945,7 +4062,7 @@ msgstr ""
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Edit Poly"
-msgstr ""
+msgstr "Poly সম্পাদন করুন"
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
@@ -3954,2267 +4071,2318 @@ msgstr ""
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr ""
+msgstr "Poly সম্পাদন করুন (বিন্দু অপসারণ করুন)"
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create a new polygon from scratch."
-msgstr ""
+msgstr "আরম্ভ হতে নতুন polygon তৈরি করুন।"
#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Poly3D"
-msgstr ""
+msgstr "Poly3D তৈরি করুন"
#: tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
-msgstr ""
+msgstr "হ্যান্ডেল স্থাপন করুন"
#: tools/editor/plugins/color_ramp_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
-msgstr ""
+msgstr "রঙ্গের র‍্যাম্প বিন্দু সংযোজন/বিয়োজন করুন"
#: tools/editor/plugins/color_ramp_editor_plugin.cpp
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Color Ramp"
-msgstr ""
+msgstr "রঙ্গের র‍্যাম্প পরিবর্তন করুন"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Creating Mesh Library"
-msgstr ""
+msgstr "মেস লাইব্রেরি তৈরি হচ্ছে"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Thumbnail.."
-msgstr ""
+msgstr "থাম্বনেইল.."
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr ""
+msgstr "%d টি বস্তু অপসারণ করবেন?"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
#: tools/editor/plugins/theme_editor_plugin.cpp
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Item"
-msgstr ""
+msgstr "বস্তু যোগ করুন"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr ""
+msgstr "নির্বাচিত বস্তুটি অপসারণ করুন"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import from Scene"
-msgstr ""
+msgstr "দৃশ্য হতে ইম্পোর্ট করুন"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Update from Scene"
-msgstr ""
+msgstr "দৃশ্য হতে হালনাগাদ করুন"
#: tools/editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr ""
+msgstr "বস্তু %d"
#: tools/editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr ""
+msgstr "বস্তুসমূহ"
#: tools/editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr ""
+msgstr "বস্তুর তালিকা এডিটর"
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
-msgstr ""
+msgstr "অকলুডার (occluder) পলিগন তৈরি করুন"
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Edit existing polygon:"
-msgstr ""
+msgstr "বিদ্যমান পলিগন সম্পাদন করুন:"
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "LMB: Move Point."
-msgstr ""
+msgstr "মাউসের বাম বোতাম: বিন্দু সরান।"
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Ctrl+LMB: Split Segment."
-msgstr ""
+msgstr "কন্ট্রোল + মাউসের বাম বোতাম: অংশ বিভক্ত করুন।"
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "RMB: Erase Point."
-msgstr ""
+msgstr "মাউসের ডান বোতাম: বিন্দু মুছে ফেলুন।"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh is empty!"
-msgstr ""
+msgstr "মেসটি খালি!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
-msgstr ""
+msgstr "স্থিত-ট্রাইমেস বডি গঠন করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Convex Body"
-msgstr ""
+msgstr "স্থিত-কনভেক্স বডি গঠন করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr ""
+msgstr "দৃশ্যের গোড়ায় এটি কাজ করেনা!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Shape"
-msgstr ""
+msgstr "ট্রাইমেস আকার তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Shape"
-msgstr ""
+msgstr "কনভেক্স আকার তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
-msgstr ""
+msgstr "Navigation Mesh তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
-msgstr ""
+msgstr "MeshInstance-এ Mesh নেই!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh has not surface to create outlines from!"
-msgstr ""
+msgstr "প্রান্তরেখা তৈরি করার জন্য প্রয়োজনীয় Mesh এর কোনো পৃষ্ঠতল নেই!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
-msgstr ""
+msgstr "প্রান্তরেখা তৈরি করা সম্ভব হয়নি!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
-msgstr ""
+msgstr "প্রান্তরেখা তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
-msgstr ""
+msgstr "স্থিত-ট্রাইমেস বডি তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Static Body"
-msgstr ""
+msgstr "স্থিত-কনভেক্স বডি তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Collision Sibling"
-msgstr ""
+msgstr "ট্রাইমেস কলিশ়ন সহোদর তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Collision Sibling"
-msgstr ""
+msgstr "কনভেক্স কলিশ়ন সহোদর তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh.."
-msgstr ""
+msgstr "প্রান্তরেখা মেস তৈরি করুন.."
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
-msgstr ""
+msgstr "প্রান্তরেখা মেস তৈরি করুন"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Outline Size:"
-msgstr ""
+msgstr "প্রান্তরেখার আকার:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr ""
+msgstr "মেসের কোনো উৎস নির্দিষ্ট করা নেই (এবং নোডে কোনো মাল্টিমেস স্থাপন করা নেই)।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr ""
+msgstr "মেসের কোনো উৎস নির্দিষ্ট করা নেই (এবং মাল্টিমেসে কোনো মেস নেই)।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (invalid path)."
-msgstr ""
+msgstr "মেসের উৎস আকার্যকর (আকার্যকর পথ)।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr ""
+msgstr "Mesh-এর উৎস অগ্রহণযোগ্য (MeshInstance নয়)।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr ""
+msgstr "Mesh-এর উৎস অগ্রহণযোগ্য (কোনো Mesh রিসোর্স নেই)।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No surface source specified."
-msgstr ""
+msgstr "কোনো পৃষ্ঠতলের উৎস নির্দিষ্ট করা নেই।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (invalid path)."
-msgstr ""
+msgstr "পৃষ্ঠতলের উৎস অকার্যকর (অকার্যকর পথ)।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no geometry)."
-msgstr ""
+msgstr "পৃষ্ঠতলের উৎস অকার্যকর (কোনো জ্যামিতিক আকার নেই)।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no faces)."
-msgstr ""
+msgstr "পৃষ্ঠতলের উৎস অকার্যকর (কোনো ফোকাস নেই)।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Parent has no solid faces to populate."
-msgstr ""
+msgstr "পপুলেট করার জন্য ধারকের কোনো নিরেট পৃষ্ঠ নেই।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Couldn't map area."
-msgstr ""
+msgstr "এলাকার নকশা করা সম্ভব হয়নি।"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Source Mesh:"
-msgstr ""
+msgstr "Mesh-এর একটি উৎস নির্বাচন করুন:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Target Surface:"
-msgstr ""
+msgstr "একটি উদ্দেশ্যিত পৃষ্ঠতল নির্বাচন করুন:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate Surface"
-msgstr ""
+msgstr "পৃষ্ঠতল পপুলেট করুন"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate MultiMesh"
-msgstr ""
+msgstr "MultiMesh পপুলেট করুন"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Target Surface:"
-msgstr ""
+msgstr "উদ্দেশ্যিত পৃষ্ঠতল:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Source Mesh:"
-msgstr ""
+msgstr "উৎস Mesh:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "X-Axis"
-msgstr ""
+msgstr "X-অক্ষ"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Y-Axis"
-msgstr ""
+msgstr "Y-অক্ষ"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Z-Axis"
-msgstr ""
+msgstr "Z-অক্ষ"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh Up Axis:"
-msgstr ""
+msgstr "অক্ষতে Mesh দিন:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Rotation:"
-msgstr ""
+msgstr "যথেচ্ছ ঘূর্ণায়ন:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Tilt:"
-msgstr ""
+msgstr "যথেচ্ছ ঢাল:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Scale:"
-msgstr ""
+msgstr "যথেচ্ছ মাপ:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate"
-msgstr ""
+msgstr "পপুলেট"
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create Navigation Polygon"
-msgstr ""
+msgstr "Navigation Polygon তৈরি করুন"
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Remove Poly And Point"
-msgstr ""
+msgstr "পলি এবং বিন্দু অপসারণ করুন"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Error loading image:"
-msgstr ""
+msgstr "ছবি লোডে সমস্যা হয়েছে:"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "No pixels with transparency > 128 in image.."
-msgstr ""
+msgstr "স্বচ্ছতাসহ কোনো পিক্সেল নেই > ছবিতে ১২৮.."
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Set Emission Mask"
-msgstr ""
+msgstr "Emission Mask স্থাপন করুন"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Clear Emission Mask"
-msgstr ""
+msgstr "Emission Mask পরিস্কার করুন"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
-msgstr ""
+msgstr "Emission Mask লোড করুন"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr ""
+msgstr "উৎপাদিত বিন্দুর সংখ্যা:"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry."
-msgstr ""
+msgstr "নোডে কোনো জ্যামিতিক আকার নেই।"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry (faces)."
-msgstr ""
+msgstr "নোডে কোনো জ্যামিতিক আকার নেই (পৃষ্ঠ)।"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Faces contain no area!"
-msgstr ""
+msgstr "পৃষ্ঠসমূহ কোনো আকার নেই!"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "No faces!"
-msgstr ""
+msgstr "কোনো পৃষ্ঠ নেই!"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Generate AABB"
-msgstr ""
+msgstr "AABB উৎপন্ন করুন"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter From Mesh"
-msgstr ""
+msgstr "Mesh হতে Emitter তৈরি করুন"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter From Node"
-msgstr ""
+msgstr "Node হতে Emitter তৈরি করুন"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Clear Emitter"
-msgstr ""
+msgstr "Emitter পরিস্কার করুন"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
-msgstr ""
+msgstr "Emitter তৈরি করুন"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Emission Positions:"
-msgstr ""
+msgstr "Emission-এর স্থানসমূহ:"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Emission Fill:"
-msgstr ""
+msgstr "Emission পূরণ:"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Surface"
-msgstr ""
+msgstr "পৃষ্ঠতল"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
-msgstr ""
+msgstr "আয়তন"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Point from Curve"
-msgstr ""
+msgstr "বক্ররেখা হতে বিন্দু অপসারণ করুন"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Add Point to Curve"
-msgstr ""
+msgstr "বক্ররেখায় বিন্দু যোগ করুন"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
-msgstr ""
+msgstr "বক্ররেখায় বিন্দু সরান"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Move In-Control in Curve"
-msgstr ""
+msgstr "বক্ররেখা আন্ত-নিয়ন্ত্রণে সরান"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Out-Control in Curve"
-msgstr ""
+msgstr "বক্ররেখা বহিঃ-নিয়ন্ত্রণে সরান"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Select Points"
-msgstr ""
+msgstr "বিন্দুসমূহ নির্বাচন করুন"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Shift+Drag: Select Control Points"
-msgstr ""
+msgstr "শিফট + টান: নিয়ন্ত্রণ বিন্দুসমূহ নির্বাচন করুন"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Click: Add Point"
-msgstr ""
+msgstr "ক্লিক: বিন্দু যোগ করুন"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Right Click: Delete Point"
-msgstr ""
+msgstr "ডান ক্লিক: বিন্দু অপসারণ করুন"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Select Control Points (Shift+Drag)"
-msgstr ""
+msgstr "নিয়ন্ত্রণ বিন্দুসমূহ নির্বাচন করুন (শিফট + টান)"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Add Point (in empty space)"
-msgstr ""
+msgstr "বিন্দু যোগ করুন (শূন্যস্থানে)"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Split Segment (in curve)"
-msgstr ""
+msgstr "অংশ বিভক্ত করুন (বক্ররেখায়)"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Delete Point"
-msgstr ""
+msgstr "বিন্দু অপসারণ করুন"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Close Curve"
-msgstr ""
+msgstr "বক্ররেখা বন্ধ করুন"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
-msgstr ""
+msgstr "বক্ররেখার বিন্দু #"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Point Pos"
-msgstr ""
+msgstr "বক্ররেখার বিন্দুর স্থান নির্ধারণ করুন"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Set Curve In Pos"
-msgstr ""
+msgstr "আন্ত-বক্ররেখার স্থান নির্ধারণ করুন"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Out Pos"
-msgstr ""
+msgstr "বহিঃ-বক্ররেখার স্থান নির্ধারণ করুন"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Split Path"
-msgstr ""
+msgstr "পথ বিভক্ত করুন"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Remove Path Point"
-msgstr ""
+msgstr "পথের বিন্দু অপসারণ করুন"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create UV Map"
-msgstr ""
+msgstr "UV Map তৈরি করুন"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
-msgstr ""
+msgstr "UV Map রুপান্তর করুন"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
-msgstr ""
+msgstr "Polygon 2D UV এডিটর"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Point"
-msgstr ""
+msgstr "বিন্দু সরান"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
-msgstr ""
+msgstr "কন্ট্রোল বোতাম: ঘূর্ণন"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
-msgstr ""
+msgstr "শিফট্‌: সবগুলি নড়ান"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
-msgstr ""
+msgstr "শিফট্‌ + কন্ট্রোল: মাপ"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Polygon"
-msgstr ""
+msgstr "পলিগন সরান"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Rotate Polygon"
-msgstr ""
+msgstr "পলিগন ঘুরান"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Scale Polygon"
-msgstr ""
+msgstr "পলিগন মাপ করুন"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon->UV"
-msgstr ""
+msgstr "পলিগন->UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV->Polygon"
-msgstr ""
+msgstr "UV->পলিগন"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
-msgstr ""
+msgstr "UV পরিস্কার করুন"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Snap"
-msgstr ""
+msgstr "স্ন্যাপ"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Enable Snap"
-msgstr ""
+msgstr "স্ন্যাপ সক্রিয় করুন"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid"
-msgstr ""
+msgstr "গ্রিড"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr ""
+msgstr "সমস্যা: রিসোর্স লোড করা সম্ভব হয়নি!"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
-msgstr ""
+msgstr "রিসোর্স যোগ করুন"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Rename Resource"
-msgstr ""
+msgstr "রিসোর্স পুনঃনামকরণ করুন"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Resource"
-msgstr ""
+msgstr "রিসোর্স অপসারণ করুন"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
-msgstr ""
+msgstr "রিসোর্সের ক্লীপবোর্ড খালি!"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Load Resource"
-msgstr ""
+msgstr "রিসোর্স লোড করুন"
#: tools/editor/plugins/rich_text_editor_plugin.cpp
msgid "Parse BBCode"
-msgstr ""
+msgstr "BBCode বিশ্লেষণ করুন"
#: tools/editor/plugins/sample_editor_plugin.cpp
msgid "Length:"
-msgstr ""
+msgstr "লম্বা:"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Open Sample File(s)"
-msgstr ""
+msgstr "নমুনা ফাইল(সমূহ) খুলুন"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "ERROR: Couldn't load sample!"
-msgstr ""
+msgstr "সমস্যা: নমুনা লোড করা সম্ভব হয়নি!"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Add Sample"
-msgstr ""
+msgstr "নমুনা যোগ করুন"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Rename Sample"
-msgstr ""
+msgstr "নমুনা পুনঃনামকরণ করুন"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Delete Sample"
-msgstr ""
+msgstr "নমুনা অপসারণ করুন"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "16 Bits"
-msgstr ""
+msgstr "১৬ বিটস্‌"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "8 Bits"
-msgstr ""
+msgstr "৮ বিটস্‌"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Stereo"
-msgstr ""
+msgstr "স্টেরিও"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Mono"
-msgstr ""
+msgstr "মনো"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Format"
-msgstr ""
+msgstr "ফরম্যাট"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Pitch"
-msgstr ""
+msgstr "পিচ্‌"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr ""
+msgstr "থিম সংরক্ষণে সমস্যা হয়েছে"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
-msgstr ""
+msgstr "সংরক্ষণে সমস্যা হয়েছে"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme"
-msgstr ""
+msgstr "থিম ইম্পোর্টে সমস্যা হয়েছে"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Error importing"
-msgstr ""
+msgstr "ইম্পোর্টে সমস্যা হয়েছে"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr ""
+msgstr "থিম ইম্পোর্ট করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As.."
-msgstr ""
+msgstr "থিম এইরূপে সংরক্ষণ করুন.."
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Next script"
-msgstr ""
+msgstr "পরবর্তী স্ক্রিপ্ট"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Previous script"
-msgstr ""
+msgstr "পূর্ববর্তী স্ক্রিপ্ট"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/project_export.cpp
msgid "File"
-msgstr ""
+msgstr "ফাইল"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/property_editor.cpp
msgid "New"
-msgstr ""
+msgstr "নতুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save All"
-msgstr ""
+msgstr "সকল্গুলি সংরক্ষণ করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr ""
+msgstr "স্বল্প-প্রভাবসহ স্ক্রিপ্ট রিলোড করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
-msgstr ""
+msgstr "পূর্বের ইতিহাস"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "History Next"
-msgstr ""
+msgstr "পরের ইতিহাস"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
-msgstr ""
+msgstr "থিম রিলোড করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save Theme"
-msgstr ""
+msgstr "থিম সংরক্ষণ করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As"
-msgstr ""
+msgstr "থিম এইরূপে সংরক্ষণ করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Close Docs"
-msgstr ""
+msgstr "ডকুমেন্টসমূহ বন্ধ করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "সবগুলি বাছাই করুন"
+msgstr "সবগুলি বন্ধ করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Find.."
-msgstr ""
+msgstr "খুঁজুন.."
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Find Next"
-msgstr ""
+msgstr "পরবর্তী খুঁজুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Debug"
-msgstr ""
+msgstr "ডিবাগ"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Step Over"
-msgstr ""
+msgstr "ধাপ লাফিয়ে যান"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Step Into"
-msgstr ""
+msgstr "পদার্পণ করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Break"
-msgstr ""
+msgstr "বিরতি/ভাঙ্গন"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Continue"
-msgstr ""
+msgstr "সচল"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Keep Debugger Open"
-msgstr ""
+msgstr "ডিবাগার খোলা রাখুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Window"
-msgstr ""
+msgstr "উইন্ডো"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Move Left"
-msgstr ""
+msgstr "বামে সরান"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Move Right"
-msgstr ""
+msgstr "ডানে সরান"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Tutorials"
-msgstr ""
+msgstr "টিউটোরিয়ালসমূহ"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Open https://godotengine.org at tutorials section."
-msgstr ""
+msgstr "টিউটোরিয়ালের স্থানে https://godotengine.org খুলুন।"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Classes"
-msgstr ""
+msgstr "ক্লাসসমূহ"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Search the class hierarchy."
-msgstr ""
+msgstr "ক্লাসের ক্রমোচ্চতা খুঁজুন।"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
-msgstr ""
+msgstr "রেফারেন্সের ডকুমেন্টেশনে খুঁজুন।"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Go to previous edited document."
-msgstr ""
+msgstr "পূর্বের সম্পাদিত ডকুমেন্টে যান।"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Go to next edited document."
-msgstr ""
+msgstr "পরের সম্পাদিত ডকুমেন্টে যান।"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
-msgstr ""
+msgstr "স্ক্রিপ্ট তৈরি করুন"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid ""
"The following files are newer on disk.\n"
"What action should be taken?:"
msgstr ""
+"নিম্নোক্ত ফাইলসমূহ ডিস্কে নতুনতর।\n"
+"কোন সিধান্তটি নেয়া উচিত হবে?:"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Reload"
-msgstr ""
+msgstr "রিলোড"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Resave"
-msgstr ""
+msgstr "পুনঃসংরক্ষণ"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Debugger"
-msgstr ""
+msgstr "ডিবাগার"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid ""
"Built-in scripts can only be edited when the scene they belong to is loaded"
-msgstr ""
+msgstr "পূর্বনির্মিত স্ক্রিপ্ট শুধুমাত্র তাদের অধিকারী দৃশ্য লোড করা হলেই সম্পাদন করা যাবে"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Pick Color"
-msgstr ""
+msgstr "রঙ পছন্দ করুন"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
-msgstr ""
+msgstr "উপরে যান"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Down"
-msgstr ""
+msgstr "নীচে যান"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Indent Left"
-msgstr ""
+msgstr "বামে মাত্রা দিন"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Indent Right"
-msgstr ""
+msgstr "ডানে মাত্রা দিন"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
-msgstr ""
+msgstr "কমেন্ট টগল করুন"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Clone Down"
-msgstr ""
+msgstr "ক্লোন করে নীচে নিন"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr ""
+msgstr "সিম্বল সম্পূর্ণ করুন"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
-msgstr ""
+msgstr "শেষের হোয়াইটস্পেস ছেঁটে ফেলুন"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
-msgstr ""
+msgstr "স্বয়ংক্রিয়ভাবে মাত্রা দিন"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr ""
+msgstr "সকল বিরতি-বিন্দু-সমূহ অপসারণ করুন"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Goto Next Breakpoint"
-msgstr ""
+msgstr "পরের বিরতিবিন্দুতে যান"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Goto Previous Breakpoint"
-msgstr ""
+msgstr "পূর্বের বিরতিবিন্দুতে যান"
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Find Previous"
-msgstr ""
+msgstr "পূর্বে খুঁজুন"
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Replace.."
-msgstr ""
+msgstr "প্রতিস্থাপন.."
#: tools/editor/plugins/script_text_editor.cpp
msgid "Goto Function.."
-msgstr ""
+msgstr "ফাংশনে যান.."
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Goto Line.."
-msgstr ""
+msgstr "লাইনে যান.."
#: tools/editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
+msgstr "প্রাসঙ্গিক সাহায্য"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
-msgstr ""
+msgstr "স্কেলার ধ্রুবক পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Constant"
-msgstr ""
+msgstr "ভেক্টর ধ্রুবক পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Constant"
-msgstr ""
+msgstr "RGB ধ্রুবক পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Operator"
-msgstr ""
+msgstr "স্কেলার অপারেটর পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Operator"
-msgstr ""
+msgstr "ভেক্টর অপারেটর পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Scalar Operator"
-msgstr ""
+msgstr "ভেক্টর স্কেলার অপারেটর পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Operator"
-msgstr ""
+msgstr "RGB অপারেটর পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Toggle Rot Only"
-msgstr ""
+msgstr "শুধুমাত্র ঘূর্ণন টগল করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Function"
-msgstr ""
+msgstr "স্কেলার ফাংশন পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Function"
-msgstr ""
+msgstr "ভেক্টর ফাংশন পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Uniform"
-msgstr ""
+msgstr "স্কেলার ইউনিফর্ম পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Uniform"
-msgstr ""
+msgstr "ভেক্টর ইউনিফর্ম পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Uniform"
-msgstr ""
+msgstr "RGB ইউনিফর্ম পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Default Value"
-msgstr ""
+msgstr "প্রাথমিক মান পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change XForm Uniform"
-msgstr ""
+msgstr "XForm ইউনিফর্ম পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Texture Uniform"
-msgstr ""
+msgstr "টেক্সার ইউনিফর্ম পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Cubemap Uniform"
-msgstr ""
+msgstr "Cubemap ইউনিফর্ম পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Comment"
-msgstr ""
+msgstr "কমেন্ট পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add/Remove to Color Ramp"
-msgstr ""
+msgstr "রঙ্গের র‍্যাম্পে সংযোজন/বিয়োজন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add/Remove to Curve Map"
-msgstr ""
+msgstr "Curve Map-এ সংযোজন/বিয়োজন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Curve Map"
-msgstr ""
+msgstr "Curve Map পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Input Name"
-msgstr ""
+msgstr "ইনপুট নাম পরিবর্তন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Connect Graph Nodes"
-msgstr ""
+msgstr "গ্রাফের নোডসমূহ সংযুক্ত করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Disconnect Graph Nodes"
-msgstr ""
+msgstr "গ্রাফের নোডসমূহ বিচ্ছিন্ন করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Remove Shader Graph Node"
-msgstr ""
+msgstr "Shader Graph Node অপসারণ করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Move Shader Graph Node"
-msgstr ""
+msgstr "Shader Graph Node সরান"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Duplicate Graph Node(s)"
-msgstr ""
+msgstr "গ্রাফ নোড(সমূহ) প্রতিলিপি করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Delete Shader Graph Node(s)"
-msgstr ""
+msgstr "Shader Graph Node(s) অপসারণ করুন"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Cyclic Connection Link"
-msgstr ""
+msgstr "সমস্যা: আবর্তনশীল সংযোগ লিঙ্ক"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Missing Input Connections"
-msgstr ""
+msgstr "সমস্যা: ইনপুট সংযোগ নেই"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add Shader Graph Node"
-msgstr ""
+msgstr "Shader Graph Node যোগ করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
-msgstr ""
+msgstr "সমকোণীয় (Orthogonal)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective"
-msgstr ""
+msgstr "পরিপ্রেক্ষিত (Perspective)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
-msgstr ""
+msgstr "রুপান্তর নিষ্ফলা করা হয়েছে।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "X-Axis Transform."
-msgstr ""
+msgstr "X-অক্ষ রুপান্তর।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Y-Axis Transform."
-msgstr ""
+msgstr "Y-অক্ষ রুপান্তর।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Z-Axis Transform."
-msgstr ""
+msgstr "Z-অক্ষ রুপান্তর।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Plane Transform."
-msgstr ""
+msgstr "প্লেন-এর রুপান্তর দেখুন।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling to %s%%."
-msgstr ""
+msgstr "%s%% -এ মাপিত হচ্ছে।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
-msgstr ""
+msgstr "%s ডিগ্রি ঘূর্ণিত হচ্ছে।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View."
-msgstr ""
+msgstr "নিম্ন দর্শন।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom"
-msgstr ""
+msgstr "নিম্ন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
-msgstr ""
+msgstr "শীর্ষ দর্শন।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
-msgstr ""
+msgstr "শীর্ষ"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
-msgstr ""
+msgstr "পশ্চাৎ দর্শন।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rear"
-msgstr ""
+msgstr "পশ্চাৎ"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
-msgstr ""
+msgstr "সন্মুখ দর্শন।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Front"
-msgstr ""
+msgstr "সন্মুখ"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
-msgstr ""
+msgstr "বাম দর্শন।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Left"
-msgstr ""
+msgstr "বাম"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
-msgstr ""
+msgstr "ডান দর্শন।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Right"
-msgstr ""
+msgstr "ডান"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Keying is disabled (no key inserted)."
-msgstr ""
+msgstr "চাবিসংযোক নিষ্ক্রিয় আছে (কোনো চাবি সংযুক্ত হয়নি)।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Animation Key Inserted."
-msgstr ""
+msgstr "অ্যানিমেশনের চাবি সন্নিবেশিত হয়েছে।"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Align with view"
-msgstr ""
+msgstr "দর্শনের সাথে সারিবদ্ধ করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Environment"
-msgstr ""
+msgstr "পরিবেশ (Environment)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Audio Listener"
-msgstr ""
+msgstr "অডিও শ্রোতা"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Gizmos"
-msgstr ""
+msgstr "গিজমোস"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
-msgstr ""
+msgstr "XForm এর সংলাপ"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "No scene selected to instance!"
-msgstr ""
+msgstr "ইন্সট্যান্স করার জন্য কোনো দৃশ্য নির্বাচন করা হয়নি!"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Instance at Cursor"
-msgstr ""
+msgstr "কার্সরের স্থানে ইন্সট্যান্স করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Could not instance scene!"
-msgstr ""
+msgstr "দৃশ্য ইন্সট্যান্স করা সম্ভব হয়নি!"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode (W)"
-msgstr ""
+msgstr "সরানোর মোড (W)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode (E)"
-msgstr ""
+msgstr "ঘোরানোর মোড (E)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode (R)"
-msgstr ""
+msgstr "মাপের মোড করুন (R)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr ""
+msgstr "নিম্ন দর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr ""
+msgstr "শীর্ষ দর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
-msgstr ""
+msgstr "পশ্চাৎ দর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Front View"
-msgstr ""
+msgstr "সন্মুখ দর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Left View"
-msgstr ""
+msgstr "বাম দর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Right View"
-msgstr ""
+msgstr "ডান দর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal view"
-msgstr ""
+msgstr "পরিপ্রেক্ষিত/সমকোণীয় (Perspective/Orthogonal) দর্শন পরিবর্তন করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr ""
+msgstr "অ্যানিমেশনের চাবি সন্নিবেশ করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr ""
+msgstr "অরিজিনে ফোকাস করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
-msgstr ""
+msgstr "নির্বাচনে ফোকাস করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Align Selection With View"
-msgstr ""
+msgstr "নির্বাচনকে দর্শনের সাথে সারিবদ্ধ করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform"
-msgstr ""
+msgstr "রুপান্তর"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Local Coords"
-msgstr ""
+msgstr "স্থানীয় স্থানাঙ্কসমূহ"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
-msgstr ""
+msgstr "রুপান্তরের এর সংলাপ.."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Use Default Light"
-msgstr ""
+msgstr "প্রাথমিক লাইট ব্যবহার করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Use Default sRGB"
-msgstr ""
+msgstr "প্রাথমিক sRGB ব্যবহার করুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr ""
+msgstr "১ টি Viewport"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr ""
+msgstr "২ টি Viewports"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr ""
+msgstr "২ টি Viewports (অল্টার)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr ""
+msgstr "৩ টি Viewports"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr ""
+msgstr "৩ টি Viewports (অল্টার)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr ""
+msgstr "৪ টি Viewports"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
-msgstr ""
+msgstr "Normal প্রদর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Display Wireframe"
-msgstr ""
+msgstr "Wireframe প্রদর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Display Overdraw"
-msgstr ""
+msgstr "Overdraw প্রদর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Display Shadeless"
-msgstr ""
+msgstr "Shadeless প্রদর্শন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr ""
+msgstr "অরিজিন দেখুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
-msgstr ""
+msgstr "গ্রিড দেখুন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
-msgstr ""
+msgstr "স্ন্যাপ সেটিংস"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Translate Snap:"
-msgstr ""
+msgstr "স্ন্যাপ-এর স্থানান্তর:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr ""
+msgstr "স্ন্যাপ-এর ঘূর্ণন (ডিগ্রি):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr ""
+msgstr "স্ন্যাপ-এর মাপন (%):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
-msgstr ""
+msgstr "Viewport সেটিংস"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Default Light Normal:"
-msgstr ""
+msgstr "লাইটের প্রাথমিক নরমাল:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Ambient Light Color:"
-msgstr ""
+msgstr "অ্যাম্বিয়েন্ট লাইটের রঙ:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
-msgstr ""
+msgstr "পরিপ্রেক্ষিত (Perspective) FOV (ডিগ্রি):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr ""
+msgstr "Z-Near দেখুন:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr ""
+msgstr "Z-Far দেখুন:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
-msgstr ""
+msgstr "রুপান্তরের পরিবর্তন"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
-msgstr ""
+msgstr "স্থানান্তর (Translate):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate (deg.):"
-msgstr ""
+msgstr "ঘূর্ণন (ডিগ্রি):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scale (ratio):"
-msgstr ""
+msgstr "মাপন (অনুপাত):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
-msgstr ""
+msgstr "রুপান্তরের ধরণ"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Pre"
-msgstr ""
+msgstr "পূর্ব (Pre)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Post"
-msgstr ""
+msgstr "পরবর্তী (Post)"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
-msgstr ""
+msgstr "সমস্যা: ফ্রেম রিসোর্স লোড করা সম্ভব হয়নি!"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frame"
-msgstr ""
+msgstr "ফ্রেম যোগ করুন"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Resource clipboard is empty or not a texture!"
-msgstr ""
+msgstr "রিসোর্স ক্লীপবোর্ড খালি অথবা কোনো টেক্সার নয়!"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Paste Frame"
-msgstr ""
+msgstr "ফ্রেম প্রতিলেপন করুন"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Empty"
-msgstr ""
+msgstr "খালি বস্তু যোগ করুন"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "অ্যানিমেশনের লুপ পরিবর্তন করুন"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
-msgstr ""
+msgstr "অ্যানিমেশনের FPS পরিবর্তন করুন"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "(empty)"
-msgstr ""
+msgstr "(খালি/শূন্য)"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animations"
-msgstr ""
+msgstr "অ্যানিমেশনসমূহ"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed (FPS):"
-msgstr ""
+msgstr "গতি (FPS):"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animation Frames"
-msgstr ""
+msgstr "অ্যানিমেশনের ফ্রেমসমূহ"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (Before)"
-msgstr ""
+msgstr "খালি বস্তু যুক্ত করুন (পূর্বে)"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (After)"
-msgstr ""
+msgstr "খালি বস্তু যুক্ত করুন (পরে)"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Up"
-msgstr ""
+msgstr "উপরে"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Down"
-msgstr ""
+msgstr "নীচে"
#: tools/editor/plugins/style_box_editor_plugin.cpp
msgid "StyleBox Preview:"
-msgstr ""
+msgstr "StyleBox প্রিভিউ:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr ""
+msgstr "স্ন্যাপ মোড:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "<None>"
-msgstr ""
+msgstr "<নান/কিছুই না>"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "পিক্সেল স্ন্যাপ"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr ""
+msgstr "গ্রিড স্ন্যাপ"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr ""
+msgstr "স্বয়ংক্রিয় টুকরো"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr ""
+msgstr "অফসেট/ভারসাম্য:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
-msgstr ""
+msgstr "পদক্ষেপ:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Separation:"
-msgstr ""
+msgstr "বিচ্ছেদ:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region"
-msgstr ""
+msgstr "গঠনবিন্যাসের এলাকা"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region Editor"
-msgstr ""
+msgstr "গঠনবিন্যাসের এলাকা এডিটর"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
-msgstr ""
+msgstr "থিমটি ফাইলে সংরক্ষণ করা সম্ভব হয়নি:"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add All Items"
-msgstr ""
+msgstr "সকল বস্তু যোগ করুন"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add All"
-msgstr ""
+msgstr "সবগুলি যোগ করুন"
#: tools/editor/plugins/theme_editor_plugin.cpp
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Item"
-msgstr ""
+msgstr "বস্তু অপসারণ করুন"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Theme"
-msgstr ""
+msgstr "থিম"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
-msgstr ""
+msgstr "ক্লাসের আইটেম যোগ করুন"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr ""
+msgstr "ক্লাসের আইটেম অপসারণ করুন"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Template"
-msgstr ""
+msgstr "খালি টেমপ্লেট তৈরি করুন"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Editor Template"
-msgstr ""
+msgstr "এডিটরের খালি টেমপ্লেট তৈরি করুন"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "CheckBox Radio1"
-msgstr ""
+msgstr "CheckBox Radio১"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "CheckBox Radio2"
-msgstr ""
+msgstr "CheckBox Radio২"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Item"
-msgstr ""
+msgstr "বস্তু/আইটেম"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
-msgstr ""
+msgstr "আইটেম চিহ্নিত করুন"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Checked Item"
-msgstr ""
+msgstr "চিহ্নিত আইটেম"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Has"
-msgstr ""
+msgstr "আছে"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Many"
-msgstr ""
+msgstr "অনেক"
#: tools/editor/plugins/theme_editor_plugin.cpp tools/editor/project_export.cpp
msgid "Options"
-msgstr ""
+msgstr "সিদ্ধান্তসমূহ"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Have,Many,Several,Options!"
-msgstr ""
+msgstr "আছে,অনেক,একাধিক,সিদ্ধান্তসমূহ!"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
-msgstr ""
+msgstr "ট্যাব ১"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Tab 2"
-msgstr ""
+msgstr "ট্যাব ২"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Tab 3"
-msgstr ""
+msgstr "ট্যাব ৩"
#: tools/editor/plugins/theme_editor_plugin.cpp
#: tools/editor/project_settings.cpp tools/editor/scene_tree_editor.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Type:"
-msgstr ""
+msgstr "ধরণ:"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Data Type:"
-msgstr ""
+msgstr "ডাটার ধরণ:"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Icon"
-msgstr ""
+msgstr "আইকন"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Style"
-msgstr ""
+msgstr "স্টাইল"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Color"
-msgstr ""
+msgstr "রঙ"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
-msgstr ""
+msgstr "TileMap আঁকুন"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr ""
+msgstr "প্রতিলিপি"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase TileMap"
-msgstr ""
+msgstr "TileMap মুছে ফেলুন"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase selection"
-msgstr ""
+msgstr "নির্বাচিতসমূহ মুছে ফেলুন"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Find tile"
-msgstr ""
+msgstr "টাইল খুঁজুন"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
-msgstr ""
+msgstr "পক্ষান্তরিত করুন"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Mirror X"
-msgstr ""
+msgstr "প্রতিবিম্ব X"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Mirror Y"
-msgstr ""
+msgstr "প্রতিবিম্ব Y"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Bucket"
-msgstr ""
+msgstr "বাকেট্‌"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
-msgstr ""
+msgstr "টাইল পছন্দ করুন"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
-msgstr ""
+msgstr "নির্বাচন করুন"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 0 degrees"
-msgstr ""
+msgstr "০ ডিগ্রি ঘোরান্"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 90 degrees"
-msgstr ""
+msgstr "৯০ ডিগ্রি ঘোরান্"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 180 degrees"
-msgstr ""
+msgstr "১৮০ ডিগ্রি ঘোরান্"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 270 degrees"
-msgstr ""
+msgstr "২৭০ ডিগ্রি ঘোরান্‌"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Could not find tile:"
-msgstr ""
+msgstr "টাইলটি খুঁজে পাওয়া যায়নি:"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Item name or ID:"
-msgstr ""
+msgstr "আইটেমের নাম বা আইডি:"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene?"
-msgstr ""
+msgstr "দৃশ্য হতে তৈরি করবেন?"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from scene?"
-msgstr ""
+msgstr "দৃশ্য হতে একত্রিত করবেন?"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
-msgstr ""
+msgstr "দৃশ্য হতে তৈরি করবেন"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
-msgstr ""
+msgstr "দৃশ্য হতে একত্রিত করবেন"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Error"
-msgstr ""
+msgstr "সমস্যা/ভুল"
#: tools/editor/project_export.cpp
msgid "Edit Script Options"
-msgstr ""
+msgstr "স্ক্রিপ্ট-এর সিদ্ধান্তসমূহ সম্পাদন করুন"
#: tools/editor/project_export.cpp
msgid "Please export outside the project folder!"
-msgstr ""
+msgstr "অনুগ্রহ করে প্রকল্পের ফোল্ডারের বাইরে এক্সপোর্ট করুন!"
#: tools/editor/project_export.cpp
msgid "Error exporting project!"
-msgstr ""
+msgstr "প্রকল্প এক্সপোর্টে সমস্যা হয়েছে!"
#: tools/editor/project_export.cpp
msgid "Error writing the project PCK!"
-msgstr ""
+msgstr "প্রকল্পের PCK লিখতে সমস্যা হয়েছে!"
#: tools/editor/project_export.cpp
msgid "No exporter for platform '%s' yet."
+msgstr "'%s' প্ল্যাটফর্মের জন্য এখনো কোনো এক্সপোর্টার নেই।"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "নতুন রিসোর্স তৈরি করুন"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "গ্রহণযোগ্য নাম"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Include"
+#, fuzzy
+msgid "Organization"
+msgstr "ট্র্যানজিশন/স্থানান্তরণ"
+
+#: tools/editor/project_export.cpp
+msgid "City"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Change Image Group"
+#, fuzzy
+msgid "State"
+msgstr "অবস্থা:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Group name can't be empty!"
+msgid "User alias"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Invalid character in group name!"
+#, fuzzy
+msgid "Password"
+msgstr "পাসওয়ার্ড:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "গ্রহনযোগ্য অক্ষরসমূহ:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "নতুন নাম:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Group name already exists!"
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Add Image Group"
+msgid "Fill Keystore/Release User and Release Password"
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Include"
+msgstr "অন্তর্ভুক্ত করুন"
+
+#: tools/editor/project_export.cpp
+msgid "Change Image Group"
+msgstr "ছবির গ্রুপ পরিবর্তন করুন"
+
+#: tools/editor/project_export.cpp
+msgid "Group name can't be empty!"
+msgstr "গ্রুপের নাম খালি হতে পারবে না!"
+
+#: tools/editor/project_export.cpp
+msgid "Invalid character in group name!"
+msgstr "গ্রুপের নামে অগ্রহনযোগ্য অক্ষর!"
+
+#: tools/editor/project_export.cpp
+msgid "Group name already exists!"
+msgstr "গ্রুপের নাম ইতিমধ্যেই আছে!"
+
+#: tools/editor/project_export.cpp
+msgid "Add Image Group"
+msgstr "ছবির গ্রুপ যোগ করুন"
+
+#: tools/editor/project_export.cpp
msgid "Delete Image Group"
-msgstr ""
+msgstr "ছবির গ্রুপ অপসারণ করুন"
#: tools/editor/project_export.cpp
msgid "Atlas Preview"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলী প্রিভিউ"
#: tools/editor/project_export.cpp
msgid "Project Export Settings"
-msgstr ""
+msgstr "প্রকল্প এক্সপোর্ট-এর সেটিংস"
#: tools/editor/project_export.cpp
msgid "Target"
-msgstr ""
+msgstr "টার্গেট"
#: tools/editor/project_export.cpp
msgid "Export to Platform"
-msgstr ""
+msgstr "প্লাটফর্মে এক্সপোর্ট করুন"
#: tools/editor/project_export.cpp
msgid "Resources"
-msgstr ""
+msgstr "রিসোর্সসমূহ"
#: tools/editor/project_export.cpp
msgid "Export selected resources (including dependencies)."
-msgstr ""
+msgstr "নির্বাচিত রিসোর্সসমূহ এক্সপোর্ট করুন (ডিপেন্ডেন্সী সহ)।"
#: tools/editor/project_export.cpp
msgid "Export all resources in the project."
-msgstr ""
+msgstr "প্রকল্পের সকল রিসোর্স এক্সপোর্ট করুন।"
#: tools/editor/project_export.cpp
msgid "Export all files in the project directory."
-msgstr ""
+msgstr "প্রকল্পের পথে সকল ফাইল এক্সপোর্ট করুন।"
#: tools/editor/project_export.cpp
msgid "Export Mode:"
-msgstr ""
+msgstr "এক্সপোর্ট মোড:"
#: tools/editor/project_export.cpp
msgid "Resources to Export:"
-msgstr ""
+msgstr "এক্সপোর্টের জন্য রিসোর্স:"
#: tools/editor/project_export.cpp
msgid "Action"
-msgstr ""
+msgstr "প্রক্রিয়া/অ্যাকশন"
#: tools/editor/project_export.cpp
msgid ""
"Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"
msgstr ""
+"রিসোর্স-নয় এমন ফাইল এক্সপোর্ট করার ফিল্টারসমূহ (কমা-বিভক্ত, যেমন: *.json, *.txt):"
#: tools/editor/project_export.cpp
msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"
msgstr ""
+"এক্সপোর্ট (export) হতে বর্জনকৃত ফিল্টারসমূহ (filter) (কমা-বিভক্ত, যেমন: *.json, *."
+"txt):"
#: tools/editor/project_export.cpp
msgid "Convert text scenes to binary on export."
-msgstr ""
+msgstr "এক্সপর্টের সময় টেক্সট দৃশ্যগুলোকে বাইনারিতে রুপান্তর করুন।"
#: tools/editor/project_export.cpp
msgid "Images"
-msgstr ""
+msgstr "ছবিসমূহ"
#: tools/editor/project_export.cpp
msgid "Keep Original"
-msgstr ""
+msgstr "মূলটিই (অরিজিনাল) রাখুন"
#: tools/editor/project_export.cpp
msgid "Compress for Disk (Lossy, WebP)"
-msgstr ""
+msgstr "ডিস্কের জন্য সংকুচিত করুন (ধ্বংসাত্মক, WebP)"
#: tools/editor/project_export.cpp
msgid "Compress for RAM (BC/PVRTC/ETC)"
-msgstr ""
+msgstr "RAM-এর জন্য সংকুচিত করুন (BC/PVRTC/ETC)"
#: tools/editor/project_export.cpp
msgid "Convert Images (*.png):"
-msgstr ""
+msgstr "ছবিসমূহ রূপান্তর করুন (*.png):"
#: tools/editor/project_export.cpp
msgid "Compress for Disk (Lossy) Quality:"
-msgstr ""
+msgstr "ডিস্ক-এর জন্য সংকুচিত করুন (ধ্বংসাত্মক গুণের):"
#: tools/editor/project_export.cpp
msgid "Shrink All Images:"
-msgstr ""
+msgstr "সকল ছবি সংকুচিত করুন:"
#: tools/editor/project_export.cpp
msgid "Compress Formats:"
-msgstr ""
+msgstr "ধরণসমূহ সংকোচন করুন:"
#: tools/editor/project_export.cpp
msgid "Image Groups"
-msgstr ""
+msgstr "ছবির গ্রুপসমূহ"
#: tools/editor/project_export.cpp
msgid "Groups:"
-msgstr ""
+msgstr "গ্রুপসমূহ:"
#: tools/editor/project_export.cpp
msgid "Compress Disk"
-msgstr ""
+msgstr "ডিস্ক সঙ্কোচন"
#: tools/editor/project_export.cpp
msgid "Compress RAM"
-msgstr ""
+msgstr "RAM সঙ্কোচন"
#: tools/editor/project_export.cpp
msgid "Compress Mode:"
-msgstr ""
+msgstr "সঙ্কোচন মোড:"
#: tools/editor/project_export.cpp
msgid "Lossy Quality:"
-msgstr ""
+msgstr "ধ্বংসাত্মক গুণের:"
#: tools/editor/project_export.cpp
msgid "Atlas:"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলী:"
#: tools/editor/project_export.cpp
msgid "Shrink By:"
-msgstr ""
+msgstr "সঙ্কোচন দ্বারা:"
#: tools/editor/project_export.cpp
msgid "Preview Atlas"
-msgstr ""
+msgstr "এটলাস/মানচিত্রাবলী প্রিভিউ"
#: tools/editor/project_export.cpp
msgid "Image Filter:"
-msgstr ""
+msgstr "ছবির ফিল্টার:"
#: tools/editor/project_export.cpp
msgid "Images:"
-msgstr ""
+msgstr "ছবিসমূহ:"
#: tools/editor/project_export.cpp
msgid "Select None"
-msgstr ""
+msgstr "কোনোটাই নির্বাচন করবেন না"
#: tools/editor/project_export.cpp
msgid "Group"
-msgstr ""
+msgstr "গ্রুপ"
#: tools/editor/project_export.cpp
msgid "Samples"
-msgstr ""
+msgstr "নমুনাসমূহ"
#: tools/editor/project_export.cpp
msgid "Sample Conversion Mode: (.wav files):"
-msgstr ""
+msgstr "নমুনা রূপান্তর মোড: (.wav ফাইল):"
#: tools/editor/project_export.cpp
msgid "Keep"
-msgstr ""
+msgstr "রাখুন"
#: tools/editor/project_export.cpp
msgid "Compress (RAM - IMA-ADPCM)"
-msgstr ""
+msgstr "সঙ্কোচন (RAM - IMA-ADPCM)"
#: tools/editor/project_export.cpp
msgid "Sampling Rate Limit (Hz):"
-msgstr ""
+msgstr "আদর্শ রেট লিমিট (Hz):"
#: tools/editor/project_export.cpp
msgid "Trim"
-msgstr ""
+msgstr "ছাঁটা"
#: tools/editor/project_export.cpp
msgid "Trailing Silence:"
-msgstr ""
+msgstr "পরিশিষ্ট নীরবতা:"
#: tools/editor/project_export.cpp
msgid "Script"
-msgstr ""
+msgstr "স্ক্রিপ্ট"
#: tools/editor/project_export.cpp
msgid "Script Export Mode:"
-msgstr ""
+msgstr "স্ক্রিপ্ট এক্সপোর্ট মোড:"
#: tools/editor/project_export.cpp
msgid "Text"
-msgstr ""
+msgstr "টেক্সট"
#: tools/editor/project_export.cpp
msgid "Compiled"
-msgstr ""
+msgstr "কম্পাইল্ড"
#: tools/editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
-msgstr ""
+msgstr "এনক্রিপ্ট করুন (নীচে কী/চাবি দিন)"
#: tools/editor/project_export.cpp
msgid "Script Encryption Key (256-bits as hex):"
-msgstr ""
+msgstr "স্ক্রিপ্ট এনক্রিপশন কী/চাবি (২৫৬-বিটস হেক্স):"
#: tools/editor/project_export.cpp
msgid "Export PCK/Zip"
-msgstr ""
+msgstr "এক্সপোর্ট PCK/Zip"
#: tools/editor/project_export.cpp
msgid "Export Project PCK"
-msgstr ""
+msgstr "প্রকল্পের PCK এক্সপোর্ট করুন"
#: tools/editor/project_export.cpp
msgid "Export.."
-msgstr ""
+msgstr "এক্সপোর্ট.."
#: tools/editor/project_export.cpp
msgid "Project Export"
-msgstr ""
+msgstr "এক্সপোর্ট প্রকল্প"
#: tools/editor/project_export.cpp
msgid "Export Preset:"
-msgstr ""
+msgstr "এক্সপোর্টের প্রিসেট:"
#: tools/editor/project_manager.cpp
msgid "Invalid project path, the path must exist!"
-msgstr ""
+msgstr "অকার্যকর প্রকল্পের পথ, পথটি অবশ্যই বিদ্যমান হতে হবে!"
#: tools/editor/project_manager.cpp
msgid "Invalid project path, engine.cfg must not exist."
-msgstr ""
+msgstr "অকার্যকর প্রকল্পের পথ, engine.cfg অবশ্যই অনুপস্থিত হতে হবে।"
#: tools/editor/project_manager.cpp
msgid "Invalid project path, engine.cfg must exist."
-msgstr ""
+msgstr "অকার্যকর প্রকল্পের পথ, engine.cfg অবশ্যই উপস্থিত হতে হবে।"
#: tools/editor/project_manager.cpp
msgid "Imported Project"
-msgstr ""
+msgstr "প্রকল্প ইম্পোর্ট করা হয়েছে"
#: tools/editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
-msgstr ""
+msgstr "অকার্যকর প্রকল্পের পথ (কোনোকিছু পরিবর্তন করেছেন?)।"
#: tools/editor/project_manager.cpp
msgid "Couldn't create engine.cfg in project path."
-msgstr ""
+msgstr "প্রকল্পের পথে engine.cfg তৈরি করা সম্ভব হয়নি।"
#: tools/editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "প্যাকেজ হতে নীম্নোক্ত ফাইলসমূহ এক্সট্রাক্ট করা অসফল হয়েছে:"
#: tools/editor/project_manager.cpp
msgid "Package Installed Successfully!"
-msgstr ""
+msgstr "প্যাকেজ ইন্সটল সফল হয়েছে!"
#: tools/editor/project_manager.cpp
msgid "Import Existing Project"
-msgstr ""
+msgstr "বিদ্যমান প্রকল্প ইম্পোর্ট করুন"
#: tools/editor/project_manager.cpp
msgid "Project Path (Must Exist):"
-msgstr ""
+msgstr "প্রকল্পের পথ (অবশ্যই বিদ্যমান হতে হবে):"
#: tools/editor/project_manager.cpp
msgid "Project Name:"
-msgstr ""
+msgstr "প্রকল্পের নাম:"
#: tools/editor/project_manager.cpp
msgid "Create New Project"
-msgstr ""
+msgstr "নতুন প্রকল্প তৈরি করুন"
#: tools/editor/project_manager.cpp
msgid "Project Path:"
-msgstr ""
+msgstr "প্রকল্পের পথ:"
#: tools/editor/project_manager.cpp
msgid "Install Project:"
-msgstr ""
+msgstr "প্রকল্প ইন্সটল করুন:"
#: tools/editor/project_manager.cpp
msgid "Install"
-msgstr ""
+msgstr "ইন্সটল"
#: tools/editor/project_manager.cpp
msgid "Browse"
-msgstr ""
+msgstr "ব্রাউস"
#: tools/editor/project_manager.cpp
msgid "New Game Project"
-msgstr ""
+msgstr "নতুন গেম প্রকল্প"
#: tools/editor/project_manager.cpp
msgid "That's a BINGO!"
-msgstr ""
+msgstr "দারুণ খবর!"
#: tools/editor/project_manager.cpp
msgid "Unnamed Project"
-msgstr ""
+msgstr "নামহীন প্রকল্প"
#: tools/editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
-msgstr ""
+msgstr "একধিক প্রকল্প খোলায় আপনি সুনিশ্চিত?"
#: tools/editor/project_manager.cpp
msgid "Are you sure to run more than one project?"
-msgstr ""
+msgstr "একধিক প্রকল্প চালানোয় আপনি সুনিশ্চিত?"
#: tools/editor/project_manager.cpp
msgid "Remove project from the list? (Folder contents will not be modified)"
-msgstr ""
+msgstr "তালিকা হতে প্রকল্প অপসারণ করবেন? (ফোল্ডারের বিষয়াদি পরিবর্তন হবে না)"
#: tools/editor/project_manager.cpp
msgid ""
"You are about the scan %s folders for existing Godot projects. Do you "
"confirm?"
msgstr ""
+"বিদ্যমান Godot প্রজেক্টের খোঁজে আপনি %s ফোল্ডারসমূহ স্ক্যান করতে যাচ্ছেন। আপনি কি "
+"সুনিশ্চিত?"
#: tools/editor/project_manager.cpp
msgid "Project Manager"
-msgstr ""
+msgstr "প্রকল্প ম্যানেজার"
#: tools/editor/project_manager.cpp
msgid "Project List"
-msgstr ""
+msgstr "প্রকল্পের তালিকা"
#: tools/editor/project_manager.cpp
msgid "Run"
-msgstr ""
+msgstr "চালান"
#: tools/editor/project_manager.cpp
msgid "Scan"
-msgstr ""
+msgstr "স্ক্যান"
#: tools/editor/project_manager.cpp
msgid "Select a Folder to Scan"
-msgstr ""
+msgstr "স্ক্যান করার জন্য ফোল্ডার নির্বাচন করুন"
#: tools/editor/project_manager.cpp
msgid "New Project"
-msgstr ""
+msgstr "নতুন প্রকল্প"
#: tools/editor/project_manager.cpp
msgid "Exit"
-msgstr ""
+msgstr "প্রস্থান করুন"
#: tools/editor/project_settings.cpp
msgid "Key "
-msgstr ""
+msgstr "কী/চাবি "
#: tools/editor/project_settings.cpp
msgid "Joy Button"
-msgstr ""
+msgstr "জয়স্টিক বোতাম"
#: tools/editor/project_settings.cpp
msgid "Joy Axis"
-msgstr ""
+msgstr "জয়স্টিক অক্ষ"
#: tools/editor/project_settings.cpp
msgid "Mouse Button"
-msgstr ""
+msgstr "মাউসের বোতাম"
#: tools/editor/project_settings.cpp
msgid "Invalid action (anything goes but '/' or ':')."
-msgstr ""
+msgstr "অকার্যকর অ্যাকশন ('/' বা ':' ছাড়া কিছুই যাবে না)।"
#: tools/editor/project_settings.cpp
msgid "Action '%s' already exists!"
-msgstr ""
+msgstr "'%s' অ্যাকশন ইতিমধ্যেই বিদ্যমান!"
#: tools/editor/project_settings.cpp
msgid "Rename Input Action Event"
-msgstr ""
+msgstr "ইনপুট অ্যাকশন ইভেন্ট পুনঃনামকরণ করুন"
#: tools/editor/project_settings.cpp
msgid "Add Input Action Event"
-msgstr ""
+msgstr "ইনপুট অ্যাকশন ইভেন্ট যোগ করুন"
#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
msgid "Control+"
-msgstr ""
+msgstr "কন্ট্রোল+"
#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
msgid "Press a Key.."
-msgstr ""
+msgstr "যেকোনো কী/চাবি চাপুন.."
#: tools/editor/project_settings.cpp
msgid "Mouse Button Index:"
-msgstr ""
+msgstr "মাউসের বোতাম ইন্ডেক্স:"
#: tools/editor/project_settings.cpp
msgid "Left Button"
-msgstr ""
+msgstr "বাম বোতাম"
#: tools/editor/project_settings.cpp
msgid "Right Button"
-msgstr ""
+msgstr "ডান বোতাম"
#: tools/editor/project_settings.cpp
msgid "Middle Button"
-msgstr ""
+msgstr "মধ্য বোতাম"
#: tools/editor/project_settings.cpp
msgid "Wheel Up Button"
-msgstr ""
+msgstr "চাকা উপরে তোলার বোতাম"
#: tools/editor/project_settings.cpp
msgid "Wheel Down Button"
-msgstr ""
+msgstr "চাকা নিচে নামানোর বোতাম"
#: tools/editor/project_settings.cpp
msgid "Button 6"
-msgstr ""
+msgstr "বোতাম ৬"
#: tools/editor/project_settings.cpp
msgid "Button 7"
-msgstr ""
+msgstr "বোতাম ৭"
#: tools/editor/project_settings.cpp
msgid "Button 8"
-msgstr ""
+msgstr "বোতাম ৮"
#: tools/editor/project_settings.cpp
msgid "Button 9"
-msgstr ""
+msgstr "বোতাম ৯"
#: tools/editor/project_settings.cpp
msgid "Joystick Axis Index:"
-msgstr ""
+msgstr "জয়স্টিক অক্ষ ইন্ডেক্স:"
#: tools/editor/project_settings.cpp
msgid "Joystick Button Index:"
-msgstr ""
+msgstr "জয়স্টিক বোতাম ইন্ডেক্স:"
#: tools/editor/project_settings.cpp
msgid "Add Input Action"
-msgstr ""
+msgstr "ইনপুট অ্যাকশন যোগ করুন"
#: tools/editor/project_settings.cpp
msgid "Erase Input Action Event"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
+msgstr "ইনপুট অ্যাকশন ইভেন্ট মুছে ফেলুন"
#: tools/editor/project_settings.cpp
msgid "Error saving settings."
-msgstr ""
+msgstr "সংরক্ষণে সমস্যা হয়েছে।"
#: tools/editor/project_settings.cpp
msgid "Settings saved OK."
-msgstr ""
+msgstr "সেটিংস সংরক্ষণ সফল হয়েছে।"
#: tools/editor/project_settings.cpp
msgid "Add Translation"
-msgstr ""
+msgstr "অনুবাদ সংযোগ করুন"
#: tools/editor/project_settings.cpp
msgid "Remove Translation"
-msgstr ""
+msgstr "অনুবাদ অপসারণ করুন"
#: tools/editor/project_settings.cpp
msgid "Add Remapped Path"
-msgstr ""
+msgstr "পুনঃ-চিত্রাঙ্কিত পথ যোগ করুন"
#: tools/editor/project_settings.cpp
msgid "Resource Remap Add Remap"
-msgstr ""
+msgstr "রিসোর্স পুনঃ-চিত্রাঙ্কিত করে যুক্ত করুন"
#: tools/editor/project_settings.cpp
msgid "Change Resource Remap Language"
-msgstr ""
+msgstr "রিসোর্স পুনঃ-নকশার ভাষা পরিবর্তন করুন"
#: tools/editor/project_settings.cpp
msgid "Remove Resource Remap"
-msgstr ""
+msgstr "রিসোর্সের পুনঃ-নকশা অপসারণ করুন"
#: tools/editor/project_settings.cpp
msgid "Remove Resource Remap Option"
-msgstr ""
+msgstr "রিসোর্সের পুনঃ-নকশার সিদ্ধান্ত অপসারণ করুন"
#: tools/editor/project_settings.cpp
msgid "Project Settings (engine.cfg)"
-msgstr ""
+msgstr "প্রকল্পের সেটিংস (engine.cfg)"
#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
msgid "General"
-msgstr ""
+msgstr "জেনেরাল"
#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "প্রপার্টি:"
#: tools/editor/project_settings.cpp
msgid "Del"
-msgstr ""
+msgstr "ডিলিট/অপসারণ"
#: tools/editor/project_settings.cpp
msgid "Copy To Platform.."
-msgstr ""
+msgstr "প্লাটফর্মে প্রতিলিপি করুন.."
#: tools/editor/project_settings.cpp
msgid "Input Map"
-msgstr ""
+msgstr "ইনপুট ম্যাপ/নকশা"
#: tools/editor/project_settings.cpp
msgid "Action:"
-msgstr ""
+msgstr "অ্যাকশন:"
#: tools/editor/project_settings.cpp
msgid "Device:"
-msgstr ""
+msgstr "ডিভাইস:"
#: tools/editor/project_settings.cpp
msgid "Index:"
-msgstr ""
+msgstr "ইন্ডেক্স:"
#: tools/editor/project_settings.cpp
msgid "Localization"
-msgstr ""
+msgstr "স্থানীয়করণ"
#: tools/editor/project_settings.cpp
msgid "Translations"
-msgstr ""
+msgstr "অনুবাদসমূহ"
#: tools/editor/project_settings.cpp
msgid "Translations:"
-msgstr ""
+msgstr "অনুবাদসমূহ:"
#: tools/editor/project_settings.cpp
msgid "Add.."
-msgstr ""
+msgstr "সংযোগ.."
#: tools/editor/project_settings.cpp
msgid "Remaps"
-msgstr ""
+msgstr "পুনঃনকশাসমূহ"
#: tools/editor/project_settings.cpp
msgid "Resources:"
-msgstr ""
+msgstr "রিসোর্সসমূহ:"
#: tools/editor/project_settings.cpp
msgid "Remaps by Locale:"
-msgstr ""
+msgstr "ঘটনাস্থল দ্বারা পুনঃনকশা:"
#: tools/editor/project_settings.cpp
msgid "Locale"
-msgstr ""
+msgstr "ঘটনাস্থল"
#: tools/editor/project_settings.cpp
msgid "AutoLoad"
-msgstr ""
+msgstr "স্বয়ংক্রিয়-লোড"
#: tools/editor/project_settings.cpp
msgid "Plugins"
-msgstr ""
+msgstr "প্লাগইন-সমূহ"
#: tools/editor/property_editor.cpp
msgid "Preset.."
-msgstr ""
+msgstr "প্রিসেট.."
#: tools/editor/property_editor.cpp
msgid "Ease In"
-msgstr ""
+msgstr "আন্ত-সহজাগমন"
#: tools/editor/property_editor.cpp
msgid "Ease Out"
-msgstr ""
+msgstr "বহিঃ-সহজাগমন"
#: tools/editor/property_editor.cpp
msgid "Zero"
-msgstr ""
+msgstr "শূন্য"
#: tools/editor/property_editor.cpp
msgid "Easing In-Out"
-msgstr ""
+msgstr "আগমন-গমন সহজ/আলগা করন"
#: tools/editor/property_editor.cpp
msgid "Easing Out-In"
-msgstr ""
+msgstr "গমন-আগমন সহজ/আলগা করন"
#: tools/editor/property_editor.cpp
msgid "File.."
-msgstr ""
+msgstr "ফাইল.."
#: tools/editor/property_editor.cpp
msgid "Dir.."
-msgstr ""
+msgstr "পথ.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
-msgstr ""
+msgstr "লোড"
#: tools/editor/property_editor.cpp
msgid "Assign"
-msgstr ""
+msgstr "নিযুক্ত"
#: tools/editor/property_editor.cpp
msgid "New Script"
-msgstr ""
+msgstr "নতুন স্ক্রিপ্ট"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
-msgstr ""
+msgstr "ফাইল লোডে সমস্যা: রিসোর্স নয়!"
#: tools/editor/property_editor.cpp
msgid "Couldn't load image"
-msgstr ""
+msgstr "ছবি লোড অসম্ভব হয়েছে"
#: tools/editor/property_editor.cpp
msgid "Bit %d, val %d."
-msgstr ""
+msgstr "বিট %d, মান %d।"
#: tools/editor/property_editor.cpp
msgid "On"
-msgstr ""
+msgstr "চালু"
#: tools/editor/property_editor.cpp
msgid "Properties:"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
+msgstr "প্রোপার্টি-সমূহ:"
#: tools/editor/property_editor.cpp
msgid "Sections:"
-msgstr ""
+msgstr "অংশাদি:"
#: tools/editor/property_selector.cpp
msgid "Select Property"
@@ -6226,207 +6394,195 @@ msgstr "মেথড/পদ্ধতি বাছাই করুন"
#: tools/editor/pvrtc_compress.cpp
msgid "Could not execute PVRTC tool:"
-msgstr ""
+msgstr "PVRTC সরঞ্জাম এক্সিকিউট করা সম্ভব হচ্ছে না:"
#: tools/editor/pvrtc_compress.cpp
msgid "Can't load back converted image using PVRTC tool:"
-msgstr ""
+msgstr "PVRTC সরঞ্জাম দ্বারা রূপান্তরিত ছবি পুনরায় লোড করা সম্ভব নয়:"
#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
msgid "Reparent Node"
-msgstr ""
+msgstr "নোডের নতুন অভিভাবক দান করুন"
#: tools/editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
-msgstr ""
+msgstr "নতুন অভিভাবকের স্থান (নতুন অভিভাবক নির্বাচন করুন):"
#: tools/editor/reparent_dialog.cpp
msgid "Keep Global Transform"
-msgstr ""
+msgstr "সার্বজনীন রূপান্তর রাখুন"
#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr ""
+msgstr "নতুন অভিভাবক দান করুন"
#: tools/editor/resources_dock.cpp
msgid "Create New Resource"
-msgstr ""
+msgstr "নতুন রিসোর্স তৈরি করুন"
#: tools/editor/resources_dock.cpp
msgid "Open Resource"
-msgstr ""
+msgstr "রিসোর্স খুলুন"
#: tools/editor/resources_dock.cpp
msgid "Save Resource"
-msgstr ""
+msgstr "রিসোর্স সংরক্ষণ করুন"
#: tools/editor/resources_dock.cpp
msgid "Resource Tools"
-msgstr ""
+msgstr "রিসোর্স-এর সরঞ্জামসমূহ"
#: tools/editor/resources_dock.cpp
msgid "Make Local"
-msgstr ""
+msgstr "স্থানীয় করুন"
#: tools/editor/run_settings_dialog.cpp
msgid "Run Mode:"
-msgstr ""
+msgstr "চালানোর মোড:"
#: tools/editor/run_settings_dialog.cpp
msgid "Current Scene"
-msgstr ""
+msgstr "বর্তমান দৃশ্য"
#: tools/editor/run_settings_dialog.cpp
msgid "Main Scene"
-msgstr ""
+msgstr "প্রধান দৃশ্য"
#: tools/editor/run_settings_dialog.cpp
msgid "Main Scene Arguments:"
-msgstr ""
+msgstr "প্রধান দৃশ্যের মান/আর্গুমেন্ট-সমূহ:"
#: tools/editor/run_settings_dialog.cpp
msgid "Scene Run Settings"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
+msgstr "দৃশ্য চালানোর সেটিংস"
#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
-msgstr ""
+msgstr "দৃশ্যসমূহ ইন্সট্যান্স করার মতো কোনো অভিভাবক নেই।"
#: tools/editor/scene_tree_dock.cpp
msgid "Error loading scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
+msgstr "%s হতে দৃশ্য লোড করতে সমস্যা হয়েছে"
#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
-msgstr ""
+msgstr "ঠিক আছে"
#: tools/editor/scene_tree_dock.cpp
msgid ""
"Cannot instance the scene '%s' because the current scene exists within one "
"of its nodes."
msgstr ""
+"বর্তমান দৃশ্যটি '%s' দৃশ্যের একটি নোডের মাঝে অবস্থান করায় দৃশ্যটিকে ইনস্ট্যান্স করা "
+"সম্ভব হচ্ছে না।"
#: tools/editor/scene_tree_dock.cpp
msgid "Instance Scene(s)"
-msgstr ""
+msgstr "দৃশ্য(সমূহ) ইন্সট্যান্স করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
-msgstr ""
+msgstr "শাখার মূলে এটি করা সম্ভব হবে না।"
#: tools/editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
-msgstr ""
+msgstr "অভিভাবকে নোড সরান"
#: tools/editor/scene_tree_dock.cpp
msgid "Move Nodes In Parent"
-msgstr ""
+msgstr "অভিভাবকে নোডসমূহ সরান"
#: tools/editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
-msgstr ""
+msgstr "নোড(সমূহ) প্রতিলিপি করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
-msgstr ""
+msgstr "নোড(সমূহ) অপসারণ করবেন?"
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "দৃশ্য ছাড়া এটি করা সম্ভব হবে না।"
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
-msgstr ""
+msgstr "ইন্সট্যান্স করা দৃশ্যে এটি করা সম্ভব হবে না।"
#: tools/editor/scene_tree_dock.cpp
msgid "Save New Scene As.."
-msgstr ""
+msgstr "নতুন দৃশ্য এইরূপে সংরক্ষণ করুন.."
#: tools/editor/scene_tree_dock.cpp
msgid "Makes Sense!"
-msgstr ""
+msgstr "অর্থপূর্ন!"
#: tools/editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
-msgstr ""
+msgstr "বাহিরের দৃশ্যের নোডে এটি করা সম্ভব হবে না!"
#: tools/editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr ""
+msgstr "বর্তমান দৃশ্য যার হতে উৎপত্তি হয় তার নোডে এটি করা সম্ভব হবে না!"
#: tools/editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
+msgstr "নোড(সমূহ) অপসারণ করুন"
#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
msgstr ""
+"নতুন দৃশ্যটি সংরক্ষণ করা সম্ভব হচ্ছে না। সম্ভবত যেসবের (ইন্সট্যান্স) উপর নির্ভর করছে "
+"তাদের সন্তুষ্ট করা সম্ভব হচ্ছে না।"
#: tools/editor/scene_tree_dock.cpp
msgid "Error saving scene."
-msgstr ""
+msgstr "দৃশ্য সংরক্ষণে সমস্যা হয়েছে।"
#: tools/editor/scene_tree_dock.cpp
msgid "Error duplicating scene to save it."
-msgstr ""
+msgstr "দৃশ্য প্রতিলিপি করে সংরক্ষণে সমস্যা হয়েছে।"
#: tools/editor/scene_tree_dock.cpp
msgid "Edit Groups"
-msgstr ""
+msgstr "গ্রুপসমূহ সম্পাদন করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Edit Connections"
-msgstr ""
+msgstr "সংযোগসমূহ সম্পাদন করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
-msgstr ""
+msgstr "নোড(সমূহ) অপসারণ করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr ""
+msgstr "শীষ্য নোড তৈরি করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Instance Child Scene"
-msgstr ""
+msgstr "শীষ্য নোড ইন্সট্যান্স করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Change Type"
-msgstr ""
+msgstr "ধরণ পরিবর্তন করুন"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+msgid "Attach Script"
+msgstr "স্ক্রিপ্ট সংযুক্ত করুন"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr "স্ক্রিপ্ট পরিস্কার করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
-msgstr ""
+msgstr "দৃশ্য হতে একত্রিত করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Save Branch as Scene"
-msgstr ""
+msgstr "প্রশাখাকে দৃশ্য হিসেবে সংরক্ষণ করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Delete (No Confirm)"
@@ -6434,279 +6590,283 @@ msgstr "অপসারণ করুন (নিশ্চয়তাকরণ ন
#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
-msgstr ""
+msgstr "অপসারণ করুন (নিশ্চয়তাকরণ নেই)"
#: tools/editor/scene_tree_dock.cpp
msgid ""
"Instance a scene file as a Node. Creates an inherited scene if no root node "
"exists."
msgstr ""
+"একটি দৃশ্য ফাইলকে নোড হিসেবে ইন্সট্যান্স করুন। যদি কোনো মূল নোড না থাকে একটি "
+"উত্তরাধিকারী দৃশ্য তৈরি করে।"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
-msgstr ""
+msgid "Attach a new or existing script for the selected node."
+msgstr "একটি নতুন বা বিদ্যমান স্ক্রিপ্ট নির্বাচিত নোডে সংযুক্ত করুন।"
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr "নির্বাচিত নোড হতে একটি স্ক্রিপ্ট পরিস্কার করুন।"
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
-msgstr ""
+msgstr "Spatial দৃশ্যমানতা টগল করুন"
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle CanvasItem Visible"
-msgstr ""
+msgstr "CanvasItem দৃশ্যমানতা টগল করুন"
#: tools/editor/scene_tree_editor.cpp
msgid "Instance:"
-msgstr ""
+msgstr "ইন্সট্যান্স:"
#: tools/editor/scene_tree_editor.cpp
msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
+msgstr "অগ্রহণযোগ্য নোডের নাম, নীম্নোক্ত অক্ষরসমূহ গ্রহণযোগ্য নয়:"
#: tools/editor/scene_tree_editor.cpp
msgid "Rename Node"
-msgstr ""
+msgstr "নোড পুনঃনামকরণ করুন"
#: tools/editor/scene_tree_editor.cpp
msgid "Scene Tree (Nodes):"
-msgstr ""
+msgstr "দৃশ্যের শাখা (নোডসমূহ):"
#: tools/editor/scene_tree_editor.cpp
msgid "Editable Children"
-msgstr ""
+msgstr "সম্পাদনযোগ্য অংশীদারীসমূহ"
#: tools/editor/scene_tree_editor.cpp
msgid "Load As Placeholder"
-msgstr ""
+msgstr "প্লেসহোল্ডার হিসেবে লোড করুন"
#: tools/editor/scene_tree_editor.cpp
msgid "Discard Instancing"
-msgstr ""
+msgstr "ইন্সট্যান্স করা বাতিল করুন"
#: tools/editor/scene_tree_editor.cpp
msgid "Open in Editor"
-msgstr ""
+msgstr "এডিটরে খুলুন"
#: tools/editor/scene_tree_editor.cpp
msgid "Clear Inheritance"
-msgstr ""
+msgstr "উত্তরাধিকারত্ব পরিস্কার করুন"
#: tools/editor/scene_tree_editor.cpp
msgid "Clear Inheritance? (No Undo!)"
-msgstr ""
+msgstr "উত্তরাধিকারত্ব পরিস্কার করবেন? (ফেরৎ পাবেন না!)"
#: tools/editor/scene_tree_editor.cpp
msgid "Clear!"
-msgstr ""
+msgstr "পরিস্কার করুন!"
#: tools/editor/scene_tree_editor.cpp
msgid "Select a Node"
-msgstr ""
+msgstr "একটি নোড নির্বাচন করুন"
#: tools/editor/script_create_dialog.cpp
msgid "Invalid parent class name"
-msgstr ""
+msgstr "অভিভাবকের অগ্রহণযোগ্য ক্লাস নাম"
#: tools/editor/script_create_dialog.cpp
msgid "Valid chars:"
-msgstr ""
+msgstr "গ্রহণযোগ্য অক্ষরসমূহ:"
#: tools/editor/script_create_dialog.cpp
msgid "Invalid class name"
-msgstr ""
+msgstr "অগ্রহণযোগ্য ক্লাস নাম"
#: tools/editor/script_create_dialog.cpp
msgid "Valid name"
-msgstr ""
+msgstr "গ্রহণযোগ্য নাম"
#: tools/editor/script_create_dialog.cpp
msgid "N/A"
-msgstr ""
+msgstr "না/আ"
#: tools/editor/script_create_dialog.cpp
msgid "Class name is invalid!"
-msgstr ""
+msgstr "ক্লাস নাম অগ্রহণযোগ্য!"
#: tools/editor/script_create_dialog.cpp
msgid "Parent class name is invalid!"
-msgstr ""
+msgstr "অভিভাবকের ক্লাস নাম অগ্রহণযোগ্য!"
#: tools/editor/script_create_dialog.cpp
msgid "Invalid path!"
-msgstr ""
+msgstr "অগ্রহণযোগ্য পথ!"
#: tools/editor/script_create_dialog.cpp
msgid "Could not create script in filesystem."
-msgstr ""
+msgstr "ফাইলসিস্টেমে স্ক্রিপ্ট তৈরি করা সম্ভব হয়নি।"
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr "%s হতে স্ক্রিপ্ট তুলতে/লোডে সমস্যা হয়েছে"
#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
-msgstr ""
+msgstr "পথটি খালি"
#: tools/editor/script_create_dialog.cpp
msgid "Path is not local"
-msgstr ""
+msgstr "পথটি স্থানীয় নয়"
#: tools/editor/script_create_dialog.cpp
msgid "Invalid base path"
-msgstr ""
+msgstr "বেস পথ অগ্রহণযোগ্য"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr ""
+msgid "Invalid extension"
+msgstr "অগ্রহণযোগ্য এক্সটেনশন"
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+msgid "Create new script"
+msgstr "নতুন স্ক্রিপ্ট তৈরি করুন"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr ""
+msgid "Load existing script"
+msgstr "বিদ্যমান স্ক্রিপ্ট লোড করুন"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
-msgstr ""
+msgstr "ক্লাস নাম:"
#: tools/editor/script_create_dialog.cpp
msgid "Built-In Script"
-msgstr ""
+msgstr "পূর্বনির্মিত স্ক্রিপ্ট"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+msgid "Attach Node Script"
+msgstr "নোড স্ক্রিপ্ট সংযুক্ত করুন"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
-msgstr ""
+msgstr "বাইটস:"
#: tools/editor/script_editor_debugger.cpp
msgid "Warning"
-msgstr ""
+msgstr "সতর্কতা"
#: tools/editor/script_editor_debugger.cpp
msgid "Error:"
-msgstr ""
+msgstr "সমস্যা:"
#: tools/editor/script_editor_debugger.cpp
msgid "Source:"
-msgstr ""
+msgstr "উৎস:"
#: tools/editor/script_editor_debugger.cpp
msgid "Function:"
-msgstr ""
+msgstr "ফাংশন:"
#: tools/editor/script_editor_debugger.cpp
msgid "Errors"
-msgstr ""
+msgstr "সমস্যাসমূহ"
#: tools/editor/script_editor_debugger.cpp
msgid "Child Process Connected"
-msgstr ""
+msgstr "চাইল্ড প্রসেস সংযুক্ত হয়েছে"
#: tools/editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
-msgstr ""
+msgstr "পূর্ববর্তী ইন্সট্যান্স পরীক্ষা করুন"
#: tools/editor/script_editor_debugger.cpp
msgid "Inspect Next Instance"
-msgstr ""
+msgstr "পরবর্তী ইন্সট্যান্স পরীক্ষা করুন"
#: tools/editor/script_editor_debugger.cpp
msgid "Stack Frames"
-msgstr ""
+msgstr "ফ্রেমসমূহ স্তূপ করুন"
#: tools/editor/script_editor_debugger.cpp
msgid "Variable"
-msgstr ""
+msgstr "চলক/ভেরিয়েবল"
#: tools/editor/script_editor_debugger.cpp
msgid "Errors:"
-msgstr ""
+msgstr "সমস্যাসমূহ:"
#: tools/editor/script_editor_debugger.cpp
msgid "Stack Trace (if applicable):"
-msgstr ""
+msgstr "পদাঙ্ক স্তূপ করুন (প্রযোজ্য হলে):"
#: tools/editor/script_editor_debugger.cpp
msgid "Remote Inspector"
-msgstr ""
+msgstr "রিমোট পরীক্ষক"
#: tools/editor/script_editor_debugger.cpp
msgid "Live Scene Tree:"
-msgstr ""
+msgstr "দৃশ্যের সক্রিয় শাখা:"
#: tools/editor/script_editor_debugger.cpp
msgid "Remote Object Properties: "
-msgstr ""
+msgstr "রিমোট বস্তুর প্রোপার্টিস: "
#: tools/editor/script_editor_debugger.cpp
msgid "Profiler"
-msgstr ""
+msgstr "প্রোফাইলার"
#: tools/editor/script_editor_debugger.cpp
msgid "Monitor"
-msgstr ""
+msgstr "মনিটর"
#: tools/editor/script_editor_debugger.cpp
msgid "Value"
-msgstr ""
+msgstr "মান"
#: tools/editor/script_editor_debugger.cpp
msgid "Monitors"
-msgstr ""
+msgstr "মনিটরস"
#: tools/editor/script_editor_debugger.cpp
msgid "List of Video Memory Usage by Resource:"
-msgstr ""
+msgstr "রিসোর্স অনুসারে ভিডিও মেমোরির ব্যবহারের তালিকা করুন:"
#: tools/editor/script_editor_debugger.cpp
msgid "Total:"
-msgstr ""
+msgstr "সর্বমোট:"
#: tools/editor/script_editor_debugger.cpp
msgid "Video Mem"
-msgstr ""
+msgstr "ভিডিও মেমোরি"
#: tools/editor/script_editor_debugger.cpp
msgid "Resource Path"
-msgstr ""
+msgstr "রিসোর্স-এর পথ"
#: tools/editor/script_editor_debugger.cpp
msgid "Type"
-msgstr ""
+msgstr "ধরণ"
#: tools/editor/script_editor_debugger.cpp
msgid "Usage"
-msgstr ""
+msgstr "ব্যবহার"
#: tools/editor/script_editor_debugger.cpp
msgid "Misc"
-msgstr ""
+msgstr "বিবিধ"
#: tools/editor/script_editor_debugger.cpp
msgid "Clicked Control:"
-msgstr ""
+msgstr "ক্লিক-কৃত কন্ট্রোল:"
#: tools/editor/script_editor_debugger.cpp
msgid "Clicked Control Type:"
-msgstr ""
+msgstr "ক্লিক-কৃত কন্ট্রোলের ধরণ:"
#: tools/editor/script_editor_debugger.cpp
msgid "Live Edit Root:"
-msgstr ""
+msgstr "সক্রিয়ভাবে মূল সম্পাদন করুন:"
#: tools/editor/script_editor_debugger.cpp
msgid "Set From Tree"
-msgstr ""
+msgstr "শাখা হতে স্থাপন করুন"
#: tools/editor/settings_config_dialog.cpp
msgid "Shortcuts"
-msgstr ""
+msgstr "শর্টকাটসমূহ"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
@@ -6743,3 +6903,33 @@ msgstr "Ray Shape এর দৈর্ঘ্য পরিবর্তন কর
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr "Notifier এর সীমা পরিবর্তন করুন"
+
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Notifier এর সীমা পরিবর্তন করুন"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance কোনো BakedLight রিসোর্স ধারণ করে না।"
+
+#~ msgid "Vertex"
+#~ msgstr "ভারটেক্স"
+
+#~ msgid "Fragment"
+#~ msgstr "ফ্রাগমেন্ট"
+
+#~ msgid "Lighting"
+#~ msgstr "লাইটিং"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "স্থায়ীয়তা টগল করুন"
+
+#~ msgid "Global"
+#~ msgstr "সার্বজনীন"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "এর ধারক/বাহক অদৃশ্য হওয়ায় এই বস্তুটি দৃশ্যমান করা সম্ভব নয়। প্রথমে ধারক/বাহককে "
+#~ "দৃশ্যমান করুন।"
diff --git a/tools/translations/ca.po b/tools/translations/ca.po
index 9922663465..266551ee60 100644
--- a/tools/translations/ca.po
+++ b/tools/translations/ca.po
@@ -1,5 +1,5 @@
# Catalan translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Roger BR <drai_kin@hotmail.com>, 2016.
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-09-11 09:26+0000\n"
+"PO-Revision-Date: 2016-10-11 08:26+0000\n"
"Last-Translator: Roger BR <drai_kin@hotmail.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/"
"godot/ca/>\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.8\n"
+"X-Generator: Weblate 2.9-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -34,12 +34,6 @@ msgid "step argument is zero!"
msgstr "L'argument pas (step) és zero!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "Script sense instància"
@@ -231,19 +225,19 @@ msgstr "Transició"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Seqüència"
#: modules/visual_script/visual_script_editor.cpp
msgid "Switch"
-msgstr ""
+msgstr "commutador"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Iterador"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Mentre"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -256,12 +250,12 @@ msgstr "Crida"
#: modules/visual_script/visual_script_editor.cpp
msgid "Get"
-msgstr ""
+msgstr "Obtenir"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
msgid "Set"
-msgstr ""
+msgstr "Especifica"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -399,85 +393,91 @@ msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "premut"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "alliberat"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"No s'ha pogut llegir el certificat. Comproveu que tant el camí com la "
+"contrasenya són correctes"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr ""
+msgstr "No s'ha pogut l'objecte signatura."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "No s'ha pogut crear el paquet signatura."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"No s'ha trobat cap plantilla.\n"
+"Descarregueu i instal·leu alguna plantilla d'exportació."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "No s'ha trobat cap paquet de depuració personalitzat."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "No s'ha trobat cap paquet de llançament personalitzat."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "Nom no vàlid."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "La mida de la lletra no és vàlida."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr ""
+msgstr "GUID d'editor no vàlid."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid background color."
msgstr "Lletra personalitzada no vàlida."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "Imatge Store Logo no vàlida. La mida hauria de ser 50x50 ."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "Imatge Logo quadrat 44x44 no vàlida. La mida hauria de ser 44x44."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "Imatge Logo quadrat 71x71 no vàlida. La mida hauria de ser 71x71 ."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "Imatge logo quadrat 150x150 no vàlida. La mida hauria de ser 150x150 ."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "Imatge logo quadrat 310x310 no vàlida. La mida hauria de ser 310x310."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "Imatge logo quadrat 310x150 no vàlida. La mida hauria de ser 310x150."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
+"Imatge de la pantalla de presentació no vàlida. La mida hauria de ser "
+"620x300."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -485,7 +485,7 @@ msgid ""
"order for AnimatedSprite to display frames."
msgstr ""
"Un recurs del tipus SpriteFrames s'ha de crear or especificar en la "
-"propietat \"Quadres (Frames)\" perquè AnimatedSprite pugui mostrar els "
+"propietat \"Fotogrames (Frames)\" perquè AnimatedSprite pugui mostrar els "
"quadres."
#: scene/2d/canvas_modulate.cpp
@@ -494,7 +494,7 @@ msgid ""
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
"Només es permet un sol CanvasModulate per escena (o conjunt d'escenes "
-"instanciades). El primer funcionara, mentre que la resta seran ignorats."
+"instanciades). El primer funcionarà, mentre que la resta seran ignorats."
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -619,10 +619,6 @@ msgstr ""
"VisibilityEnable2D funciona millor quan l'arrel de l'escena editada "
"s'utilitza com a pare."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance no conté cap recurs BakedLight."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -702,7 +698,8 @@ msgstr ""
msgid "Cancel"
msgstr "Cancel·la"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "D'acord"
@@ -1864,6 +1861,11 @@ msgid "Constants:"
msgstr "Constants:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Descripció breu:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Descripció del mètode:"
@@ -1931,7 +1933,9 @@ msgstr "Error en desar recurs!"
msgid "Save Resource As.."
msgstr "Desar Recurs com..."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Vaja..."
@@ -2172,7 +2176,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Tria una Escena Principal"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "Uf..."
@@ -2879,6 +2885,7 @@ msgstr "Textures Font:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Camí de Destinació:"
@@ -3113,6 +3120,11 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#, fuzzy
+msgid "Root Node Name:"
+msgstr "Nom del node:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "Manquen els següents Fitxers:"
@@ -4013,6 +4025,50 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Canvia Tipus de la Matriu"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4878,18 +4934,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5652,6 +5696,69 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Crea una Carpeta"
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Transició"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "Estat:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Contrasenya:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Caràcters vàlids:"
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -6111,10 +6218,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "No s'ha pogut desar la configuració."
@@ -6258,7 +6361,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6292,10 +6395,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6374,14 +6473,6 @@ msgid "Scene Run Settings"
msgstr "Configuració d'Execució d'Escenes"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6390,10 +6481,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6432,10 +6519,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6460,10 +6543,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6502,8 +6581,14 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Script"
+msgstr "Executa Script"
+
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Executa Script"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6528,13 +6613,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6630,6 +6713,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Error carregant lletra."
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6642,16 +6730,18 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "Crea Subscripció"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr ""
+#, fuzzy
+msgid "Load existing script"
+msgstr "No s'ha pogut instanciar l'script:"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6662,8 +6752,9 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Node Script"
+msgstr "Executa Script"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6829,6 +6920,20 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance no conté cap recurs BakedLight."
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "No es pot començar un camí per '/'. Els camins absoluts han de començar "
+#~ "per 'res://', 'user://' o 'local://'"
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/cs.po b/tools/translations/cs.po
index 0975e3c550..4020725d74 100644
--- a/tools/translations/cs.po
+++ b/tools/translations/cs.po
@@ -1,5 +1,5 @@
# Czech translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Jan 'spl!te' Kondelík <j.kondelik@centrum.cz>, 2016.
@@ -33,12 +33,6 @@ msgid "step argument is zero!"
msgstr ""
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "Skript nemá instanci"
@@ -395,76 +389,76 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "Neplatný název."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "Neplatná velikost fontu."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -595,10 +589,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance neobsahuje zdroj BakedLight."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -679,7 +669,8 @@ msgstr ""
msgid "Cancel"
msgstr "Zrušit"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "OK"
@@ -1837,6 +1828,11 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Vytvořit odběr"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1904,7 +1900,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2129,7 +2127,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2809,6 +2809,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -3036,6 +3037,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3936,6 +3941,50 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Změnit typ hodnot pole"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4801,18 +4850,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5575,6 +5612,67 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Vytvořit složku"
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Přechod"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Platné znaky:"
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -6034,10 +6132,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6181,7 +6275,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6214,10 +6308,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6296,14 +6386,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6312,10 +6394,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6354,10 +6432,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6382,10 +6456,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6424,10 +6494,15 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Vytvořit odběr"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr ""
@@ -6451,13 +6526,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6553,6 +6626,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Chyba nahrávání fontu."
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6565,15 +6643,16 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "Vytvořit odběr"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6585,7 +6664,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6751,3 +6830,10 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance neobsahuje zdroj BakedLight."
diff --git a/tools/translations/da.po b/tools/translations/da.po
index 3294ca2105..e0d4d9bd98 100644
--- a/tools/translations/da.po
+++ b/tools/translations/da.po
@@ -1,5 +1,5 @@
# Danish translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# David Lamhauge <davidlamhauge@gmail.com>, 2016.
@@ -32,12 +32,6 @@ msgid "step argument is zero!"
msgstr "trin argument er nul!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "Ikke et script med en instans"
@@ -396,76 +390,76 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "Ugyldigt index egenskabsnavn."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "Ugyldig skriftstørrelse."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -603,10 +597,6 @@ msgstr ""
"VisibilityEnable2D fungerer bedst, når det bruges med den redigerede "
"scenerod direkte som parent."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance indeholder ikke en BakedLight ressource."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -685,7 +675,8 @@ msgstr ""
msgid "Cancel"
msgstr "Annuller"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "Ok"
@@ -1839,6 +1830,11 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Opret abonnement"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1906,7 +1902,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2131,7 +2129,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2811,6 +2811,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -3038,6 +3039,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3937,6 +3942,50 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Skift Array værditype"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4802,18 +4851,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5576,6 +5613,66 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Opret mappe"
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Overgang"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -6035,10 +6132,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6182,7 +6275,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6215,10 +6308,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6297,14 +6386,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6313,10 +6394,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6355,10 +6432,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6383,10 +6456,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6425,10 +6494,15 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Opret abonnement"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr ""
@@ -6451,13 +6525,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6553,6 +6625,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Error loading skrifttype."
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6565,15 +6642,16 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "Opret abonnement"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6585,7 +6663,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6752,6 +6830,13 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance indeholder ikke en BakedLight ressource."
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/de.po b/tools/translations/de.po
index 12351973d5..68ce048b5b 100644
--- a/tools/translations/de.po
+++ b/tools/translations/de.po
@@ -1,5 +1,5 @@
# German translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Alexander Mahr <alex.mahr@gmail.com>, 2016.
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-09-30 03:13+0000\n"
+"PO-Revision-Date: 2016-12-10 04:27+0000\n"
"Last-Translator: So Wieso <sowieso@dukun.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
@@ -31,7 +31,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.9-dev\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -50,12 +50,6 @@ msgid "step argument is zero!"
msgstr "Schrittargument ist null!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "Skript hat keine Instanz"
@@ -188,9 +182,8 @@ msgid "Editing Signal:"
msgstr "bearbeite Signal:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Expression"
-msgstr "Typ ändern"
+msgstr "Ausdruck ändern"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
@@ -241,40 +234,36 @@ msgid "Add Setter Property"
msgstr "Setter-Eigenschaft hinzufügen"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "Animation kopieren"
+msgstr "Bedingung"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Sequenz"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Switch"
-msgstr "Tonhöhe"
+msgstr "Schalter"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Iterator"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Während"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Return"
-msgstr "Rückgabe:"
+msgstr "Rückgabe"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
msgstr "Aufruf"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Get"
-msgstr "Setzen"
+msgstr "Abfragen"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
@@ -417,87 +406,87 @@ msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "gerade gedrückt"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "gerade losgelassen"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"Zertifikat-Datei konnte nicht gelesen werden. Sind Pfad und Passwort beide "
+"korrekt?"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr "Fehler beim Schreiben des Projekt-PCK!"
+msgstr "Fehler beim erstellen des Signaturobjekts."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Fehler beim erstellen der Paketsignatur."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"Keine Exportvorlagen gefunden.\n"
+"Laden Sie Exportvorlagen ggf. von der offiziellen Webseite herunter und "
+"installieren Sie diese."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "Selbst konfiguriertes Debug-Paket nicht gefunden."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "Selbst konfiguriertes Release-Paket nicht gefunden."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "Ungültiger Name."
+msgstr "Ungültiger einzigartiger Name."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "Ungültige Schriftgröße."
+msgstr "Ungültige Produkt-GUID."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "Ungültiger Pfad"
+msgstr "Ungültige Verleger-GUID."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr "Eigene Schriftart-Quelle ist ungültig."
+msgstr "Ungültige Hintergrundfarbe."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "Ungültige Abmessungen des Store-Logos (sollte 50x50 sein)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "Ungültige Abmessungen für 44x44-Quadratlogo (sollte 44x44 sein)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "Ungültige Abmessungen für 71x71-Quadratlogo (sollte 71x71 sein)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "Ungültige Abmessungen für 150x150-Quadratlogo (sollte 150x150 sein)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "Ungültige Abmessungen für 310x310-Quadratlogo (sollte 310x310 sein)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "Ungültige Abmessungen für 310x150-Breitlogo (sollte 310x150 sein)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "Ungültige Abmessungen für Startbildschirm (sollte 620x300 sein)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -643,10 +632,6 @@ msgstr ""
"VisibilityEnable2D funktioniert am besten, wenn es ein Unterobjekt erster "
"Ordnung der bearbeiteten Szene ist."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance enthält keine BakedLight-Ressource."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -694,9 +679,8 @@ msgstr ""
"eines Navigation-Nodes sein. Es liefert nur Navigationsdaten."
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid "Path property must point to a valid Spatial node to work."
-msgstr "Die Pfad-Eigenschaft muss auf ein gültiges Particles2D-Node verweisen."
+msgstr "Die Pfad-Eigenschaft muss auf ein gültiges Spatial-Node verweisen."
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -725,7 +709,8 @@ msgstr ""
msgid "Cancel"
msgstr "Abbrechen"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "OK"
@@ -1473,6 +1458,8 @@ msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"Zielmethode nicht gefunden! Bitte gültige Methode angeben oder Skript an "
+"Zielnode anhängen."
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
@@ -1891,6 +1878,11 @@ msgid "Constants:"
msgstr "Konstanten:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Kurze Beschreibung:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Methoden Beschreibung:"
@@ -1958,7 +1950,9 @@ msgstr "Fehler beim speichern der Ressource!"
msgid "Save Resource As.."
msgstr "Speichere Ressource als.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Verstehe..."
@@ -2199,7 +2193,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Wähle eine Hauptszene"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "Ähm"
@@ -2521,9 +2517,8 @@ msgid "Editor Layout"
msgstr "Editorlayout"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Toggle Fullscreen"
-msgstr "Vollbildmodus"
+msgstr "Vollbildmodus umschalten"
#: tools/editor/editor_node.cpp
msgid "Install Export Templates"
@@ -2551,7 +2546,7 @@ msgstr "Änderungen aktualisieren"
#: tools/editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Update-Anzeigerad deaktivieren"
#: tools/editor/editor_node.cpp
msgid "Inspector"
@@ -2905,6 +2900,7 @@ msgstr "Quelltextur(en):"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Zielpfad:"
@@ -3136,6 +3132,10 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr "Name des Root-Node:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "Die folgenden Dateien fehlen:"
@@ -3980,9 +3980,8 @@ msgid "Clear Bones"
msgstr "Knochen entfernen"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Bones"
-msgstr "Knochen erstellen"
+msgstr "Knochen anzeigen"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -4045,6 +4044,52 @@ msgstr "Einen Wert setzen"
msgid "Snap (Pixels):"
msgstr "Einrasten (Pixel):"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr "%s hinzufügen"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr "%s hinzufügen…"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Erzeuge Node"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "Fehler beim Instanziieren von %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Verstehe"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Kein Node unter dem Unterobjekt instantiiert werden könnte vorhanden."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "Diese Aktion benötigt ein einzelnes ausgewähltes Node."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr "Standardtyp ändern"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+"Ziehen + Umschalt: Node in gleicher Hierarchie einfügen\n"
+"Ziehen + Alt: Nodetyp ändern"
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4724,9 +4769,8 @@ msgid "Close Docs"
msgstr "Dokumentation schließen"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "Schließen"
+msgstr "Alle schließen"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
@@ -4841,9 +4885,8 @@ msgstr ""
"Szene geladen ist"
#: tools/editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Pick Color"
-msgstr "Farbe"
+msgstr "Farbe auswählen"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
@@ -4916,18 +4959,6 @@ msgstr "Springe zu Zeile.."
msgid "Contextual Help"
msgstr "Kontexthilfe"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "Vertex"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "Fragment"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "Belichtung"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr "Ändere skalare Konstante"
@@ -5221,9 +5252,8 @@ msgid "Insert Animation Key"
msgstr "Animations-Schlüsselbild einfügen"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Focus Origin"
-msgstr "Zeige Ursprung"
+msgstr "Auf Ursprung zentrieren"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
@@ -5491,9 +5521,8 @@ msgid "Remove Item"
msgstr "Entferne Element"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme"
-msgstr "Motiv speichern"
+msgstr "Motiv"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5692,6 +5721,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "Kein Exporter für Plattform ‚%s‘ verfügbar."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Erstelle neue Ressource"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Gültiger Name"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Übergang"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "Status:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Passwort:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Gültige Zeichen:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Neuer Name:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "Einbeziehen"
@@ -6158,10 +6252,6 @@ msgid "Erase Input Action Event"
msgstr "Lösche Eingabeaktionsereignis"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr "Persistente an- und ausschalten"
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "Fehler beim Speichern der Einstellungen."
@@ -6305,7 +6395,7 @@ msgstr "Datei.."
msgid "Dir.."
msgstr "Verzeichnis.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "Lade"
@@ -6314,9 +6404,8 @@ msgid "Assign"
msgstr "Zuweisen"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "Nächstes Skript"
+msgstr "Neues Skript"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
@@ -6339,10 +6428,6 @@ msgid "Properties:"
msgstr "Eigenschaften:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Global"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Abschnitte:"
@@ -6420,14 +6505,6 @@ msgid "Scene Run Settings"
msgstr "Szenenausführungseinstellungen"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Verstehe"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Kein Node unter dem Unterobjekt instantiiert werden könnte vorhanden."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
"Kein Eltern-Node unter dem Szenen instantiiert werden könnten vorhanden."
@@ -6437,10 +6514,6 @@ msgid "Error loading scene from %s"
msgstr "Fehler beim Laden der Szene von %s"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Fehler beim Instanziieren von %s"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Ok"
@@ -6482,10 +6555,6 @@ msgid "This operation can't be done without a scene."
msgstr "Diese Aktion kann nicht ohne eine Szene ausgeführt werden."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "Diese Aktion benötigt ein einzelnes ausgewähltes Node."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "Diese Aktion kann nicht auf instantiierten Szenen ausgeführt werden."
@@ -6510,10 +6579,6 @@ msgid "Remove Node(s)"
msgstr "Entferne Node(s)"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Erzeuge Node"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6554,10 +6619,14 @@ msgid "Change Type"
msgstr "Typ ändern"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
msgstr "Skript hinzufügen"
#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr "Skript leeren"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr "Aus Szene zusammenführen"
@@ -6582,16 +6651,12 @@ msgstr ""
"keine Root-Node existiert."
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
-msgstr "Erzeuge ein neues Skript für das ausgewählte Node."
+msgid "Attach a new or existing script for the selected node."
+msgstr "Ein neues oder existierendes Skript zum ausgewählten Node hinzufügen."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"Diese Element kann nicht sichtbar gemacht werden solange das Elternelement "
-"versteckt ist. Elternelement zuerst sichtbar machen."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr "Leere ein Skript für das ausgewählte Node."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6687,6 +6752,10 @@ msgid "Could not create script in filesystem."
msgstr "Skript konnte nicht im Dateisystem erstellt werden."
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr "Fehler beim Laden des Skripts von %s"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "Pfad ist leer"
@@ -6699,16 +6768,16 @@ msgid "Invalid base path"
msgstr "Ungültiger Pfad"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "Datei existiert"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "Ungültige Erweiterung"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Gültiger Pfad"
+msgid "Create new script"
+msgstr "Neues Skript erstellen"
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Load existing script"
+msgstr "Lade bestehendes Skript"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6719,8 +6788,8 @@ msgid "Built-In Script"
msgstr "Built-In-Skript"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr "Erstelle Node-Skript"
+msgid "Attach Node Script"
+msgstr "Node-Skript hinzufügen"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6886,6 +6955,42 @@ msgstr "Ändere Länge der Strahlenform"
msgid "Change Notifier Extents"
msgstr "Ändere Ausmaße des Benachrichtigers"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Ändere Ausmaße des Benachrichtigers"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance enthält keine BakedLight-Ressource."
+
+#~ msgid "Vertex"
+#~ msgstr "Vertex"
+
+#~ msgid "Fragment"
+#~ msgstr "Fragment"
+
+#~ msgid "Lighting"
+#~ msgstr "Belichtung"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "Persistente an- und ausschalten"
+
+#~ msgid "Global"
+#~ msgstr "Global"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Diese Element kann nicht sichtbar gemacht werden solange das "
+#~ "Elternelement versteckt ist. Elternelement zuerst sichtbar machen."
+
+#~ msgid "File exists"
+#~ msgstr "Datei existiert"
+
+#~ msgid "Valid path"
+#~ msgstr "Gültiger Pfad"
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/de_CH.po b/tools/translations/de_CH.po
index 6c5e6b65c3..e6e0efdb23 100644
--- a/tools/translations/de_CH.po
+++ b/tools/translations/de_CH.po
@@ -1,5 +1,5 @@
# Swiss High German translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Christian Fisch <christian.fiesel@gmail.com>, 2016.
@@ -32,12 +32,6 @@ msgid "step argument is zero!"
msgstr ""
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr ""
@@ -393,75 +387,75 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Error creating the signature object."
msgstr "Fehler beim Schreiben des Projekts PCK!"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -592,10 +586,6 @@ msgstr ""
"VisibilityEnable2D funktioniert am besten, wenn es ein Unterobjekt erster "
"Ordnung der bearbeiteten Hauptszene ist."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -659,7 +649,8 @@ msgstr ""
msgid "Cancel"
msgstr "Abbrechen"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "Okay"
@@ -1804,6 +1795,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1871,7 +1866,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2096,7 +2093,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2781,6 +2780,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -3008,6 +3008,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3919,6 +3923,50 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Node erstellen"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "Fehler beim Instanzieren der %s Szene"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Okay :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "Bitte nur ein Node selektieren."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Typ ändern"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4785,18 +4833,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5560,6 +5596,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -6020,10 +6114,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6167,7 +6257,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6201,10 +6291,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6281,14 +6367,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Okay :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6297,10 +6375,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Fehler beim Instanzieren der %s Szene"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Okay"
@@ -6340,10 +6414,6 @@ msgid "This operation can't be done without a scene."
msgstr "Ohne eine Szene kann das nicht funktionieren."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "Bitte nur ein Node selektieren."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "Das funktioniert nicht bei einer instanzierten Szene."
@@ -6368,10 +6438,6 @@ msgid "Remove Node(s)"
msgstr "Node(s) entfernen"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Node erstellen"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6410,7 +6476,13 @@ msgid "Change Type"
msgstr "Typ ändern"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+#, fuzzy
+msgid "Attach Script"
+msgstr "Script hinzufügen"
+
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
msgstr "Script hinzufügen"
#: tools/editor/scene_tree_dock.cpp
@@ -6437,13 +6509,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6539,6 +6609,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Fehler beim Instanzieren der %s Szene"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6551,15 +6626,16 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "Neues Projekt erstellen"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6571,8 +6647,9 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Node Script"
+msgstr "Script hinzufügen"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6738,5 +6815,9 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
#~ msgid "Insert Keys (Ins)"
#~ msgstr "Bilder (innerhalb) einfügen"
diff --git a/tools/translations/es.po b/tools/translations/es.po
index c02a679529..cec4730148 100644
--- a/tools/translations/es.po
+++ b/tools/translations/es.po
@@ -1,5 +1,5 @@
# Spanish translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Carlos López <genetita@gmail.com>, 2016.
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-09-01 19:29+0000\n"
+"PO-Revision-Date: 2016-11-22 16:41+0000\n"
"Last-Translator: Swyter <swyterzone@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
@@ -22,7 +22,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.8\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -43,12 +43,6 @@ msgid "step argument is zero!"
msgstr "¡El argumento «step» es cero!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "No es un script con una instancia"
@@ -241,8 +235,9 @@ msgid "Condition"
msgstr "Copiar animación"
#: modules/visual_script/visual_script_editor.cpp
+#, fuzzy
msgid "Sequence"
-msgstr ""
+msgstr "Secuencia"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -251,11 +246,11 @@ msgstr "Altura"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Iterador"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Mientras"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -415,87 +410,108 @@ msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "se presione"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "se levante"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"No se ha podido leer el archivo de certificación. ¿Seguro que la ruta y "
+"contraseña son correctas?"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Error creating the signature object."
msgstr "¡Error al escribir el PCK de proyecto!"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Se produjo un error al firmar el paquete."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"No se han encontrado plantillas de exportación.\n"
+"Tienes que descargar e instalarlas para continuar."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Custom debug package not found."
-msgstr ""
+msgstr "No se ha encontrado ningún paquete de depuración personalizado."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "No se ha encontrado ningún paquete final personalizado."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "El nombre no es correcto."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "Tamaño de tipografía incorrecto."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid publisher GUID."
msgstr "Ruta base incorrecta"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid background color."
msgstr "El origen personalizado de tipografía no es correcto."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "El logo de la tienda no es del tamaño adecuado (debe ser de 50x50)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
+"El logo cuadrado de 44x44 no es del tamaño adecuado (debe ser de 44x44)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
+"El logo cuadrado de 71x71 no es del tamaño adecuado (debe ser de 71x71)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
+"El logo cuadrado de 150x150 no es del tamaño adecuado (debe ser de 150x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
+"El logo cuadrado de 310x310 no es del tamaño adecuado (debe ser de 310x310)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
+"El logo ancho de 310x150 no es del tamaño adecuado (debe ser de 310x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
+"El tamaño de la imagen de arranque no es correcto (debe ser de 620x300)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -633,10 +649,6 @@ msgstr ""
"VisibilityEnable2D funciona mejor cuando se usa con la raíz de escena "
"editada directamente como padre."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance no contiene un recurso BakedLight."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -716,7 +728,8 @@ msgstr ""
msgid "Cancel"
msgstr "Cancelar"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "Aceptar"
@@ -1460,10 +1473,13 @@ msgid "Method in target Node must be specified!"
msgstr "¡Debes establecer un método en el nodo seleccionado!"
#: tools/editor/connections_dialog.cpp
+#, fuzzy
msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"No se ha encontrado el método objetivo. Especifica un método válido o ancla "
+"un script en el nodo objetivo."
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
@@ -1885,6 +1901,11 @@ msgid "Constants:"
msgstr "Constantes:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Descripción breve:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Descripción de métodos:"
@@ -1952,7 +1973,9 @@ msgstr "¡Hubo un error al guardar el recurso!"
msgid "Save Resource As.."
msgstr "Guardar recurso como…"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Muy bien…"
@@ -2193,7 +2216,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Elige una escena principal"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "Vaya"
@@ -2543,8 +2568,9 @@ msgid "Update Changes"
msgstr "Actualizar cambios"
#: tools/editor/editor_node.cpp
+#, fuzzy
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Desactivar la animación al actualizar"
#: tools/editor/editor_node.cpp
msgid "Inspector"
@@ -2901,6 +2927,7 @@ msgstr "Texturas de origen:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Ruta de destino:"
@@ -3132,6 +3159,11 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#, fuzzy
+msgid "Root Node Name:"
+msgstr "Nombre del nodo:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "Faltan los siguientes archivos:"
@@ -4045,6 +4077,55 @@ msgstr "Establecer valor"
msgid "Snap (Pixels):"
msgstr "Fijar (Pixeles):"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Add %s"
+msgstr "Añadir todos"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Adding %s..."
+msgstr "Añadiendo %s..."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Crear nodo"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "Error al instanciar escena desde %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Muy bien :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "No hay padre al que instanciarle un hijo."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "Esta operación requiere un solo nodo seleccionado."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Cambiar Valor por Defecto"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+"Arrastrar y soltar + Mayús: Añadir nodo como hermano\n"
+"Arrastrar y soltar + Alt: Cambiar tipo de nodo"
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4923,18 +5004,6 @@ msgstr "Ir a línea…"
msgid "Contextual Help"
msgstr "Ayuda contextual"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "Vértice"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "Fragmento"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "Iluminación"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr "Cambiar Constante Escalar"
@@ -5701,6 +5770,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "No hay exportador para la plataforma '%s' aun."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Crear recurso nuevo"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Nombre válido"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Transición"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "Estado:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Contraseña:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Letras válidas:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Nuevo nombre:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "Incluir"
@@ -6168,10 +6302,6 @@ msgid "Erase Input Action Event"
msgstr "Borrar evento de acción de entrada"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr "Des/activar persistencia"
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "Error al guardar los ajustes."
@@ -6315,7 +6445,7 @@ msgstr "Archivo…"
msgid "Dir.."
msgstr "Dir…"
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "Cargar"
@@ -6349,10 +6479,6 @@ msgid "Properties:"
msgstr "Propiedades:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Global"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Selecciones:"
@@ -6432,14 +6558,6 @@ msgid "Scene Run Settings"
msgstr "Ajustes de ejecución de escena"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Muy bien :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "No hay padre al que instanciarle un hijo."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr "No hay padre donde instanciar la escena."
@@ -6448,10 +6566,6 @@ msgid "Error loading scene from %s"
msgstr "Error al cargar escena desde %s"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Error al instanciar escena desde %s"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Aceptar"
@@ -6492,10 +6606,6 @@ msgid "This operation can't be done without a scene."
msgstr "Esta operación no puede realizarse sin una escena."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "Esta operación requiere un solo nodo seleccionado."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "Esta operación no puede realizarse en escenas instanciadas."
@@ -6520,10 +6630,6 @@ msgid "Remove Node(s)"
msgstr "Borrar nodos"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Crear nodo"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6564,10 +6670,16 @@ msgid "Change Type"
msgstr "Cambiar tipo"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+#, fuzzy
+msgid "Attach Script"
msgstr "Añadir script"
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Crear script"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr "Unir desde escena"
@@ -6592,16 +6704,14 @@ msgstr ""
"existe ningún nodo raíz."
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script for the selected node."
msgstr "Crear un nuevo script para el nodo seleccionado."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"Este item no puede hacerse visible porque el padre esta oculto. Desocultá el "
-"padre primero."
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear a script for the selected node."
+msgstr "Crear un nuevo script para el nodo seleccionado."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6697,6 +6807,11 @@ msgid "Could not create script in filesystem."
msgstr "No se puede crear el script en el sistema de archivos."
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Error al cargar escena desde %s"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "La ruta está vacia"
@@ -6709,16 +6824,18 @@ msgid "Invalid base path"
msgstr "Ruta base incorrecta"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "El archivo ya existe"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "La extensión no es correcta"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Ruta válida"
+#, fuzzy
+msgid "Create new script"
+msgstr "Crear script"
+
+#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Load existing script"
+msgstr "Script siguiente"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6729,7 +6846,8 @@ msgid "Built-In Script"
msgstr "Script integrado"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+#, fuzzy
+msgid "Attach Node Script"
msgstr "Crear script de nodo"
#: tools/editor/script_editor_debugger.cpp
@@ -6896,6 +7014,42 @@ msgstr "Cambiar longitud de forma de rayo"
msgid "Change Notifier Extents"
msgstr "Cambiar Alcances de Notificadores"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Cambiar Alcances de Notificadores"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance no contiene un recurso BakedLight."
+
+#~ msgid "Vertex"
+#~ msgstr "Vértice"
+
+#~ msgid "Fragment"
+#~ msgstr "Fragmento"
+
+#~ msgid "Lighting"
+#~ msgstr "Iluminación"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "Des/activar persistencia"
+
+#~ msgid "Global"
+#~ msgstr "Global"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Este item no puede hacerse visible porque el padre esta oculto. Desocultá "
+#~ "el padre primero."
+
+#~ msgid "File exists"
+#~ msgstr "El archivo ya existe"
+
+#~ msgid "Valid path"
+#~ msgstr "Ruta válida"
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/es_AR.po b/tools/translations/es_AR.po
index 6c266e74a7..08376f39c5 100644
--- a/tools/translations/es_AR.po
+++ b/tools/translations/es_AR.po
@@ -1,5 +1,5 @@
# Spanish (Argentina) translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Lisandro Lorea <lisandrolorea@gmail.com>, 2016.
@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-09-04 12:31+0000\n"
-"Last-Translator: Roger BR <drai_kin@hotmail.com>\n"
+"PO-Revision-Date: 2016-12-04 06:03+0000\n"
+"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/"
"godot-engine/godot/es_AR/>\n"
"Language: es_AR\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.8\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -37,12 +37,6 @@ msgid "step argument is zero!"
msgstr "el argumento step es cero!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "No es un script con una instancia"
@@ -175,9 +169,8 @@ msgid "Editing Signal:"
msgstr "Editando Señal:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Expression"
-msgstr "Cambiar Tipo"
+msgstr "Cambiar Expresión"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
@@ -228,40 +221,36 @@ msgid "Add Setter Property"
msgstr "Agregar Propiedad Setter"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "Copiar Animación"
+msgstr "Condición"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Secuencia"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Switch"
-msgstr "Altura"
+msgstr "Switch"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Iterador"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Mientras"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Return"
-msgstr "Retornar:"
+msgstr "Retornar"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
msgstr "Llamar"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Get"
-msgstr "Setear"
+msgstr "Obtener"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
@@ -403,87 +392,97 @@ msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "recién presionado"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "recién soltado"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"No se pudo leer el archivo de certificado. Son tanto la ruta como el "
+"password correctos?"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr "Error al escribir el PCK de proyecto!"
+msgstr "Error al crear el objeto firma."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Error al crear la firma del paquete."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"No se encontraron export templates.\n"
+"Descargá o instalá export templates."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "Paquete debug personalizado no encontrado."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "Paquete release personalizado no encontrado."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "Nombre inválido."
+msgstr "Nombre único inválido."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "Tamaño de tipografía inválido."
+msgstr "GUID de producto inválido."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "Ruta base inválida"
+msgstr "GUID de publisher inválido."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr "Origen personalizado de tipografía inválido."
+msgstr "Color de fondo inválido."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
+"Dimensiones de la imagen para el Store Logo inválidas (debería ser 50x50)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
+"Dimensiones de la imagen para el logo cuadrado de 44x44 inválidas (debería "
+"ser 44x44)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
+"Dimensiones de la imagen para el logo cuadrado de 71x71 inválidas (debería "
+"ser 71x71)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
+"Dimensiones de la imagen para el logo cuadrado de 150x150 inválidas (debería "
+"ser 150x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
+"Dimensiones de la imagen para el logo cuadrado de 310x310 inválidas (debería "
+"ser 310x310)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
+"Dimensiones de la imagen para el logo ancho de 310x150 inválidas (debería "
+"ser 310x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "Dimensiones de la imagen del splash inválidas (debería ser 620x400)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -621,10 +620,6 @@ msgstr ""
"VisibilityEnable2D funciona mejor cuando se usa con la raíz de escena "
"editada directamente como padre."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance no contiene un recurso BakedLight."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -671,10 +666,9 @@ msgstr ""
"provee datos de navegación."
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid "Path property must point to a valid Spatial node to work."
msgstr ""
-"La propiedad Path debe apuntar a un nodo Particles2D valido para funcionar."
+"La propiedad Path debe apuntar a un nodo Spatial valido para funcionar."
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -703,7 +697,8 @@ msgstr ""
msgid "Cancel"
msgstr "Cancelar"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "OK"
@@ -1449,6 +1444,8 @@ msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"El método objetivo no fue encontrado! Especificá un método válido o agregá "
+"un script al Nodo objetivo."
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
@@ -1826,7 +1823,7 @@ msgstr "EscanearFuentes"
#: tools/editor/editor_help.cpp tools/editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr "Ayuda de Búsqueda"
+msgstr "Buscar en la Ayuda"
#: tools/editor/editor_help.cpp
msgid "Class List:"
@@ -1866,6 +1863,11 @@ msgid "Constants:"
msgstr "Constantes:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Descripción Breve:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Descripción de Métodos:"
@@ -1933,7 +1935,9 @@ msgstr "Error al guardar el recurso!"
msgid "Save Resource As.."
msgstr "Guardar Recurso Como.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Ya Veo.."
@@ -2171,7 +2175,9 @@ msgstr "Abrir el Gestor de Proyectos? (Los cambios sin guardar se perderán)"
msgid "Pick a Main Scene"
msgstr "Elegí una Escena Principal"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "Ugh"
@@ -2493,9 +2499,8 @@ msgid "Editor Layout"
msgstr "Layout del Editor"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Toggle Fullscreen"
-msgstr "Modo Pantalla Completa"
+msgstr "Act./Desact. Pantalla Completa"
#: tools/editor/editor_node.cpp
msgid "Install Export Templates"
@@ -2523,7 +2528,7 @@ msgstr "Actualizar Cambios"
#: tools/editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Desactivar Update Spinner"
#: tools/editor/editor_node.cpp
msgid "Inspector"
@@ -2878,6 +2883,7 @@ msgstr "Textura(s) de Origen:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Ruta de Destino:"
@@ -3109,6 +3115,10 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr "Nombre del Nodo Raíz:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "Los Siguientes Archivos estan Faltando:"
@@ -3955,9 +3965,8 @@ msgid "Clear Bones"
msgstr "Reestablecer Huesos"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Bones"
-msgstr "Crear Huesos"
+msgstr "Mostrar Huesos"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -4020,6 +4029,51 @@ msgstr "Setear un Valor"
msgid "Snap (Pixels):"
msgstr "Snap (Pixeles):"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr "Agregar %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr "Agregando %s..."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Crear Nodo"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "Error al instanciar escena desde %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "No hay padre al que instanciarle un hijo."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "Esta operación requiere un solo nodo seleccionado."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr "Cambiar typo por defecto"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+"Drag & drop + Shift : Agregar nodo como hermano\n"
+"Drag & drop + Alt : Cambiar tipo de nodo"
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4699,9 +4753,8 @@ msgid "Close Docs"
msgstr "Cerrar Docs"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "Cerrar"
+msgstr "Cerrar Todos"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
@@ -4816,9 +4869,8 @@ msgstr ""
"pertenecen esta cargada"
#: tools/editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Pick Color"
-msgstr "Color"
+msgstr "Elegir Color"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
@@ -4891,18 +4943,6 @@ msgstr "Ir a Línea.."
msgid "Contextual Help"
msgstr "Ayuda Contextual"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "Vértice"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "Fragmento"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "Iluminación"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr "Cambiar Constante Escalar"
@@ -5196,9 +5236,8 @@ msgid "Insert Animation Key"
msgstr "Insertar Clave de Animación"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Focus Origin"
-msgstr "Ver Origen"
+msgstr "Foco en Origen"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
@@ -5466,9 +5505,8 @@ msgid "Remove Item"
msgstr "Remover Item"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme"
-msgstr "Guardar Tema"
+msgstr "Tema"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5667,6 +5705,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "No hay exportador para la plataforma '%s' aun."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Crear Nuevo Recurso"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Nombre válido"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Transición"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "Estado:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Contraseña:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Caracteres válidos:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Nuevo nombre:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "Incluir"
@@ -6134,10 +6237,6 @@ msgid "Erase Input Action Event"
msgstr "Borrar Evento de Acción de Entrada"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr "Act/Desact. Persistente"
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "Error al guardar los ajustes."
@@ -6281,7 +6380,7 @@ msgstr "Archivo.."
msgid "Dir.."
msgstr "Dir.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "Cargar"
@@ -6290,9 +6389,8 @@ msgid "Assign"
msgstr "Asignar"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "Script siguiente"
+msgstr "Nuevo Script"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
@@ -6315,10 +6413,6 @@ msgid "Properties:"
msgstr "Propiedades:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Global"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Selecciones:"
@@ -6396,14 +6490,6 @@ msgid "Scene Run Settings"
msgstr "Ajustes de Ejecución de Escena"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "No hay padre al que instanciarle un hijo."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr "No hay padre donde instanciar la escena."
@@ -6412,10 +6498,6 @@ msgid "Error loading scene from %s"
msgstr "Error al cargar escena desde %s"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Error al instanciar escena desde %s"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Ok"
@@ -6456,10 +6538,6 @@ msgid "This operation can't be done without a scene."
msgstr "Esta operación no puede hacerse sin una escena."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "Esta operación requiere un solo nodo seleccionado."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "Esta operación no puede ser realizada en escenas instanciadas."
@@ -6485,10 +6563,6 @@ msgid "Remove Node(s)"
msgstr "Quitar Nodo(s)"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Crear Nodo"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6529,8 +6603,12 @@ msgid "Change Type"
msgstr "Cambiar Tipo"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr "Agregar Script"
+msgid "Attach Script"
+msgstr "Adjuntar Script"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr "Reestablecer Script"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6557,16 +6635,12 @@ msgstr ""
"existe ningún nodo raíz."
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
-msgstr "Crear un nuevo script para el nodo seleccionado."
+msgid "Attach a new or existing script for the selected node."
+msgstr "Adjuntar un script nuevo o existente para el nodo seleccionado."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"Este item no puede hacerse visible porque el padre esta oculto. Desocultá el "
-"padre primero."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr "Reestablecer un script para el nodo seleccionado."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6661,6 +6735,10 @@ msgid "Could not create script in filesystem."
msgstr "No se puede crear el script en el sistema de archivos."
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr "Error al cargar el script desde %s"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "La ruta está vacia"
@@ -6673,16 +6751,16 @@ msgid "Invalid base path"
msgstr "Ruta base inválida"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "El archivo existe"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "Extensión invalida"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Ruta inválida"
+msgid "Create new script"
+msgstr "Crear script nuevo"
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Load existing script"
+msgstr "Cargar script existente"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6693,8 +6771,8 @@ msgid "Built-In Script"
msgstr "Script Integrado (Built-In)"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr "Crear Script de Nodo"
+msgid "Attach Node Script"
+msgstr "Adjuntar Script de Nodo"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6860,6 +6938,49 @@ msgstr "Cambiar Largo de Shape Rayo"
msgid "Change Notifier Extents"
msgstr "Cambiar Alcances de Notificadores"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Cambiar Alcances de Notificadores"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance no contiene un recurso BakedLight."
+
+#~ msgid "Vertex"
+#~ msgstr "Vértice"
+
+#~ msgid "Fragment"
+#~ msgstr "Fragmento"
+
+#~ msgid "Lighting"
+#~ msgstr "Iluminación"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "Act/Desact. Persistente"
+
+#~ msgid "Global"
+#~ msgstr "Global"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Este item no puede hacerse visible porque el padre esta oculto. Desocultá "
+#~ "el padre primero."
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "Las rutas no pueden comenzar con '/', las rutas absolutas deben comenzar "
+#~ "con 'res://', 'user://'. o 'local://'"
+
+#~ msgid "File exists"
+#~ msgstr "El archivo existe"
+
+#~ msgid "Valid path"
+#~ msgstr "Ruta inválida"
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/extract.py b/tools/translations/extract.py
index 61b07b5799..1192c19011 100755
--- a/tools/translations/extract.py
+++ b/tools/translations/extract.py
@@ -10,27 +10,27 @@ import sys
line_nb = False
for arg in sys.argv[1:]:
- if (arg == "--with-line-nb"):
- print("Enabling line numbers in the context locations.")
- line_nb = True
- else:
- os.sys.exit("Non supported argument '" + arg + "'. Aborting.")
+ if (arg == "--with-line-nb"):
+ print("Enabling line numbers in the context locations.")
+ line_nb = True
+ else:
+ os.sys.exit("Non supported argument '" + arg + "'. Aborting.")
if (not os.path.exists("tools")):
- os.sys.exit("ERROR: This script should be started from the root of the git repo.")
+ os.sys.exit("ERROR: This script should be started from the root of the git repo.")
matches = []
for root, dirnames, filenames in os.walk('.'):
- for filename in fnmatch.filter(filenames, '*.cpp'):
- if (filename.find("collada") != -1):
- continue
- matches.append(os.path.join(root, filename))
- for filename in fnmatch.filter(filenames, '*.h'):
- if (filename.find("collada") != -1):
- continue
- matches.append(os.path.join(root, filename))
+ for filename in fnmatch.filter(filenames, '*.cpp'):
+ if (filename.find("collada") != -1):
+ continue
+ matches.append(os.path.join(root, filename))
+ for filename in fnmatch.filter(filenames, '*.h'):
+ if (filename.find("collada") != -1):
+ continue
+ matches.append(os.path.join(root, filename))
matches.sort()
@@ -38,7 +38,7 @@ unique_str = []
unique_loc = {}
main_po = """
# LANGUAGE translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
@@ -55,51 +55,51 @@ print("Updating the tools.pot template...")
for fname in matches:
- f = open(fname, "rb")
-
- l = f.readline()
- lc = 1
- while (l):
-
- patterns = ['RTR(\"', 'TTR(\"']
- idx = 0
- pos = 0
- while (pos >= 0):
- pos = l.find(patterns[idx], pos)
- if (pos == -1):
- if (idx < len(patterns) - 1):
- idx += 1
- pos = 0
- continue
- pos += 5
-
- msg = ""
- while (pos < len(l) and (l[pos] != '"' or l[pos - 1] == '\\')):
- msg += l[pos]
- pos += 1
-
- location = os.path.relpath(fname).replace('\\','/')
- if (line_nb):
- location += ":" + str(lc)
-
- if (not msg in unique_str):
- main_po += "\n#: " + location + "\n"
- main_po += 'msgid "' + msg + '"\n'
- main_po += 'msgstr ""\n'
- unique_str.append(msg)
- unique_loc[msg] = [location]
- elif (not location in unique_loc[msg]):
- # Add additional location to previous occurence too
- msg_pos = main_po.find('\nmsgid "' + msg + '"')
- if (msg_pos == -1):
- print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.")
- main_po = main_po[:msg_pos] + ' ' + location + main_po[msg_pos:]
- unique_loc[msg].append(location)
-
- l = f.readline()
- lc += 1
-
- f.close()
+ f = open(fname, "rb")
+
+ l = f.readline()
+ lc = 1
+ while (l):
+
+ patterns = ['RTR(\"', 'TTR(\"']
+ idx = 0
+ pos = 0
+ while (pos >= 0):
+ pos = l.find(patterns[idx], pos)
+ if (pos == -1):
+ if (idx < len(patterns) - 1):
+ idx += 1
+ pos = 0
+ continue
+ pos += 5
+
+ msg = ""
+ while (pos < len(l) and (l[pos] != '"' or l[pos - 1] == '\\')):
+ msg += l[pos]
+ pos += 1
+
+ location = os.path.relpath(fname).replace('\\', '/')
+ if (line_nb):
+ location += ":" + str(lc)
+
+ if (not msg in unique_str):
+ main_po += "\n#: " + location + "\n"
+ main_po += 'msgid "' + msg + '"\n'
+ main_po += 'msgstr ""\n'
+ unique_str.append(msg)
+ unique_loc[msg] = [location]
+ elif (not location in unique_loc[msg]):
+ # Add additional location to previous occurence too
+ msg_pos = main_po.find('\nmsgid "' + msg + '"')
+ if (msg_pos == -1):
+ print("Someone apparently thought writing Python was as easy as GDScript. Ping Akien.")
+ main_po = main_po[:msg_pos] + ' ' + location + main_po[msg_pos:]
+ unique_loc[msg].append(location)
+
+ l = f.readline()
+ lc += 1
+
+ f.close()
f = open("tools.pot", "wb")
@@ -107,15 +107,15 @@ f.write(main_po)
f.close()
if (os.name == "posix"):
- print("Wrapping template at 79 characters for compatibility with Weblate.")
- os.system("msgmerge -w79 tools.pot tools.pot > tools.pot.wrap")
- shutil.move("tools.pot.wrap", "tools.pot")
+ print("Wrapping template at 79 characters for compatibility with Weblate.")
+ os.system("msgmerge -w79 tools.pot tools.pot > tools.pot.wrap")
+ shutil.move("tools.pot.wrap", "tools.pot")
shutil.move("tools.pot", "tools/translations/tools.pot")
# TODO: Make that in a portable way, if we care; if not, kudos to Unix users
if (os.name == "posix"):
- added = subprocess.check_output("git diff tools/translations/tools.pot | grep \+msgid | wc -l", shell = True)
- removed = subprocess.check_output("git diff tools/translations/tools.pot | grep \\\-msgid | wc -l", shell = True)
- print("\n# Template changes compared to the staged status:")
- print("# Additions: %s msgids.\n# Deletions: %s msgids." % (int(added), int(removed)))
+ added = subprocess.check_output("git diff tools/translations/tools.pot | grep \+msgid | wc -l", shell=True)
+ removed = subprocess.check_output("git diff tools/translations/tools.pot | grep \\\-msgid | wc -l", shell=True)
+ print("\n# Template changes compared to the staged status:")
+ print("# Additions: %s msgids.\n# Deletions: %s msgids." % (int(added), int(removed)))
diff --git a/tools/translations/fa.po b/tools/translations/fa.po
index 290c4a6309..8e29cda45f 100644
--- a/tools/translations/fa.po
+++ b/tools/translations/fa.po
@@ -1,5 +1,5 @@
# Persian translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# alabd14313 <alabd14313@yahoo.com>, 2016.
@@ -38,12 +38,6 @@ msgid "step argument is zero!"
msgstr "آرگومان step صفر است!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
#, fuzzy
msgid "Not a script with an instance"
msgstr "اسکریپتی با یک نمونه نیست ."
@@ -409,76 +403,76 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "نام نامعتبر."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "اندازه‌ی قلم نامعتبر."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -619,10 +613,6 @@ msgstr ""
"VisibilityEnable2D زمانی بهتر کار می‌کند که در یک ریشه‌ی صحنه‌ی ویرایش شده به "
"صورت پدر (parent) استفاده شود."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance محتوی یک منبع BakedLight نیست."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -701,7 +691,8 @@ msgstr ""
msgid "Cancel"
msgstr "لغو"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "موافقت"
@@ -1863,6 +1854,11 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "خلاصه توضیحات:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1930,7 +1926,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr "ذخیره منبع از ..."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "من میبینم ..."
@@ -2155,7 +2153,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2836,6 +2836,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -3065,6 +3066,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3964,6 +3969,50 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "نوع مقدار آرایه را تغییر بده"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4829,18 +4878,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5603,6 +5640,69 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "پوشه ایجاد کن"
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "انتقال"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "وضعیت:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "گذرواژه:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "کاراکترهای معتبر:"
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -6064,10 +6164,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6211,7 +6307,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6245,10 +6341,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6327,14 +6419,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6343,10 +6427,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6385,10 +6465,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6413,10 +6489,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6455,8 +6527,14 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Script"
+msgstr "صحنه جدید"
+
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "صحنه جدید"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6481,13 +6559,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6583,6 +6659,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "خطای بارگذاری قلم."
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6595,15 +6676,16 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "جدید ایجاد کن"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6615,8 +6697,9 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Node Script"
+msgstr "صحنه جدید"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6782,6 +6865,13 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance محتوی یک منبع BakedLight نیست."
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/fr.po b/tools/translations/fr.po
index 94d43d12ba..10f82e2840 100644
--- a/tools/translations/fr.po
+++ b/tools/translations/fr.po
@@ -1,12 +1,15 @@
# French translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
+# Brice <bbric@free.fr>, 2016.
# Chenebel Dorian <LoubiTek54@gmail.com>, 2016.
# derderder77 <derderder77380@gmail.com>, 2016.
# finkiki <specialpopol@gmx.fr>, 2016.
# Hugo Locurcio <hugo.l@openmailbox.org>, 2016.
# Marc <marc.gilleron@gmail.com>, 2016.
+# Nicolas Lehuen <nicolas@lehuen.com>, 2016.
+# Omicron <tritonic.dev@gmail.com>, 2016.
# Onyx Steinheim <thevoxelmanonyx@gmail.com>, 2016.
# rafeu <duchainer@gmail.com>, 2016.
# Rémi Verschelde <rverschelde@gmail.com>, 2016.
@@ -17,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-09-03 09:11+0000\n"
-"Last-Translator: Thomas Baijot <thomasbaijot@gmail.com>\n"
+"PO-Revision-Date: 2016-12-15 22:36+0000\n"
+"Last-Translator: Nicolas Lehuen <nicolas@lehuen.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -26,7 +29,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 2.8\n"
+"X-Generator: Weblate 2.10\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -43,12 +46,6 @@ msgid "step argument is zero!"
msgstr "L'argument du pas est zéro!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "N'est pas un script avec une instance"
@@ -91,24 +88,30 @@ msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
msgstr ""
+"Le nœud a été produit mais il n'a pas retourné un état de fonction dans la "
+"première mémoire de travail."
#: modules/visual_script/visual_script.cpp
msgid ""
"Return value must be assigned to first element of node working memory! Fix "
"your node please."
msgstr ""
+"Une valeur de retour doit être assignée au premier élément de la mémoire de "
+"travail du nœud! Veuillez corriger votre nœud."
#: modules/visual_script/visual_script.cpp
msgid "Node returned an invalid sequence output: "
-msgstr "Le nœud a retourné une séquence de sortie invalide "
+msgstr "Le nœud a retourné une séquence de sortie invalide: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
msgstr ""
+"Une séquence d'octets a été trouvée mais pas le nœud dans la pile, signalez "
+"le bug!"
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
-msgstr ""
+msgstr "Débordement de pile avec profondeur de pile: "
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
@@ -123,9 +126,8 @@ msgid "Signals:"
msgstr "Signaux :"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Name is not a valid identifier:"
-msgstr "Le nom n'est pas un identifiant valide"
+msgstr "Le nom n'est pas un identifiant valide:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
@@ -164,23 +166,20 @@ msgid "Remove Variable"
msgstr "Supprimer la variable"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Editing Variable:"
-msgstr "Variable"
+msgstr "Éditer la variable:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
msgstr "Supprimer le signal"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Editing Signal:"
-msgstr "Connecter un signal :"
+msgstr "Éditer le signal :"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Expression"
-msgstr "Changer le type"
+msgstr "Changer l'expression"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
@@ -189,31 +188,34 @@ msgstr "Ajouter un nœud"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"Maintenir Meta pour déposer un accesseur. Maintenir Maj pour déposer une "
+"signature générique."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"Maintenir Ctrl pour déposer un accesseur. Maintenir Maj pour déposer une "
+"signature générique."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a simple reference to the node."
-msgstr ""
+msgstr "Maintenir Meta pour déposer une référence simple au nœud."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
+msgstr "Maintenir Ctrl pour déposer une référence simple au nœud."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a Variable Setter."
-msgstr ""
+msgstr "Maintenir Meta pour déposer un mutateur de variable."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
+msgstr "Maintenir Ctrl pour déposer un mutateur de variable."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Preload Node"
-msgstr "Ajouter un nœud enfant"
+msgstr "Ajouter un nœud 'preload'"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -221,47 +223,43 @@ msgstr "Ajouter un nœud à partir de l'arbre"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
-msgstr ""
+msgstr "Ajouter une propriété accesseur"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
-msgstr ""
+msgstr "Ajouter une propriété mutateur"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "Copier l'animation"
+msgstr "Condition"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Séquence"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Switch"
-msgstr "Hauteur"
+msgstr "Switch"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Itérateur"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Tant que"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Return"
-msgstr "Retourne :"
+msgstr "Retour"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
msgstr "Appel"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Get"
-msgstr "Définir"
+msgstr "Récupérer"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
@@ -308,11 +306,11 @@ msgstr "Fermer"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Signal Arguments:"
-msgstr "Editer les arguments du signal"
+msgstr "Éditer les arguments du signal:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Variable:"
-msgstr "Editer la variable"
+msgstr "Éditer la variable:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change"
@@ -328,28 +326,24 @@ msgid "Toggle Breakpoint"
msgstr "Placer un point d'arrêt"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Find Node Type"
-msgstr "Trouver le type du noeud"
+msgstr "Trouver le type du nœud"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Copy Nodes"
-msgstr "Copier la pose"
+msgstr "Copier les nœuds"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Cut Nodes"
-msgstr "Créer un nœud"
+msgstr "Couper les nœuds"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Paste Nodes"
-msgstr "Coller la pose"
+msgstr "Coller les nœuds"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr ""
+msgstr "Type d'entrée non itérable: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
@@ -360,9 +354,8 @@ msgid "Iterator became invalid: "
msgstr "L'itérateur est devenu invalide "
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Invalid index property name."
-msgstr "Nom de classe parent invalide"
+msgstr "Indice de nom de propriété invalide."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
@@ -377,9 +370,8 @@ msgid "Invalid index property name '%s' in node %s."
msgstr "Nom de propriété invalide '%s' dans le nœud %s."
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid ": Invalid argument of type: "
-msgstr "Nom de classe parent invalide"
+msgstr ": Argument invalide de type: "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
@@ -396,96 +388,105 @@ msgstr "VariableSet introuvable dans le script: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
msgstr ""
+"Le nœud personnalisé n'a pas de méthode _step(), le graph ne peut pas être "
+"traité."
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
+"La valeur retournée par _step() est invalide, elle doit être un entier (seq "
+"out), ou une chaîne (erreur)."
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "seulement pressé"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "seulement relâché"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"Le fichier certificat ne pourrait pas être lu. Les chemin et mot de passe "
+"sont t-ils tous deux corrects ?"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr "Erreur d'écriture du PCK du projet !"
+msgstr "Erreur en créant la signature de l'objet."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Erreur en créant la signature du paquet."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"Aucun modèle d'export n'a été trouvé.\n"
+"Téléchargez et installez des modèles d'export."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "Le paquet personnalisé de débogage n'a pas été trouvé."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "Le paquet personnalisé de parution n'a pas été trouvé."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "Nom invalide."
+msgstr "Nom unique invalide."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "Taille de police invalide."
+msgstr "GUID de produit invalide."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "Chemin de base invalide"
+msgstr "GUID d'éditeur invalide."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr "Source personnalisée de police invalide."
+msgstr "Couleur d'arrière-plan invalide."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "Dimensions d'image de logo magasin invalides (devraient être 50x50)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
+"Dimensions d'image de logo carré 44x44 invalides (devraient être 44x44)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
+"Dimensions d'image de logo carré 71x71 invalides (devraient être 71x71)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
+"Dimensions d'image de logo carré 150x150 invalides (devraient être 150x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
+"Dimensions d'image de logo carré 310x310 invalides (devraient être 310x310)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
+"Dimensions d'image de logo large 310x150 invalides (devraient être 310x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
+"Dimensions d'image d'écran de démarrage invalides (devraient être 620x300)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -630,10 +631,6 @@ msgstr ""
"Un VisibilityEnable2D fonctionne mieux lorsqu'il est directement enfant du "
"nœud racine de la scène."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "La BakedLightInstance ne contient pas de ressource BakedLight."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -679,11 +676,9 @@ msgstr ""
"Navigation. Il fournit uniquement des données de navigation."
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid "Path property must point to a valid Spatial node to work."
msgstr ""
-"La propriété Path doit pointer à un nœud de type Particles2D valide pour "
-"fonctionner."
+"La propriété Path doit pointer vers un nœud Spatial valide pour fonctionner."
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -712,7 +707,8 @@ msgstr ""
msgid "Cancel"
msgstr "Annuler"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "OK"
@@ -823,7 +819,7 @@ msgstr "Alt+"
#: scene/gui/input_action.cpp
msgid "Ctrl+"
-msgstr "Contrôle+"
+msgstr "Ctrl+"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
#: tools/editor/settings_config_dialog.cpp
@@ -1030,7 +1026,7 @@ msgstr "Dupliquer la sélection"
#: tools/editor/animation_editor.cpp
msgid "Duplicate Transposed"
-msgstr ""
+msgstr "Double transposé"
#: tools/editor/animation_editor.cpp
msgid "Remove Selection"
@@ -1233,6 +1229,8 @@ msgstr "Optimiser"
#: tools/editor/animation_editor.cpp
msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
msgstr ""
+"Sélectionnez un AnimationPlayer de l'arbre de scène pour éditer les "
+"animations."
#: tools/editor/animation_editor.cpp
msgid "Key"
@@ -1458,6 +1456,8 @@ msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"La méthode cible n'a pas été trouvée! Spécifiez une méthode valide ou "
+"attachez un script au nœud cible."
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
@@ -1516,7 +1516,7 @@ msgstr "Connecter un signal :"
#: tools/editor/connections_dialog.cpp
msgid "Create Subscription"
-msgstr ""
+msgstr "Créer une souscription"
#: tools/editor/connections_dialog.cpp
msgid "Connect.."
@@ -1818,9 +1818,8 @@ msgid "Toggle Mode"
msgstr "Basculer le mode"
#: tools/editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Focus Path"
-msgstr "Copier le chemin"
+msgstr "Focaliser le chemin"
#: tools/editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
@@ -1880,6 +1879,11 @@ msgid "Constants:"
msgstr "Constantes :"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Brève description :"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Description de la méthode :"
@@ -1948,7 +1952,9 @@ msgstr "Erreur d'enregistrement de la ressource !"
msgid "Save Resource As.."
msgstr "Enregistrer la ressource sous…"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Je vois…"
@@ -2190,7 +2196,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Choisir une scène principale"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "Oups"
@@ -2452,12 +2460,11 @@ msgid "Visible Collision Shapes"
msgstr "Formes de collision visibles"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
-"Les formes de collision et les noeuds de raycast (pour 2D et 3D) seront "
+"Les formes de collision et les nœuds de raycast (pour 2D et 3D) seront "
"visibles en jeu si cette option est activée."
#: tools/editor/editor_node.cpp
@@ -2519,9 +2526,8 @@ msgid "Editor Layout"
msgstr "Disposition de l'éditeur"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Toggle Fullscreen"
-msgstr "Mode plein écran"
+msgstr "Basculer le mode plein écran"
#: tools/editor/editor_node.cpp
msgid "Install Export Templates"
@@ -2908,6 +2914,7 @@ msgstr "Texture(s) source :"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Chemin de destination :"
@@ -3141,6 +3148,11 @@ msgid "Auto"
msgstr "Auto."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#, fuzzy
+msgid "Root Node Name:"
+msgstr "Nom de nœud :"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "Les fichiers suivants sont manquants :"
@@ -3176,9 +3188,8 @@ msgid "Couldn't load post-import script:"
msgstr "Impossible de charger le script de post-importation :"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Invalid/broken script for post-import (check console):"
-msgstr "Script de post-importation invalide ou cassé :"
+msgstr "Script de post-importation invalide ou cassé (vérifiez la console):"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Error running post-import script:"
@@ -3548,9 +3559,8 @@ msgid "Play selected animation from start. (Shift+D)"
msgstr "Lire l'animation sélectionnée depuis le début. (Maj + D)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Play selected animation from current pos. (D)"
-msgstr "Lire l'animation sélectionnée à sa position actuelle. (D)"
+msgstr "Lire l'animation sélectionnée depuis la position actuelle. (D)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
@@ -3709,11 +3719,11 @@ msgstr "Ajouter une entrée"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Clear Auto-Advance"
-msgstr ""
+msgstr "Réinitialiser la progression automatique"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Set Auto-Advance"
-msgstr ""
+msgstr "Définir la progression automatique"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Delete Input"
@@ -3741,7 +3751,7 @@ msgstr "Nœud one-shot"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "Mélanger le nœud"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
@@ -3868,7 +3878,7 @@ msgstr "Déplacer le pivot"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Action"
-msgstr ""
+msgstr "Déplacer l'action"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit IK Chain"
@@ -3891,9 +3901,8 @@ msgid "Paste Pose"
msgstr "Coller la pose"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Select Mode"
-msgstr "Mode sélection (Q)"
+msgstr "Sélectionner le mode"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
@@ -3914,9 +3923,8 @@ msgid "Alt+RMB: Depth list selection"
msgstr "Alt + Bouton droit : sélection détaillée par liste"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Mode"
-msgstr "Move déplacement (W)"
+msgstr "Mode déplacement"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -4000,9 +4008,8 @@ msgid "Clear Bones"
msgstr "Effacer les os"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Bones"
-msgstr "Créer les os"
+msgstr "Afficher les os"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -4038,9 +4045,8 @@ msgid "Anchor"
msgstr "Ancre"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Insert Keys"
-msgstr "Animation Inserer une clé"
+msgstr "Insérer des clefs"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
@@ -4066,6 +4072,53 @@ msgstr "Définir une valeur"
msgid "Snap (Pixels):"
msgstr "Aligner (pixels) :"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Add %s"
+msgstr "Tout ajouter"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Créer un nœud"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "Erreur d'instanciation de la scène depuis %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Pas de parent dans lequel instancier l'enfant."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+"Cette opération ne peut être réalisée uniquement avec un seul nœud "
+"sélectionné."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Changer la valeur par défaut"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4364,7 +4417,7 @@ msgstr "Créer un polygone de navigation"
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Remove Poly And Point"
-msgstr ""
+msgstr "Supprimer le polygone et le point"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Error loading image:"
@@ -4388,7 +4441,7 @@ msgstr "Charger le masque d'émission"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr ""
+msgstr "Compte de points générés:"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry."
@@ -4693,21 +4746,19 @@ msgstr "Erreur d'importation"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr "Improter un thème"
+msgstr "Importer un thème"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As.."
msgstr "Enregistrer le thème sous…"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Next script"
-msgstr "Créer un script"
+msgstr "Script suivant"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Previous script"
-msgstr "Répertoire précédent"
+msgstr "Script précédent"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/project_export.cpp
@@ -4749,14 +4800,12 @@ msgid "Save Theme As"
msgstr "Enregistrer le thème sous"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close Docs"
-msgstr "Cloner en dessous"
+msgstr "Fermer les documentations"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "Fermer"
+msgstr "Fermer tout"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
@@ -4871,9 +4920,8 @@ msgstr ""
"qui ils appartiennent est ouverte"
#: tools/editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Pick Color"
-msgstr "Couleur"
+msgstr "Prélever une couleur"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
@@ -4946,18 +4994,6 @@ msgstr "Aller à la ligne…"
msgid "Contextual Help"
msgstr "Aide contextuelle"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "Vertex"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "Fragment"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "Éclairage"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr "Modifier une constante scalaire"
@@ -4988,15 +5024,15 @@ msgstr "Modifier un opérateur RVB"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Toggle Rot Only"
-msgstr ""
+msgstr "Basculer seulement la rotation"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Function"
-msgstr ""
+msgstr "Modifier une fonction scalaire"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Function"
-msgstr ""
+msgstr "Modifier une fonction vecteur"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Uniform"
@@ -5048,27 +5084,27 @@ msgstr "Changer le nom de l'entrée"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Connect Graph Nodes"
-msgstr ""
+msgstr "Connecter les nœuds de graphe"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Disconnect Graph Nodes"
-msgstr ""
+msgstr "Déconnecter les nœuds de graphe"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Remove Shader Graph Node"
-msgstr ""
+msgstr "Supprimer le nœud de graphe Shader"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Move Shader Graph Node"
-msgstr ""
+msgstr "Déplacer le nœud de graphe Shader"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Duplicate Graph Node(s)"
-msgstr ""
+msgstr "Dupliquer le(s) nœud(s) de graphe"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Delete Shader Graph Node(s)"
-msgstr ""
+msgstr "Effacer le(s) nœud(s) de graphe Shader"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Cyclic Connection Link"
@@ -5080,7 +5116,7 @@ msgstr "Erreur : connexions d'entrée manquantes"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add Shader Graph Node"
-msgstr ""
+msgstr "Ajouter un nœud de graphe Shader"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
@@ -5108,7 +5144,7 @@ msgstr "Transformation sur l'axe Z."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Plane Transform."
-msgstr ""
+msgstr "Transformation du plan de vue."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling to %s%%."
@@ -5219,58 +5255,48 @@ msgid "Scale Mode (R)"
msgstr "Mode de mise à l'échelle (R)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Bottom View"
-msgstr "Vue de dessous."
+msgstr "Vue de dessous"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Top View"
-msgstr "Vue de dessus."
+msgstr "Vue de dessus"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rear View"
-msgstr "Vue arrière."
+msgstr "Vue arrière"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Front View"
-msgstr "Vue avant."
+msgstr "Vue avant"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Left View"
-msgstr "Vue de gauche."
+msgstr "Vue de gauche"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Right View"
-msgstr "Vue de droite."
+msgstr "Vue de droite"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal view"
msgstr "Basculer entre la vue perspective et orthogonale"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Insert Animation Key"
-msgstr "Coller l'animation"
+msgstr "Insérer une clef d'animation"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Focus Origin"
-msgstr "Afficher l'origine"
+msgstr "Focaliser l'origine"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Focus Selection"
-msgstr "Mettre à l'échelle la sélection"
+msgstr "Focaliser la sélection"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Align Selection With View"
-msgstr "Aligner avec la vue"
+msgstr "Aligner la sélection avec la vue"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform"
@@ -5430,7 +5456,7 @@ msgstr "Ajouter vide"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Modifier la boucle d'animation"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
@@ -5473,32 +5499,28 @@ msgid "StyleBox Preview:"
msgstr "Aperçu de la StyleBox :"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Snap Mode:"
-msgstr "Mode d'exécution :"
+msgstr "Mode d'aimantation :"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "<None>"
msgstr "<Aucun>"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Pixel Snap"
-msgstr "Aligner au pixel près"
+msgstr "Aimanter au pixel"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Grid Snap"
-msgstr "Pas de la grille :"
+msgstr "Aimanter à la grille"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr ""
+msgstr "Coupe automatique"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Offset:"
-msgstr "Décalage de la grille :"
+msgstr "Décalage:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
#, fuzzy
@@ -5506,14 +5528,12 @@ msgid "Step:"
msgstr "Pas (s) :"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Separation:"
-msgstr "Sections :"
+msgstr "Séparation:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
-#, fuzzy
msgid "Texture Region"
-msgstr "Éditeur de région de texture"
+msgstr "Région de texture"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region Editor"
@@ -5537,9 +5557,8 @@ msgid "Remove Item"
msgstr "Supprimer l'item"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme"
-msgstr "Enregistrer le thème"
+msgstr "Thème"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5738,6 +5757,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "Pas d'exportateur pour la plate-forme « %s » actuellement."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Créer une nouvelle ressource"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Nom valide"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Transition"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "État :"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Mot de passe :"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Caractères valides :"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Nouveau nom :"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "Inclure"
@@ -6045,9 +6129,8 @@ msgid "Install Project:"
msgstr "Projets récents :"
#: tools/editor/project_manager.cpp
-#, fuzzy
msgid "Install"
-msgstr "Instance"
+msgstr "Installer"
#: tools/editor/project_manager.cpp
msgid "Browse"
@@ -6085,6 +6168,8 @@ msgid ""
"You are about the scan %s folders for existing Godot projects. Do you "
"confirm?"
msgstr ""
+"Vous êtes sur le point de scanner les %s de dossiers pour les projets Godot "
+"existants. Est-ce que vous confirmez ?"
#: tools/editor/project_manager.cpp
msgid "Project Manager"
@@ -6103,9 +6188,8 @@ msgid "Scan"
msgstr "Scanner"
#: tools/editor/project_manager.cpp
-#, fuzzy
msgid "Select a Folder to Scan"
-msgstr "Sélectionner un nœud"
+msgstr "Sélectionnez un dossier à scanner"
#: tools/editor/project_manager.cpp
msgid "New Project"
@@ -6212,10 +6296,6 @@ msgid "Erase Input Action Event"
msgstr "Effacer l'événement d'action d'entrée"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr "Mode persistant"
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "Erreur d'enregistrement des paramètres."
@@ -6359,7 +6439,7 @@ msgstr "Fichier…"
msgid "Dir.."
msgstr "Répertoire…"
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "Charger"
@@ -6368,9 +6448,8 @@ msgid "Assign"
msgstr "Assigner"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "Créer un script"
+msgstr "Nouveau script"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
@@ -6393,22 +6472,16 @@ msgid "Properties:"
msgstr "Propriétés :"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Global"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Sections :"
#: tools/editor/property_selector.cpp
-#, fuzzy
msgid "Select Property"
-msgstr "Sélectionner des points"
+msgstr "Sélectionnez une propriété"
#: tools/editor/property_selector.cpp
-#, fuzzy
msgid "Select Method"
-msgstr "Mode sélection (Q)"
+msgstr "Sélectionner une méthode"
#: tools/editor/pvrtc_compress.cpp
msgid "Could not execute PVRTC tool:"
@@ -6417,6 +6490,7 @@ msgstr "Impossible d'exécuter l'outil PVRTC :"
#: tools/editor/pvrtc_compress.cpp
msgid "Can't load back converted image using PVRTC tool:"
msgstr ""
+"L'image convertie n'a pas pu être rechargée en utilisant l'outil PVRTC:"
#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
msgid "Reparent Node"
@@ -6475,27 +6549,14 @@ msgid "Scene Run Settings"
msgstr "Paramètres d'exécution de la scène"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Pas de parent dans lequel instancier l'enfant."
-
-#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "No parent to instance the scenes at."
-msgstr "Pas de parent dans lequel instancier l'enfant."
+msgstr "Aucun parent dans lequel instancier les scènes."
#: tools/editor/scene_tree_dock.cpp
msgid "Error loading scene from %s"
msgstr "Erreur de chargement de la scène depuis %s"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Erreur d'instanciation de la scène depuis %s"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "OK"
@@ -6536,12 +6597,6 @@ msgid "This operation can't be done without a scene."
msgstr "Cette opération ne peut être réalisée sans une scène."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-"Cette opération ne peut être réalisée uniquement avec un seul nœud "
-"sélectionné."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "Cette opération ne peut être réalisée sur des scènes instanciées."
@@ -6566,10 +6621,6 @@ msgid "Remove Node(s)"
msgstr "Supprimer le(s) nœud(s)"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Créer un nœud"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6610,10 +6661,16 @@ msgid "Change Type"
msgstr "Changer le type"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+#, fuzzy
+msgid "Attach Script"
msgstr "Ajouter un script"
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Créer un script"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr "Fusionner depuis la scène"
@@ -6622,9 +6679,8 @@ msgid "Save Branch as Scene"
msgstr "Sauvegarder la branche comme scène"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete (No Confirm)"
-msgstr "Veuillez confirmer…"
+msgstr "Effacer (pas de confirmation)"
#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
@@ -6640,16 +6696,13 @@ msgstr ""
#: tools/editor/scene_tree_dock.cpp
#, fuzzy
-msgid "Create a new script for the selected node."
-msgstr "Instancie la/les scènes sélectionnées en tant qu'enfant du nœud."
+msgid "Attach a new or existing script for the selected node."
+msgstr "Créer un nouveau script pour le nœud sélectionné."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"Cet objet ne peut être rendu visible car son parent est caché. Affichez le "
-"parent d'abord."
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear a script for the selected node."
+msgstr "Créer un nouveau script pour le nœud sélectionné."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6744,6 +6797,11 @@ msgid "Could not create script in filesystem."
msgstr "Impossible de créer le script dans le système de fichiers."
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Erreur de chargement de la scène depuis %s"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "Le chemin est vide"
@@ -6756,16 +6814,18 @@ msgid "Invalid base path"
msgstr "Chemin de base invalide"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "Le fichier existe"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "Extension invalide"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Chemin valide"
+#, fuzzy
+msgid "Create new script"
+msgstr "Créer un script"
+
+#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Load existing script"
+msgstr "Script suivant"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6776,7 +6836,8 @@ msgid "Built-In Script"
msgstr "Script intégré"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+#, fuzzy
+msgid "Attach Node Script"
msgstr "Créer le script de nœud"
#: tools/editor/script_editor_debugger.cpp
@@ -6943,6 +7004,49 @@ msgstr "Changer la longueur d'une forme en rayon"
msgid "Change Notifier Extents"
msgstr "Changer les extents d'un notificateur"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Changer les extents d'un notificateur"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "La BakedLightInstance ne contient pas de ressource BakedLight."
+
+#~ msgid "Vertex"
+#~ msgstr "Vertex"
+
+#~ msgid "Fragment"
+#~ msgstr "Fragment"
+
+#~ msgid "Lighting"
+#~ msgstr "Éclairage"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "Mode persistant"
+
+#~ msgid "Global"
+#~ msgstr "Global"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Cet objet ne peut être rendu visible car son parent est caché. Affichez "
+#~ "le parent d'abord."
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "Les chemins ne peuvent pas commencer par '/', les chemins absolus doivent "
+#~ "commencer par 'res://', 'user://' ou 'local://'"
+
+#~ msgid "File exists"
+#~ msgstr "Le fichier existe"
+
+#~ msgid "Valid path"
+#~ msgstr "Chemin valide"
+
#~ msgid "Cannot go into subdir:"
#~ msgstr "Impossible d'aller dans le sous-répertoire :"
diff --git a/tools/translations/is.po b/tools/translations/hu.po
index 2a2abb8df4..ef78f27138 100644
--- a/tools/translations/is.po
+++ b/tools/translations/hu.po
@@ -1,15 +1,21 @@
-# LANGUAGE translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Hungarian translation of the Godot Engine editor
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Varga Dániel <danikah.danikah@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"Language: is\n"
+"PO-Revision-Date: 2016-11-11 18:19+0000\n"
+"Last-Translator: Varga Dániel <danikah.danikah@gmail.com>\n"
+"Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/"
+"godot/hu/>\n"
+"Language: hu\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 2.9\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -26,12 +32,6 @@ msgid "step argument is zero!"
msgstr ""
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr ""
@@ -375,74 +375,74 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -550,10 +550,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -613,7 +609,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1756,6 +1753,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1823,7 +1824,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2048,7 +2051,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2728,6 +2733,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2955,6 +2961,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3854,6 +3864,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4718,18 +4771,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5492,6 +5533,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5951,10 +6050,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6098,7 +6193,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6131,10 +6226,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6211,14 +6302,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6227,10 +6310,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6269,10 +6348,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6297,10 +6372,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6339,7 +6410,11 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -6365,13 +6440,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6467,6 +6540,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6479,15 +6556,15 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
+msgid "Create new script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6499,7 +6576,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6665,3 +6742,7 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
diff --git a/tools/translations/id.po b/tools/translations/id.po
index 3f2ef7861f..917bd21e82 100644
--- a/tools/translations/id.po
+++ b/tools/translations/id.po
@@ -1,8 +1,9 @@
# Indonesian translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Abdul Aziz Muslim Alqudsy <abdul.aziz.muslim.alqudsy@gmail.com>, 2016.
+# Andevid Dynmyn <doyan4forum@gmail.com>, 2016.
# Andinawan Asa <asaandinawan@gmail.com>, 2016.
# Khairul Hidayat <khairulcyber4rt@gmail.com>, 2016.
# yursan9 <rizal.sagi@gmail.com>, 2016.
@@ -10,15 +11,15 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-08-27 02:11+0000\n"
-"Last-Translator: yursan9 <rizal.sagi@gmail.com>\n"
+"PO-Revision-Date: 2016-10-15 04:17+0000\n"
+"Last-Translator: Andevid Dynmyn <doyan4forum@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/"
"godot/id/>\n"
"Language: id\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 2.8-dev\n"
+"X-Generator: Weblate 2.9-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -36,12 +37,6 @@ msgid "step argument is zero!"
msgstr "Langkah argumen adalah nol!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
#, fuzzy
msgid "Not a script with an instance"
msgstr "Skrip tidak mempunyai turunannya"
@@ -404,76 +399,76 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "Nama tidak sah."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "Ukuran font tidak sah."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -620,10 +615,6 @@ msgstr ""
"VisibilityEnable2D bekerja dengan sangat baik ketika digunakan dengan "
"mengedit root scene secara langsung sebagai parent."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance tidak berisi resource BakedLight."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -706,7 +697,8 @@ msgstr ""
msgid "Cancel"
msgstr "Batal"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "Oke"
@@ -1904,6 +1896,11 @@ msgid "Constants:"
msgstr "Konstanta:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Deskripsi Singkat:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Deskripsi Metode:"
@@ -1971,7 +1968,9 @@ msgstr "Error menyimpan resource!"
msgid "Save Resource As.."
msgstr "Simpan Resource Sebagai.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
#, fuzzy
msgid "I see.."
msgstr "Aku tahu.."
@@ -2212,7 +2211,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Pilih sebuah Scene Utama"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
#, fuzzy
msgid "Ugh"
msgstr "Wadoo"
@@ -2896,6 +2897,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -3123,6 +3125,11 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#, fuzzy
+msgid "Root Node Name:"
+msgstr "Nama Node:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -4022,6 +4029,50 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Ubah Tipe Nilai Array"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4887,18 +4938,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5661,6 +5700,67 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Buat Folder"
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Transisi"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Karakter sah:"
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -6120,10 +6220,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6267,7 +6363,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6301,10 +6397,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6383,14 +6475,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6399,10 +6483,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6441,10 +6521,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6469,10 +6545,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6511,8 +6583,14 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Script"
+msgstr "Scene Baru"
+
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Scene Baru"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6537,13 +6615,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6639,6 +6715,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Error memuat font."
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6651,15 +6732,16 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "Buat Subskribsi"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6671,8 +6753,9 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Node Script"
+msgstr "Scene Baru"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6795,8 +6878,9 @@ msgid "Live Edit Root:"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Set From Tree"
-msgstr ""
+msgstr "Menyetel Dari Keturunan"
#: tools/editor/settings_config_dialog.cpp
msgid "Shortcuts"
@@ -6804,19 +6888,21 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
-msgstr ""
+msgstr "Ganti Radius Lampu"
#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Camera FOV"
-msgstr ""
+msgstr "Ganti FOV Kamera"
#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
msgid "Change Camera Size"
-msgstr ""
+msgstr "Ganti Ukuran Kamera"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Sphere Shape Radius"
-msgstr ""
+msgstr "Ganti Radius Bentuk Bola"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Box Shape Extents"
@@ -6838,6 +6924,21 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance tidak berisi resource BakedLight."
+
+#, fuzzy
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "Path tidak bisa diawali dengan '/', tetapi absolut path harus diawali "
+#~ "dengan 'res://', 'user://', atau 'local://'"
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/it.po b/tools/translations/it.po
index 1fa6a89605..f49c953a7d 100644
--- a/tools/translations/it.po
+++ b/tools/translations/it.po
@@ -1,5 +1,5 @@
# Italian translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Dario Bonfanti <bonfi.96@hotmail.it>, 2016.
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-09-10 22:09+0000\n"
+"PO-Revision-Date: 2016-11-22 20:27+0000\n"
"Last-Translator: Dario Bonfanti <bonfi.96@hotmail.it>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.8\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -36,12 +36,6 @@ msgid "step argument is zero!"
msgstr "step argument è zero!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "Non è uno script con un istanza"
@@ -171,9 +165,8 @@ msgid "Editing Signal:"
msgstr "Modifica Segnale:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Expression"
-msgstr "Cambia Tipo"
+msgstr "Cambia Espressione"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
@@ -224,40 +217,36 @@ msgid "Add Setter Property"
msgstr "Aggiungi Proprietà Setter"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "Copia Animazione"
+msgstr "Condizione"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Sequenza"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Switch"
-msgstr "Pitch"
+msgstr "Interruttore"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Iteratore"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Mentre"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Return"
-msgstr "Ritorna:"
+msgstr "Ritorna"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
msgstr "Chiama"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Get"
-msgstr "Set"
+msgstr "Get"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
@@ -399,87 +388,99 @@ msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "appena premuto"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "appena rilasciato"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"Impossibile leggere il file del certificatio. Il percorso e la pasword sono "
+"entrambi corretti?"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr "Errore di scrittura del PCK del progetto!"
+msgstr "Errore in creazione del signature object."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Errore di creazione della firma del pacchetto."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"Nessun template di esportazione trovato.\n"
+"Scarica ed installa i template di esportazione."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "Pacchetto di debug personalizzato non trovato."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "Pacchetto di release personalizzato non trovato."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "Nome Invalido."
+msgstr "Nome unico invalido."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "Dimensione font Invalida."
+msgstr "GUID prodotto invalido."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "Percorso di base invalido"
+msgstr "GUID publisher invalido."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr "Sorgente font personalizzato invalido."
+msgstr "Colore di background invalido."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
+"Dimensioni dell'immagine dello Store Logo invalide (dovrebbero essere 50x50)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
+"Dimensioni non valide dell'immagine del logo quadrato 44x44 (dovrebbero "
+"essere 44x44)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
+"Dimensioni non valide dell'immagine del logo quadrato 71x71 (dovrebbero "
+"essere 71x71)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
+"Dimensioni non valide dell'immagine del logo quadrato 150x150 (dovrebbero "
+"essere 150x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
+"Dimensioni non valide dell'immagine del logo quadrato 310x310 (dovrebbero "
+"essere 310x310)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
+"Dimensioni non valide dell'immagine del logo quadrato 310x150 (dovrebbero "
+"essere 310x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
+"Dimensioni non valide dell'immagine dello splash screen (dovrebbero essere "
+"620x300)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -626,10 +627,6 @@ msgstr ""
"VisibilityEnable2D funziona al meglio quando usato direttamente come "
"genitore con il root della scena modificata."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance non contiene una risorsa BakedLight."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -678,11 +675,10 @@ msgstr ""
"Fornisce solamente dati per la navigazione."
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid "Path property must point to a valid Spatial node to work."
msgstr ""
-"La proprietà path deve puntare a un nodo Particles2D valido per poter "
-"funzionare."
+"La proprietà path deve puntare ad un nodo Spaziale (Spatial) valido per "
+"poter funzionare."
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -711,7 +707,8 @@ msgstr ""
msgid "Cancel"
msgstr "Annulla"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "OK"
@@ -1457,6 +1454,8 @@ msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"Metodo di destinazione non trovato! Specifica un metodo valido o annetti uno "
+"script al nodo di destinazione."
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
@@ -1875,6 +1874,11 @@ msgid "Constants:"
msgstr "Costanti:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Breve Descrizione:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Descrizione Metodo:"
@@ -1942,7 +1946,9 @@ msgstr "Errore salvando la Risorsa!"
msgid "Save Resource As.."
msgstr "Salva Risorsa Come.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Capisco.."
@@ -2182,7 +2188,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Scegli una Scena Principale"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "Ugh"
@@ -2503,9 +2511,8 @@ msgid "Editor Layout"
msgstr "Layout dell'Editor"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Toggle Fullscreen"
-msgstr "Modalità Fullscreen"
+msgstr "Abilita/Disabilita Fullscreen"
#: tools/editor/editor_node.cpp
msgid "Install Export Templates"
@@ -2533,7 +2540,7 @@ msgstr "Aggiorna Cambiamenti"
#: tools/editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Disabilita lo Spinner di Update"
#: tools/editor/editor_node.cpp
msgid "Inspector"
@@ -2890,6 +2897,7 @@ msgstr "Texture Sorgenti:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Percorso di destinazione:"
@@ -3121,6 +3129,10 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr "Nome Nodo di Root:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "I File Seguenti sono Mancanti:"
@@ -3964,9 +3976,8 @@ msgid "Clear Bones"
msgstr "Elimina Ossa"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Bones"
-msgstr "Crea Ossa"
+msgstr "Mostra Ossa"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -4029,6 +4040,51 @@ msgstr "Imposta un Valore"
msgid "Snap (Pixels):"
msgstr "Snap (Pixels):"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr "Aggiungi %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr "Aggiungendo %s..."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Crea Nodo"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "Errore istanziamento scena da %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Nessun genitore del quale istanziare un figlio."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "Questa operazione richiede un solo nodo selezionato."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr "Cambia tipo di default"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+"Premi & Trascina + Shift : Aggiungi nodo come fratello\n"
+"Premi & Trascina + Alt : Cambia tipo del nodo"
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4709,9 +4765,8 @@ msgid "Close Docs"
msgstr "Chiudi Documentazione"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "Chiudi"
+msgstr "Chiudi Tutto"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
@@ -4826,9 +4881,8 @@ msgstr ""
"cui appartengono è caricata"
#: tools/editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Pick Color"
-msgstr "Colore"
+msgstr "Scegli Colore"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
@@ -4901,18 +4955,6 @@ msgstr "Vai a Linea.."
msgid "Contextual Help"
msgstr "Aiuto Contestuale"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "Vertice"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "Frammento"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "Illuminazione"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr "Cambia Costante Scalare"
@@ -5206,9 +5248,8 @@ msgid "Insert Animation Key"
msgstr "Inserisci Key Animazione"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Focus Origin"
-msgstr "Visualizza Origine"
+msgstr "Focalizza su Origine"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
@@ -5476,9 +5517,8 @@ msgid "Remove Item"
msgstr "Rimuovi Elemento"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme"
-msgstr "Salva Tema"
+msgstr "Tema"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5677,6 +5717,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "Per ora non vi è esportatore per la piattaforma '%s'."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Crea Nuova Risorsa"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Nome valido"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Transizione"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "Stato:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Password:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Caratteri validi:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Nuovo nome:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "Includi"
@@ -6142,10 +6247,6 @@ msgid "Erase Input Action Event"
msgstr "Elimina Evento di Azione Input"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr "Attiva Persistenza"
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "Errore nel salvare le impostazioni."
@@ -6289,7 +6390,7 @@ msgstr "File.."
msgid "Dir.."
msgstr "Dir.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "Carica"
@@ -6298,9 +6399,8 @@ msgid "Assign"
msgstr "Assegna"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "Script successivo"
+msgstr "Nuovo Script"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
@@ -6323,10 +6423,6 @@ msgid "Properties:"
msgstr "Proprietà:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Globale"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Sezioni:"
@@ -6403,14 +6499,6 @@ msgid "Scene Run Settings"
msgstr "Impostazioni Esecuzione Scena"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Nessun genitore del quale istanziare un figlio."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr "Nessun genitore nel quale istanziare una scena."
@@ -6419,10 +6507,6 @@ msgid "Error loading scene from %s"
msgstr "Errore caricamento scena da %s"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Errore istanziamento scena da %s"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Ok"
@@ -6463,10 +6547,6 @@ msgid "This operation can't be done without a scene."
msgstr "Questa operazione non può essere eseguita senza una scena."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "Questa operazione richiede un solo nodo selezionato."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "Questa operazione no può essere eseguita su scene istanziate."
@@ -6491,10 +6571,6 @@ msgid "Remove Node(s)"
msgstr "Rimuovi nodo(i)"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Crea Nodo"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6535,8 +6611,12 @@ msgid "Change Type"
msgstr "Cambia Tipo"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr "Aggiungi Script"
+msgid "Attach Script"
+msgstr "Allega Script"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr "Svuota Script"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6563,16 +6643,12 @@ msgstr ""
"root esiste."
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
-msgstr "Crea un nuovo script per il nodo selezionato."
+msgid "Attach a new or existing script for the selected node."
+msgstr "Allega un nuovo script o uno esistente al nodo selezionato."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"Questo elemento non può essere reso visibile perchè il genitore è nascosto. "
-"Rivela prima il genitore."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr "Svuota uno script per il nodo selezionato."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6667,6 +6743,10 @@ msgid "Could not create script in filesystem."
msgstr "Impossibile creare script in filesystem."
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr "Errore caricamento script da %s"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "Percorso vuoto"
@@ -6679,16 +6759,16 @@ msgid "Invalid base path"
msgstr "Percorso di base invalido"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "File esistente"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "Estensione Invalida"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Percorso valido"
+msgid "Create new script"
+msgstr "Crea nuovo script"
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Load existing script"
+msgstr "Carica script esistente"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6699,8 +6779,8 @@ msgid "Built-In Script"
msgstr "Built-In Script"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr "Crea Script Nodo"
+msgid "Attach Node Script"
+msgstr "Allega Script Nodo"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6866,6 +6946,49 @@ msgstr "Cambia lunghezza Ray Shape"
msgid "Change Notifier Extents"
msgstr "Cambia Estensione di Notifier"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Cambia Estensione di Notifier"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance non contiene una risorsa BakedLight."
+
+#~ msgid "Vertex"
+#~ msgstr "Vertice"
+
+#~ msgid "Fragment"
+#~ msgstr "Frammento"
+
+#~ msgid "Lighting"
+#~ msgstr "Illuminazione"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "Attiva Persistenza"
+
+#~ msgid "Global"
+#~ msgstr "Globale"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Questo elemento non può essere reso visibile perchè il genitore è "
+#~ "nascosto. Rivela prima il genitore."
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "I percorsi non possono iniziare per '/', i percorsi assoluti devono "
+#~ "iniziare per 'res://', 'user://', oppure 'local://'"
+
+#~ msgid "File exists"
+#~ msgstr "File esistente"
+
+#~ msgid "Valid path"
+#~ msgstr "Percorso valido"
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/ja.po b/tools/translations/ja.po
index 25003026c1..279f59c9c8 100644
--- a/tools/translations/ja.po
+++ b/tools/translations/ja.po
@@ -1,21 +1,22 @@
# Japanese translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
+# akirakido <achts.y@gmail.com>, 2016.
# hopping tappy (たっぴさん) <hopping.tappy@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-07-16 08:16+0000\n"
-"Last-Translator: hopping tappy (たっぴさん) <hopping.tappy@gmail.com>\n"
+"PO-Revision-Date: 2016-11-12 15:11+0000\n"
+"Last-Translator: akirakido <achts.y@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
"Language: ja\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 2.8-dev\n"
+"X-Generator: Weblate 2.9\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -34,12 +35,6 @@ msgid "step argument is zero!"
msgstr "ステップ引数はゼロです!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "インスタンスを使用していないスクリプトです"
@@ -400,76 +395,76 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "無効なフォント サイズです。"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "無効なフォント サイズです。"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -612,10 +607,6 @@ msgstr ""
"VisibilityEnable2D は、親として直接編集されたシーンのルートを使用する場合に最"
"適です。"
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -698,7 +689,8 @@ msgstr ""
msgid "Cancel"
msgstr "キャンセル"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "決定"
@@ -1851,6 +1843,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1919,7 +1915,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2154,7 +2152,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2835,6 +2835,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -3062,6 +3063,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3963,6 +3968,50 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "配列の値の種類の変更"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4829,18 +4878,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5603,6 +5640,66 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "フォルダを作成"
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "遷移"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -6062,10 +6159,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6209,7 +6302,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6242,10 +6335,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6324,14 +6413,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6340,10 +6421,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6382,10 +6459,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6410,10 +6483,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6452,7 +6521,11 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -6479,13 +6552,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6581,6 +6652,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "フォント読み込みエラー。"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6593,15 +6669,16 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "フォルダを作成"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6613,7 +6690,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6779,3 +6856,15 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#, fuzzy
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "パスは「/」で始めることができません。絶対パスは必ず「res://」「user://」"
+#~ "「local://」 で始まる必要があります。"
diff --git a/tools/translations/ko.po b/tools/translations/ko.po
index a4d24d8b52..ea2b130d37 100644
--- a/tools/translations/ko.po
+++ b/tools/translations/ko.po
@@ -1,5 +1,5 @@
# Korean translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# 박한얼 (volzhs) <volzhs@gmail.com>, 2016.
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-09-26 13:04+0000\n"
+"PO-Revision-Date: 2016-11-23 14:38+0000\n"
"Last-Translator: 박한얼 <volzhs@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 2.9-dev\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -35,12 +35,6 @@ msgid "step argument is zero!"
msgstr "스텝 인자가 제로입니다!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "스크립트의 인스턴스가 아님"
@@ -165,9 +159,8 @@ msgid "Editing Signal:"
msgstr "시그널 편집:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Expression"
-msgstr "타입 변경"
+msgstr "표현식 변경"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
@@ -214,18 +207,16 @@ msgid "Add Setter Property"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "애니메이션 복사"
+msgstr "조건"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Switch"
-msgstr "피치"
+msgstr "스위치"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
@@ -236,18 +227,16 @@ msgid "While"
msgstr ""
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Return"
-msgstr "리턴:"
+msgstr "리턴"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
msgstr "호출"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Get"
-msgstr "설정"
+msgstr "얻기"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
@@ -391,81 +380,79 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
-msgstr ""
+msgstr "인증서 파일을 읽을 수 없습니다. 경로와 비밀번호가 정확합니까?"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr "프로젝트 PCK 작성중 에러!"
+msgstr "서명 오브젝트 생성중 에러."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "패키지 서명을 생성하는 중 에러가 발생했습니다."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"내보내기 템플릿을 찾을 수 없습니다.\n"
+"내보내기 템플릿을 다운로드하여 설치하십시요."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "커스텀 디버그 패키지를 찾을 수 없습니다."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "커스텀 릴리즈 패키지를 찾을 수 없습니다."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "유효하지 않은 이름."
+msgstr "유효하지 않은 고유 이름."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "유요하지 않은 폰트 사이즈."
+msgstr "유요하지 않은 프로덕트 GUID."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "기본 경로가 유요하지 않음"
+msgstr "유요하지 않은 퍼블리셔 GUID."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr "사용자 지정 폰트 소스가 유효하지 않습니다."
+msgstr "유요하지 않은 배경 색상."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (50x50 이어야 합니다)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (44x44 이어야 합니다)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (71x71 이어야 합니다)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (150x150 이어야 합니다)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (310x310 이어야 합니다)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (310x150 이어야 합니다)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
+"유효하지 않은 스플래쉬 스크린 이미지 크기입니다 (620x300 이어야 합니다)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -597,10 +584,6 @@ msgstr ""
"VisibilityEnable2D는 편집 씬의 루트의 하위 노드로 추가할 때 가장 잘 동작합니"
"다."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance가 BakedLight 리소스를 가지고 있지 않습니다."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -648,9 +631,8 @@ msgstr ""
"게이션 데이타만을 제공합니다."
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid "Path property must point to a valid Spatial node to work."
-msgstr "Path 속성은 유효한 Particles2D 노드를 가리켜야 합니다."
+msgstr "Path 속성은 유효한 Spatial 노드를 가리켜야 합니다."
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -677,7 +659,8 @@ msgstr ""
msgid "Cancel"
msgstr "취소"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "확인"
@@ -1195,7 +1178,7 @@ msgstr "최적화"
#: tools/editor/animation_editor.cpp
msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
-msgstr ""
+msgstr "애니메이션 편집을 위해서는 씬에서 AnimationPlayer를 선택해야 합니다."
#: tools/editor/animation_editor.cpp
msgid "Key"
@@ -1402,7 +1385,7 @@ msgstr "축소"
#: tools/editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr ""
+msgstr "줌 리셋"
#: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp
msgid "Line:"
@@ -1421,6 +1404,8 @@ msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"타겟 메소드를 찾을 수 없습니다! 유효한 메소드를 지정하거나, 타겟 노드에 스크"
+"립트를 추가하세요."
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
@@ -1834,6 +1819,11 @@ msgid "Constants:"
msgstr "상수:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "간단한 설명:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "함수 설명:"
@@ -1901,7 +1891,9 @@ msgstr "리소스 저장 중 에러!"
msgid "Save Resource As.."
msgstr "리소스를 다른 이름으로 저장.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "알겠습니다.."
@@ -2135,7 +2127,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "메인 씬 선택"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "오우"
@@ -2456,9 +2450,8 @@ msgid "Editor Layout"
msgstr "에디터 레이아웃"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Toggle Fullscreen"
-msgstr "전체화면 모드"
+msgstr "전체화면 토글"
#: tools/editor/editor_node.cpp
msgid "Install Export Templates"
@@ -2486,7 +2479,7 @@ msgstr "변경사항만 갱신"
#: tools/editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "업데이트 스피너 비활성화"
#: tools/editor/editor_node.cpp
msgid "Inspector"
@@ -2838,6 +2831,7 @@ msgstr "소스 텍스쳐:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "대상 경로:"
@@ -3069,6 +3063,10 @@ msgid "Auto"
msgstr "자동"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr "루트 노드 이름:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "다음의 파일들이 빠져있습니다:"
@@ -3909,9 +3907,8 @@ msgid "Clear Bones"
msgstr "Bones 없애기"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Bones"
-msgstr "Bones 만들기"
+msgstr "뼈대 보기"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -3974,6 +3971,51 @@ msgstr "값 설정"
msgid "Snap (Pixels):"
msgstr "스냅 (픽셀):"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr "%s 추가"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr "%s 추가중..."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "노드 생성"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "'%s' 로부터 씬 인스턴스 중 에러"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "넹 :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "선택된 부모 노드가 없어서 자식노드를 인스턴스할 수 없습니다."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "이 작업은 하나의 선택된 노드를 필요로 합니다."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr "기본 타입 변경"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+"드래그 & 드랍 + 쉬프트 : 형제 노드로 추가\n"
+"드래그 & 드랍 + 알트 : 노드 타입 변경"
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4652,9 +4694,8 @@ msgid "Close Docs"
msgstr "문서 닫기"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "닫기"
+msgstr "모두 닫기"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
@@ -4767,9 +4808,8 @@ msgid ""
msgstr "내장 스크립트는 종속된 씬이 열린 상태에서만 편집이 가능합니다"
#: tools/editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Pick Color"
-msgstr "색깔"
+msgstr "색상 선택"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
@@ -4842,18 +4882,6 @@ msgstr "라인으로 이동.."
msgid "Contextual Help"
msgstr "도움말 보기"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "버텍스"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "프래그먼트"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "라이팅"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr "Scalar 상수 변경"
@@ -5147,7 +5175,6 @@ msgid "Insert Animation Key"
msgstr "애니메이션 키 삽입"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Focus Origin"
msgstr "원점 보기"
@@ -5417,9 +5444,8 @@ msgid "Remove Item"
msgstr "아이템 삭제"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme"
-msgstr "테마 저장"
+msgstr "테마"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5618,6 +5644,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "'%s' 플랫폼으로 내보내기 위한 템플릿 파일이 없습니다."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "새 리소스 만들기"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "유요한 이름"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "전환"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "상태:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "암호:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "유효한 문자:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "새 이름:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "포함"
@@ -5951,7 +6042,7 @@ msgstr ""
msgid ""
"You are about the scan %s folders for existing Godot projects. Do you "
"confirm?"
-msgstr ""
+msgstr "%s 에서 기존 Godot 프로젝트들을 스캔하려고 합니다. 진행하시겠습니까?"
#: tools/editor/project_manager.cpp
msgid "Project Manager"
@@ -6078,10 +6169,6 @@ msgid "Erase Input Action Event"
msgstr "입력 액션 이벤트 삭제"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr "지속 전환"
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "설정 저장 중 에러."
@@ -6225,7 +6312,7 @@ msgstr "파일.."
msgid "Dir.."
msgstr "디렉토리.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "로드"
@@ -6234,9 +6321,8 @@ msgid "Assign"
msgstr "할당"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "다음 스크립트"
+msgstr "새 스크립트"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
@@ -6259,10 +6345,6 @@ msgid "Properties:"
msgstr "속성:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Global"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "부문:"
@@ -6339,14 +6421,6 @@ msgid "Scene Run Settings"
msgstr "씬 실행 설정"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "넹 :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "선택된 부모 노드가 없어서 자식노드를 인스턴스할 수 없습니다."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr "씬을 인스턴스할 수 있는 부모가 없습니다."
@@ -6355,10 +6429,6 @@ msgid "Error loading scene from %s"
msgstr "'%s' 로부터 씬 로딩 중 에러"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "'%s' 로부터 씬 인스턴스 중 에러"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "확인"
@@ -6397,10 +6467,6 @@ msgid "This operation can't be done without a scene."
msgstr "이 작업은 씬 없이는 불가합니다."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "이 작업은 하나의 선택된 노드를 필요로 합니다."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "이 작업은 인스턴스된 씬에서는 불가합니다."
@@ -6425,10 +6491,6 @@ msgid "Remove Node(s)"
msgstr "노드 삭제"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "노드 생성"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6468,8 +6530,12 @@ msgid "Change Type"
msgstr "타입 변경"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr "스크립트 추가"
+msgid "Attach Script"
+msgstr "스크립트 붙이기"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr "스크립트 제거"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6495,16 +6561,12 @@ msgstr ""
"씬 파일을 노드로 추가합니다. 루트 노드가 없을 경우, 상속씬으로 만들어집니다."
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
-msgstr "선택된 노드에 새로운 스크립트를 생성합니다."
+msgid "Attach a new or existing script for the selected node."
+msgstr "선택된 노드에 새로운 스크립트를 생성하거나 기존 스크립트를 로드합니다."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"부모 노드가 숨겨져 있기 때문에 이 항목을 보이도록 만들 수 없습니다. 부모 노드"
-"를 먼저 보이도록 하세요."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr "선택된 노드의 스크립트를 제거합니다."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6599,6 +6661,10 @@ msgid "Could not create script in filesystem."
msgstr "파일 시스템에 스크립트를 생성할 수 없습니다."
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr "'%s' 스크립트 로딩 중 에러"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "경로가 비어 있음"
@@ -6611,16 +6677,16 @@ msgid "Invalid base path"
msgstr "기본 경로가 유요하지 않음"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "파일이 존재함"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "확장자가 유요하지 않음"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "유요한 경로"
+msgid "Create new script"
+msgstr "새 스크립트 만들기"
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Load existing script"
+msgstr "기존 스크립트 로드하기"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6631,8 +6697,8 @@ msgid "Built-In Script"
msgstr "내장 스크립트"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr "노드 스크립트 생성"
+msgid "Attach Node Script"
+msgstr "노드 스크립트 붙이기"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6798,6 +6864,49 @@ msgstr "Ray Shape 길이 변경"
msgid "Change Notifier Extents"
msgstr "Notifier 범위 변경"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Notifier 범위 변경"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance가 BakedLight 리소스를 가지고 있지 않습니다."
+
+#~ msgid "Vertex"
+#~ msgstr "버텍스"
+
+#~ msgid "Fragment"
+#~ msgstr "프래그먼트"
+
+#~ msgid "Lighting"
+#~ msgstr "라이팅"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "지속 전환"
+
+#~ msgid "Global"
+#~ msgstr "Global"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "부모 노드가 숨겨져 있기 때문에 이 항목을 보이도록 만들 수 없습니다. 부모 "
+#~ "노드를 먼저 보이도록 하세요."
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "경로는 '/'로 시작할 수 없습니다. 'res://', 'user://', 또는 'local://'로 시"
+#~ "작하는 절대 경로를 사용해야 합니다"
+
+#~ msgid "File exists"
+#~ msgstr "파일이 존재함"
+
+#~ msgid "Valid path"
+#~ msgstr "유요한 경로"
+
#~ msgid "Cannot go into subdir:"
#~ msgstr "하위 디렉토리로 이동할 수 없습니다:"
diff --git a/tools/translations/nb.po b/tools/translations/nb.po
index d8d1a2771b..ff659eae8b 100644
--- a/tools/translations/nb.po
+++ b/tools/translations/nb.po
@@ -1,5 +1,5 @@
# Norwegian Bokmål translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Jørgen Aarmo Lund <jorgen.aarmo@gmail.com>, 2016.
@@ -32,12 +32,6 @@ msgid "step argument is zero!"
msgstr ""
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr ""
@@ -381,74 +375,74 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -556,10 +550,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -619,7 +609,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1762,6 +1753,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1829,7 +1824,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2054,7 +2051,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2734,6 +2733,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2961,6 +2961,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3860,6 +3864,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4724,18 +4771,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5498,6 +5533,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5957,10 +6050,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6104,7 +6193,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6137,10 +6226,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6217,14 +6302,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6233,10 +6310,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6275,10 +6348,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6303,10 +6372,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6345,7 +6410,11 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -6371,13 +6440,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6473,6 +6540,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6485,15 +6556,15 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
+msgid "Create new script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6505,7 +6576,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6671,3 +6742,7 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
diff --git a/tools/translations/pl.po b/tools/translations/pl.po
index 78b1964fad..465fbe133d 100644
--- a/tools/translations/pl.po
+++ b/tools/translations/pl.po
@@ -1,9 +1,11 @@
# Polish translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
+# 8-bit Pixel <dawdejw@gmail.com>, 2016.
# Adrian Węcławski <weclawskiadrian@gmail.com>, 2016.
# Daniel Lewan <vision360.daniel@gmail.com>, 2016.
+# Kajetan Kuszczyński <kajetanek99@gmail.com>, 2016.
# Kamil Lewan <lewan.kamil@gmail.com>, 2016.
# Karol Walasek <coreconviction@gmail.com>, 2016.
# Mietek Szcześniak <ravaging@go2.pl>, 2016.
@@ -13,8 +15,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-08-16 18:01+0000\n"
-"Last-Translator: Mietek Szcześniak <ravaging@go2.pl>\n"
+"PO-Revision-Date: 2016-12-29 16:37+0000\n"
+"Last-Translator: 8-bit Pixel <dawdejw@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
"Language: pl\n"
@@ -22,31 +24,26 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 2.8-dev\n"
+"X-Generator: Weblate 2.11-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Niepoprawny typ argumentu funkcji convert(), użyj stałej TYPE_*."
+msgstr "Niepoprawny typ argumentu funkcji convert(), użyj stałych TYPE_*."
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "Brak miejsca dla bajtów dekodujących, lub zły format."
+msgstr ""
+"Niewystarczająca ilość bajtów dla bajtów dekodujących, albo zły format."
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr "argument kroku jest zerowy!"
-
-#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
+msgstr "argument kroku wynosi zero!"
#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
-msgstr "Nie jest to skrypt z instancją"
+msgstr "To nie jest skrypt z instancją"
#: modules/gdscript/gd_functions.cpp
msgid "Not based on a script"
@@ -402,79 +399,79 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Error creating the signature object."
msgstr "Błąd przy eksporcie projektu!"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "Niewłaściwa nazwa."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "Niepoprawny rozmiar fonta."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid publisher GUID."
msgstr "Niepoprawna ścieżka bazowa"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid background color."
msgstr "Nie rozpoznano typu czcionki."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -615,10 +612,6 @@ msgstr ""
"VisibilityEnable2D działa najlepiej, gdy jest bezpośrednio pod korzeniem "
"aktualnie edytowanej sceny."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -698,7 +691,8 @@ msgstr ""
msgid "Cancel"
msgstr "Anuluj"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "OK"
@@ -1854,6 +1848,11 @@ msgid "Constants:"
msgstr "Stałe:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Krótki opis:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Opis Metody:"
@@ -1921,7 +1920,9 @@ msgstr "Błąd podczas zapisu zasobu!"
msgid "Save Resource As.."
msgstr "Zapisz zasób jako..."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Widzę.."
@@ -2159,7 +2160,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Wybierz główną scenę"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
#, fuzzy
msgid "Ugh"
msgstr "Błąd"
@@ -2865,6 +2868,7 @@ msgstr "Źródło tekstury:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Ścieżka docelowa:"
@@ -3094,6 +3098,11 @@ msgid "Auto"
msgstr "Automatyczny"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#, fuzzy
+msgid "Root Node Name:"
+msgstr "Nazwa węzła:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "Brakuje następujących plików:"
@@ -4002,6 +4011,51 @@ msgstr "Ustaw Wartość"
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Add %s"
+msgstr "Dodaj wszystko"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Utwórz węzeł"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Zmień Wartość Domyślną"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4868,18 +4922,6 @@ msgstr "Przejdź do linii.."
msgid "Contextual Help"
msgstr "Pomoc kontekstowa"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "Wierzchołek"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5643,6 +5685,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "Brak jeszcze eksportu dla platformy '%s'."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Utwórz nowy zasób"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Poprawna nazwa"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Przejście"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "Status:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Hasło:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Dopuszczalne znaki:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Nowa nazwa:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "Zawiera"
@@ -6102,10 +6209,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "Błąd zapisu ustawień."
@@ -6249,7 +6352,7 @@ msgstr "Plik.."
msgid "Dir.."
msgstr "Katalog.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "Wczytaj"
@@ -6283,10 +6386,6 @@ msgid "Properties:"
msgstr "Właściwości:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Globalne"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6322,7 +6421,7 @@ msgstr ""
#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr ""
+msgstr "Zmień nadrzędny"
#: tools/editor/resources_dock.cpp
msgid "Create New Resource"
@@ -6365,14 +6464,6 @@ msgid "Scene Run Settings"
msgstr "Ustawienia uruchomienia sceny"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6381,10 +6472,6 @@ msgid "Error loading scene from %s"
msgstr "Błąd przy ładowaniu sceny z %s"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Ok"
@@ -6400,15 +6487,16 @@ msgstr ""
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
-msgstr ""
+msgstr "Nie można wykonać tej operacji na głównym węźle drzewa."
#: tools/editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Move Nodes In Parent"
-msgstr ""
+msgstr "Przenieść węzły do węzła nadrzędnego."
#: tools/editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
@@ -6423,12 +6511,8 @@ msgid "This operation can't be done without a scene."
msgstr "Ta operacja nie może zostać wykonana bez sceny."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
-msgstr ""
+msgstr "Tej operacji nie można wykonać na dziedziczącej scenie."
#: tools/editor/scene_tree_dock.cpp
msgid "Save New Scene As.."
@@ -6451,22 +6535,21 @@ msgid "Remove Node(s)"
msgstr "Usuń węzeł(y)"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Utwórz węzeł"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
msgstr ""
+"Nie udało się zapisać sceny. Najprawdopodobniej pewne zależności nie są "
+"spełnione."
#: tools/editor/scene_tree_dock.cpp
msgid "Error saving scene."
msgstr "Błąd podczas zapisywania sceny."
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
msgid "Error duplicating scene to save it."
-msgstr ""
+msgstr "Błąd duplikowania sceny przy zapisywaniu."
#: tools/editor/scene_tree_dock.cpp
msgid "Edit Groups"
@@ -6493,10 +6576,16 @@ msgid "Change Type"
msgstr "Zmień typ"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+#, fuzzy
+msgid "Attach Script"
msgstr "Dodaj skrypt"
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Utwórz Skrypt"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr "Dołącz ze sceny"
@@ -6519,24 +6608,22 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script for the selected node."
msgstr "Utwórz nowy skrypt dla zaznaczonego węzła."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"Ten obiekt nie może być widoczny ponieważ jego rodzic jest ukryty. Odkryj "
-"najpierw rodzica."
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear a script for the selected node."
+msgstr "Utwórz nowy skrypt dla zaznaczonego węzła."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
-msgstr ""
+msgstr "Przełącz widoczność Spatial"
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle CanvasItem Visible"
-msgstr ""
+msgstr "Przełącz widoczność CanvasItem"
#: tools/editor/scene_tree_editor.cpp
msgid "Instance:"
@@ -6556,15 +6643,16 @@ msgstr "Drzewo sceny (węzły):"
#: tools/editor/scene_tree_editor.cpp
msgid "Editable Children"
-msgstr ""
+msgstr "Edytowalne dzieci"
#: tools/editor/scene_tree_editor.cpp
msgid "Load As Placeholder"
-msgstr ""
+msgstr "Załaduj jako zastępczy"
#: tools/editor/scene_tree_editor.cpp
+#, fuzzy
msgid "Discard Instancing"
-msgstr ""
+msgstr "Odrzuć instancjonowanie"
#: tools/editor/scene_tree_editor.cpp
msgid "Open in Editor"
@@ -6623,6 +6711,11 @@ msgid "Could not create script in filesystem."
msgstr "Nie można było utworzyć skryptu w systemie plików."
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Błąd przy ładowaniu sceny z %s"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "Ścieżka jest pusta"
@@ -6635,16 +6728,18 @@ msgid "Invalid base path"
msgstr "Niepoprawna ścieżka bazowa"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "Plik Istnieje"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "Niepoprawne rozszerzenie"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Poprawna ścieżka"
+#, fuzzy
+msgid "Create new script"
+msgstr "Utwórz Skrypt"
+
+#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Load existing script"
+msgstr "Następny skrypt"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6655,7 +6750,8 @@ msgid "Built-In Script"
msgstr "Wbudowany skrypt"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+#, fuzzy
+msgid "Attach Node Script"
msgstr "Utwórz skrypt dla węzła"
#: tools/editor/script_editor_debugger.cpp
@@ -6822,6 +6918,37 @@ msgstr "Zmień długość Ray Shape"
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Zmień rozmiar Box Shape"
+
+#~ msgid "Vertex"
+#~ msgstr "Wierzchołek"
+
+#~ msgid "Global"
+#~ msgstr "Globalne"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Ten obiekt nie może być widoczny ponieważ jego rodzic jest ukryty. Odkryj "
+#~ "najpierw rodzica."
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "Ścieżki nie mogą zaczynać się od '/', ścieżki absolutne muszą zaczynać "
+#~ "się od 'res://', 'user://', lub 'local://'"
+
+#~ msgid "File exists"
+#~ msgstr "Plik Istnieje"
+
+#~ msgid "Valid path"
+#~ msgstr "Poprawna ścieżka"
+
#~ msgid "Cannot go into subdir:"
#~ msgstr "Nie można iść do podkatalogu:"
diff --git a/tools/translations/ro.po b/tools/translations/pr.po
index e4782fec64..f8a9505066 100644
--- a/tools/translations/ro.po
+++ b/tools/translations/pr.po
@@ -1,173 +1,191 @@
-# Romanian translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Pirate translation of the Godot Engine editor
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Zion Nimchuk <zionnimchuk@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"Language: ro\n"
+"PO-Revision-Date: 2016-11-14 19:48+0000\n"
+"Last-Translator: Zion Nimchuk <zionnimchuk@gmail.com>\n"
+"Language-Team: Pirate <https://hosted.weblate.org/projects/godot-engine/"
+"godot/pr/>\n"
+"Language: pr\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
msgstr ""
+"Shiver me timbers! ye type argument t' convert() be wrong! use yer TYPE_* "
+"constants!"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "Nah enough bytes fer decodin' bytes, or ye got th' wrong ship."
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
+msgstr "Blimey! Ye step argument be marooned!"
#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
-msgstr ""
+msgstr "Arr! Yer script is marooned!"
#: modules/gdscript/gd_functions.cpp
msgid "Not based on a script"
-msgstr ""
+msgstr "Ye be loaded to the gunwalls? It's anchorage be not on a script!"
#: modules/gdscript/gd_functions.cpp
msgid "Not based on a resource file"
-msgstr ""
+msgstr "Yer anchorage not be on a resource file, ye bilge rat!"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
+msgstr "Ye got th' wrong dictionary getup! (ye be missin' yer @path!)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
+msgstr "Ye got th' wrong dictionary getup! (yer script aint' at ye @path)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
msgstr ""
+"Ye got th' wrong dictionary getup! (ye be drinkin'? Ye got yerself a bad "
+"script at @path!)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
msgstr ""
+"Ye got th' wrong dictionary getup! (yer subclasses be walkin' the plank!)"
#: modules/visual_script/visual_script.cpp
msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
msgstr ""
+"Yer scurvy node yielded but she got n' workin' memry'! Ye should keep a "
+"lookout for em' docs, she knows how t' yield like yer captain!"
#: modules/visual_script/visual_script.cpp
msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
msgstr ""
+"Yer scurvy node yielded but er' booty didn't have no function state in er' "
+"maiden workin' memry'!"
#: modules/visual_script/visual_script.cpp
msgid ""
"Return value must be assigned to first element of node working memory! Fix "
"your node please."
msgstr ""
+"Yer value best be comin' back posted to ye first element of yer node's "
+"workin' memry'! Swab the decks!"
#: modules/visual_script/visual_script.cpp
msgid "Node returned an invalid sequence output: "
-msgstr ""
+msgstr "Blow the man down! Yer node's booty got ye n' a evil sequence output: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
msgstr ""
+"Arrr! I found yer sequence bit but there be no node in yer stack. Tell th' "
+"Captain!"
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
-msgstr ""
+msgstr "Avast! Yer stack has burst! Her depth be: "
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr ""
+msgstr "Yer functions:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
-msgstr ""
+msgstr "Yer variables:"
#: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp
msgid "Signals:"
-msgstr ""
+msgstr "Yer signals:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
-msgstr ""
+msgstr "Yer name's got no valid identifier: "
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
msgstr ""
+"Yer name be backstabin'! She be used by another dastardly func/var/signal:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
-msgstr ""
+msgstr "Rename Function"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Variable"
-msgstr ""
+msgstr "Rename Variable"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Signal"
-msgstr ""
+msgstr "Rename Signal"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
-msgstr ""
+msgstr "Add Function"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr ""
+msgstr "Add Variable"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
-msgstr ""
+msgstr "Add Signal"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr ""
+msgstr "Discharge ye' Function"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr ""
+msgstr "Discharge ye' Variable"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
-msgstr ""
+msgstr "Ye be fixin' Variable:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
-msgstr ""
+msgstr "Discharge ye' Signal"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Signal:"
-msgstr ""
+msgstr "Ye be fixin' Signal:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
-msgstr ""
+msgstr "Swap yer Expression"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
-msgstr ""
+msgstr "Add Node"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"Smash yer Meta t' sink yer Getter. Smash yer Shift t' sink a generic "
+"signature."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"Smash yer Ctrl t' sink yer Getter. Smash yer Shift t' sink a generic "
+"signature."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a simple reference to the node."
@@ -375,74 +393,74 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -550,10 +568,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -613,7 +627,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1756,6 +1771,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1823,7 +1842,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2048,7 +2069,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2728,6 +2751,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2955,6 +2979,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3854,6 +3882,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4718,18 +4789,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5492,6 +5551,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5951,10 +6068,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6098,7 +6211,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6131,10 +6244,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6211,14 +6320,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6227,10 +6328,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6269,10 +6366,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6297,10 +6390,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6339,7 +6428,11 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -6365,13 +6458,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6467,6 +6558,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6479,15 +6574,15 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
+msgid "Create new script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6499,7 +6594,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6665,3 +6760,14 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "Avast! Ye cannot steer yer ship with a '/'! Yer need t' start wit' "
+#~ "'res://', 'user://', or 'local://' ye knave!"
diff --git a/tools/translations/pt_BR.po b/tools/translations/pt_BR.po
index de8b9920a5..106142b4ea 100644
--- a/tools/translations/pt_BR.po
+++ b/tools/translations/pt_BR.po
@@ -1,5 +1,5 @@
# Portuguese (Brazil) translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# António Sarmento <antonio.luis.sarmento@gmail.com>, 2016.
@@ -37,12 +37,6 @@ msgid "step argument is zero!"
msgstr "o argumento step é zero!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "Não é um script com uma instância"
@@ -402,79 +396,79 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Error creating the signature object."
msgstr "Erro ao escrever o PCK do projeto!"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "Nome Inválido."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "Tamanho de fonte inválido."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid publisher GUID."
msgstr "Caminho base inválido"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid background color."
msgstr "Origem personalizada da fonte inválida."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -616,10 +610,6 @@ msgstr ""
"VisibilityEnable2D funciona melhor quando usado como filho direto da raiz da "
"cena atualmente editada."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance não contém um recurso BakedLight ."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -698,7 +688,8 @@ msgstr ""
msgid "Cancel"
msgstr "Cancelar"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "OK"
@@ -1858,6 +1849,11 @@ msgid "Constants:"
msgstr "Constantes:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Descrição breve:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Descrição do Método:"
@@ -1925,7 +1921,9 @@ msgstr "Erro ao salvar Recurso!"
msgid "Save Resource As.."
msgstr "Salvar Recuso como..."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Entendo..."
@@ -2163,7 +2161,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Escolha uma Cena Principal"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "Ugh"
@@ -2867,6 +2867,7 @@ msgstr "Textura(s) de Origem:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Caminho Destino:"
@@ -3100,6 +3101,11 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+#, fuzzy
+msgid "Root Node Name:"
+msgstr "Nome do Nó:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "Os Seguintes Arquivos estão Faltando:"
@@ -4012,6 +4018,51 @@ msgstr "Defina um Valor"
msgid "Snap (Pixels):"
msgstr "Snap (Pixels):"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Add %s"
+msgstr "Adicionar Todos"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Criar Nó"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "Erro ao instanciar cena de %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Sem nó pai onde instanciar um filho."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "Essa operação requer um único nó selecionado."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Change default type"
+msgstr "Alterar Valor Padrão"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4883,18 +4934,6 @@ msgstr "Ir para linha..."
msgid "Contextual Help"
msgstr "Ajuda Contextual"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "Vértice"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "Fragmento"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "Iluminação"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr "Alterar Constante Escalar"
@@ -5659,6 +5698,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "Ainda não há exportador para a plataforma \"%s\"."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Criar Novo Recurso"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Nome Válido"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Transição"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "Status:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Senha:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Caracteres válidos:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Novo nome:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "Incluir"
@@ -6125,10 +6229,6 @@ msgid "Erase Input Action Event"
msgstr "Apagar Evento Ação de Entrada"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr "Alternar Persistência"
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "Erro ao salvar as configurações."
@@ -6272,7 +6372,7 @@ msgstr "Arquivo..."
msgid "Dir.."
msgstr "Dir..."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "Carregar"
@@ -6306,10 +6406,6 @@ msgid "Properties:"
msgstr "Propriedades:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Global"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Seções:"
@@ -6388,14 +6484,6 @@ msgid "Scene Run Settings"
msgstr "Configurações de Carregamento da Cena"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Sem nó pai onde instanciar um filho."
-
-#: tools/editor/scene_tree_dock.cpp
#, fuzzy
msgid "No parent to instance the scenes at."
msgstr "Sem nó pai onde instanciar um filho."
@@ -6405,10 +6493,6 @@ msgid "Error loading scene from %s"
msgstr "Erro ao carregar cena de %s"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Erro ao instanciar cena de %s"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Ok"
@@ -6449,10 +6533,6 @@ msgid "This operation can't be done without a scene."
msgstr "Essa operação não pode ser realizada sem uma cena."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "Essa operação requer um único nó selecionado."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "Essa operação não pode ser realizada em cenas instanciadas."
@@ -6477,10 +6557,6 @@ msgid "Remove Node(s)"
msgstr "Remover Nó(s)"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Criar Nó"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6521,10 +6597,16 @@ msgid "Change Type"
msgstr "Alterar Tipo"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+#, fuzzy
+msgid "Attach Script"
msgstr "Adicionar Script"
#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Criar Script"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr "Fundir a Partir de Cena"
@@ -6549,16 +6631,14 @@ msgstr ""
"existe um nó raiz."
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+#, fuzzy
+msgid "Attach a new or existing script for the selected node."
msgstr "Criar um script novo para o nó selecionado."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"Este item não pode se tornar visível porque o pai está escondido. Reexiba o "
-"pai primeiro."
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear a script for the selected node."
+msgstr "Criar um script novo para o nó selecionado."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6653,6 +6733,11 @@ msgid "Could not create script in filesystem."
msgstr "Não foi possível criar o script no sistema de arquivos."
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "Erro ao carregar cena de %s"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "O caminho está vazio"
@@ -6665,16 +6750,18 @@ msgid "Invalid base path"
msgstr "Caminho base inválido"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "O arquivo existe"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "Extensão inválida"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Caminho válido"
+#, fuzzy
+msgid "Create new script"
+msgstr "Criar Script"
+
+#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Load existing script"
+msgstr "Próximo Script"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6685,7 +6772,8 @@ msgid "Built-In Script"
msgstr "Script Embutido"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+#, fuzzy
+msgid "Attach Node Script"
msgstr "Criar Script para Nó"
#: tools/editor/script_editor_debugger.cpp
@@ -6852,6 +6940,42 @@ msgstr "Mudar o tamanho do Shape Ray"
msgid "Change Notifier Extents"
msgstr "Alterar a Extensão do Notificador"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Alterar a Extensão do Notificador"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance não contém um recurso BakedLight ."
+
+#~ msgid "Vertex"
+#~ msgstr "Vértice"
+
+#~ msgid "Fragment"
+#~ msgstr "Fragmento"
+
+#~ msgid "Lighting"
+#~ msgstr "Iluminação"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "Alternar Persistência"
+
+#~ msgid "Global"
+#~ msgstr "Global"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Este item não pode se tornar visível porque o pai está escondido. Reexiba "
+#~ "o pai primeiro."
+
+#~ msgid "File exists"
+#~ msgstr "O arquivo existe"
+
+#~ msgid "Valid path"
+#~ msgstr "Caminho válido"
+
#~ msgid "Cannot go into subdir:"
#~ msgstr "Não é possível ir ao subdiretório:"
diff --git a/tools/translations/pt_PT.po b/tools/translations/pt_PT.po
index 21727ce186..7b3c814f8c 100644
--- a/tools/translations/pt_PT.po
+++ b/tools/translations/pt_PT.po
@@ -1,5 +1,5 @@
# Portuguese (Portugal) translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# António Sarmento <antonio.luis.sarmento@gmail.com>, 2016.
@@ -33,12 +33,6 @@ msgid "step argument is zero!"
msgstr "o argumento \"step\" é zero!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "Não é um script com uma instância"
@@ -393,75 +387,75 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "Nome de índice propriedade inválido."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -569,10 +563,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -632,7 +622,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1775,6 +1766,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1842,7 +1837,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2067,7 +2064,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2747,6 +2746,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2974,6 +2974,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3873,6 +3877,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4738,18 +4785,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5512,6 +5547,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5971,10 +6064,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6118,7 +6207,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6151,10 +6240,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6232,14 +6317,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6248,10 +6325,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6290,10 +6363,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6318,10 +6387,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6360,7 +6425,11 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -6386,13 +6455,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6488,6 +6555,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6500,15 +6571,15 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
+msgid "Create new script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6520,7 +6591,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6686,3 +6757,7 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
diff --git a/tools/translations/ru.po b/tools/translations/ru.po
index b8288d07a4..73262dbd5e 100644
--- a/tools/translations/ru.po
+++ b/tools/translations/ru.po
@@ -1,5 +1,5 @@
# Russian translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# DimOkGamer <dimokgamer@gmail.com>, 2016.
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-09-14 21:55+0000\n"
+"PO-Revision-Date: 2016-12-14 17:04+0000\n"
"Last-Translator: DimOkGamer <dimokgamer@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 2.8\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -37,12 +37,6 @@ msgid "step argument is zero!"
msgstr "Аргумент шага равен нулю!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "Скрипт без экземпляра"
@@ -172,9 +166,8 @@ msgid "Editing Signal:"
msgstr "Редактирование сигнала:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Expression"
-msgstr "Изменить тип"
+msgstr "Изменить выражение"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
@@ -225,40 +218,36 @@ msgid "Add Setter Property"
msgstr "Добавить устанавливающее свойство"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "Копировать анимацию"
+msgstr "Условие"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Последовательность"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Switch"
-msgstr "Высота"
+msgstr "Переключатель"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Итератор"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Пока"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Return"
-msgstr "Возвращение:"
+msgstr "Возвращение"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
msgstr "Вызов"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Get"
-msgstr "Задан"
+msgstr "Получить"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
@@ -399,87 +388,84 @@ msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "просто нажата"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "просто отпущена"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
-msgstr ""
+msgstr "Не могу прочитать файл сертификата. Уверены, что путь и пароль верны?"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr "Ошибка записи PCK файла!"
+msgstr "Ошибка при создании объекта подписи."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Ошибка при создании подписи пакета."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"Шаблоны экспорта не найдены.\n"
+"Скачайте и установите шаблоны экспорта."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "Пользовательский отладочный пакет не найден."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "Пользовательский релизный пакет не найден."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "Недопустимое имя."
+msgstr "Неверное уникальное имя."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "Недопустимый размер шрифта."
+msgstr "Неверный GUID продукта."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "Недопустимый базовый путь"
+msgstr "Неверный GUID издателя."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr "Недопустимый шрифт пользовательского источника."
+msgstr "Недопустимый цвет фона."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "Неверные размеры логотипа для магазина (должны быть 50х50)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "Неверные размеры квадратного логотипа 44x44 (должны быть 44x44)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "Неверные размеры квадратного логотипа 71x71 (должны быть 71x71)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "Неверные размеры квадратного логотипа 150x150 (должны быть 150x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "Неверные размеры квадратного логотипа 310x310 (должны быть 310x310)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "Неверные размеры широкого логотипа 310x150 (должны быть 310x150)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "Неверные размеры заставки (должны быть 620x300)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -623,10 +609,6 @@ msgstr ""
"VisibilityEnable2D работает наилучшим образом при использовании корня "
"редактируемой сцены, как прямого родителя."
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance не содержит BakedLight ресурс."
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -673,11 +655,8 @@ msgstr ""
"Navigation. Он предоставляет только навигационные данные."
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid "Path property must point to a valid Spatial node to work."
-msgstr ""
-"Для корректной работы свойство Path должно указывать на действующий узел "
-"Particles2D."
+msgstr "Свойство Path должно указывать на действительный Spatial узел."
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -706,7 +685,8 @@ msgstr ""
msgid "Cancel"
msgstr "Отмена"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "Ок"
@@ -1028,7 +1008,7 @@ msgstr "Дублировать перемещённый"
#: tools/editor/animation_editor.cpp
msgid "Remove Selection"
-msgstr "Убрать выделение"
+msgstr "Удалить выделенное"
#: tools/editor/animation_editor.cpp
msgid "Continuous"
@@ -1452,6 +1432,8 @@ msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"Целевой метод не найден! Укажите правильный метод или прикрепите скрипт на "
+"целевой узел."
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
@@ -1869,6 +1851,11 @@ msgid "Constants:"
msgstr "Константы:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Краткое описание:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "Описание методов:"
@@ -1936,7 +1923,9 @@ msgstr "Ошибка при сохранении ресурса!"
msgid "Save Resource As.."
msgstr "Сохранить ресурс как.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Ясно.."
@@ -2174,7 +2163,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "Выберите главную сцену"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "Ясно"
@@ -2495,9 +2486,8 @@ msgid "Editor Layout"
msgstr "Макет редактора"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Toggle Fullscreen"
-msgstr "Полноэкранный режим"
+msgstr "Переключить полноэкранный режим"
#: tools/editor/editor_node.cpp
msgid "Install Export Templates"
@@ -2525,7 +2515,7 @@ msgstr "Обновлять при изменениях"
#: tools/editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Отключить счётчик обновлений"
#: tools/editor/editor_node.cpp
msgid "Inspector"
@@ -2879,6 +2869,7 @@ msgstr "Исходные текстура(ы):"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "Целевой путь:"
@@ -3112,6 +3103,10 @@ msgid "Auto"
msgstr "Авто"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr "Имя корневого узла:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "Отсутствуют следующие файлы:"
@@ -3460,7 +3455,7 @@ msgstr "Добавить анимацию"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr "изменена последующая анимация"
+msgstr "Изменена последующая анимация"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
@@ -3958,9 +3953,8 @@ msgid "Clear Bones"
msgstr "Очистить кости"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Bones"
-msgstr "Создать кости"
+msgstr "Показать кости"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -4023,6 +4017,51 @@ msgstr "Установить значение"
msgid "Snap (Pixels):"
msgstr "Привязка (пиксели):"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr "Добавить %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr "Добавление %s..."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Создать узел"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "Ошибка добавления сцены из %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Ок :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Не выбран родитель для добавления потомка."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "Эта операция требует одного выбранного узла."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr "Изменить тип по умолчанию"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+"Drag & drop + Shift : Добавить узел к выделению\n"
+"Drag & drop + Alt : Изменить тип узла"
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4701,9 +4740,8 @@ msgid "Close Docs"
msgstr "Закрыть документацию"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "Закрыть"
+msgstr "Закрыть всё"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
@@ -4818,9 +4856,8 @@ msgstr ""
"принадлежат, загружена"
#: tools/editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Pick Color"
-msgstr "Цвет"
+msgstr "Выбрать цвет"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
@@ -4893,18 +4930,6 @@ msgstr "Перейти к строке.."
msgid "Contextual Help"
msgstr "Контекстная справка"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "Вертекс"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "Фрагмент"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "Освещение"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr "Изменена числовая константа"
@@ -5198,9 +5223,8 @@ msgid "Insert Animation Key"
msgstr "Вставить ключ анимации"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Focus Origin"
-msgstr "Отображать начало координат"
+msgstr "Фокус на центре"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
@@ -5468,9 +5492,8 @@ msgid "Remove Item"
msgstr "Удалить элемент"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme"
-msgstr "Сохранить тему"
+msgstr "Тема"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5669,6 +5692,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "Платформа '%s' пока не поддерживается."
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Создать новый ресурс"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Допустимое имя"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "Переход"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "Статус:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "Пароль:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Допустимые символы:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Новое имя:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "Включить"
@@ -6132,10 +6220,6 @@ msgid "Erase Input Action Event"
msgstr "Удалить действие"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr "Переключено настаивание"
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "Ошибка сохранения настроек."
@@ -6279,7 +6363,7 @@ msgstr "Файл.."
msgid "Dir.."
msgstr "Папка.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "Загрузить"
@@ -6288,9 +6372,8 @@ msgid "Assign"
msgstr "Назначить"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "Следующий скрипт"
+msgstr "Новый скрипт"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
@@ -6313,10 +6396,6 @@ msgid "Properties:"
msgstr "Свойства:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Глобальные"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Разделы:"
@@ -6395,14 +6474,6 @@ msgid "Scene Run Settings"
msgstr "Параметры запуска сцены"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Ок :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Нет родителя для добавления потомка."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr "Нет родителя для добавления сюда сцены."
@@ -6411,10 +6482,6 @@ msgid "Error loading scene from %s"
msgstr "Ошибка при загрузке сцены из %s"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "Ошибка добавления сцены из %s"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Ок"
@@ -6455,10 +6522,6 @@ msgid "This operation can't be done without a scene."
msgstr "Эта операция не может быть выполнена без сцены."
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "Эта операция требует одного выбранного узла."
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "Эта операция не может быть сделана на редактируемой сцене."
@@ -6483,10 +6546,6 @@ msgid "Remove Node(s)"
msgstr "Удалить узел(узлы)"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "Создать узел"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6527,8 +6586,12 @@ msgid "Change Type"
msgstr "Изменить тип"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr "Добавить скрипт"
+msgid "Attach Script"
+msgstr "Прикрепить скрипт"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr "Убрать скрипт"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6555,16 +6618,12 @@ msgstr ""
"не существует."
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
-msgstr "Создать новый скрипт для выбранного узла."
+msgid "Attach a new or existing script for the selected node."
+msgstr "Прикрепить новый или существующий скрипт к выбранному узлу."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
-"Этот объект не может быть отображён, потому что его родитель скрыт. "
-"Отобразите сначала родительский узел."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr "Убрать скрипт у выбранного узла."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6659,8 +6718,12 @@ msgid "Could not create script in filesystem."
msgstr "Не удалось создать скрипт в файловой системе."
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr "Ошибка при загрузке скрипта из %s"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
-msgstr "Путь не назначен"
+msgstr "Не указан путь"
#: tools/editor/script_create_dialog.cpp
msgid "Path is not local"
@@ -6671,16 +6734,16 @@ msgid "Invalid base path"
msgstr "Недопустимый базовый путь"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "Файл существует"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "Недопустимое расширение"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Допустимый путь"
+msgid "Create new script"
+msgstr "Создать новый скрипт"
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Load existing script"
+msgstr "Загрузить существующий скрипт"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6691,8 +6754,8 @@ msgid "Built-In Script"
msgstr "Встроенный Скрипт"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr "Создать скрипт для узла"
+msgid "Attach Node Script"
+msgstr "Добавление скрипта"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6858,6 +6921,49 @@ msgstr "Изменена длинна луча"
msgid "Change Notifier Extents"
msgstr "Изменены границы уведомителя"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Изменены границы уведомителя"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance не содержит BakedLight ресурс."
+
+#~ msgid "Vertex"
+#~ msgstr "Вертекс"
+
+#~ msgid "Fragment"
+#~ msgstr "Фрагмент"
+
+#~ msgid "Lighting"
+#~ msgstr "Освещение"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "Параметр изменён"
+
+#~ msgid "Global"
+#~ msgstr "Глобальные"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Этот объект не может быть отображён, потому что его родитель скрыт. "
+#~ "Отобразите сначала родительский узел."
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "Путь не может начинаться с '/', абсолютные пути должны начинаться с "
+#~ "'res://', 'user://' или 'local://'"
+
+#~ msgid "File exists"
+#~ msgstr "Файл существует"
+
+#~ msgid "Valid path"
+#~ msgstr "Допустимый путь"
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/sk.po b/tools/translations/sk.po
index 0e21e5a94f..f1bd9f1300 100644
--- a/tools/translations/sk.po
+++ b/tools/translations/sk.po
@@ -1,5 +1,5 @@
# Slovak translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# J08nY <johnenter@gmail.com>, 2016.
@@ -32,12 +32,6 @@ msgid "step argument is zero!"
msgstr "argument \"step\"/krok je nulový!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr ""
@@ -387,74 +381,74 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -569,10 +563,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -632,7 +622,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1776,6 +1767,11 @@ msgid "Constants:"
msgstr "Konštanty:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Popis:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1843,7 +1839,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2068,7 +2066,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2749,6 +2749,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2976,6 +2977,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3875,6 +3880,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4740,18 +4788,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5517,6 +5553,65 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Vytvoriť adresár"
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5976,10 +6071,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6123,7 +6214,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6157,10 +6248,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6237,14 +6324,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6253,10 +6332,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6295,10 +6370,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6323,10 +6394,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6365,8 +6432,14 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Script"
+msgstr "Popis:"
+
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "Popis:"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6391,13 +6464,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6493,6 +6564,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6505,16 +6580,18 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "Popis:"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr ""
+#, fuzzy
+msgid "Load existing script"
+msgstr "Popis:"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6525,8 +6602,9 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Node Script"
+msgstr "Popis:"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6691,3 +6769,7 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
diff --git a/tools/translations/sl.po b/tools/translations/sl.po
index 41ebecad54..12903cba83 100644
--- a/tools/translations/sl.po
+++ b/tools/translations/sl.po
@@ -1,5 +1,5 @@
# Slovenian translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# matevž lapajne <sivar.lapajne@gmail.com>, 2016.
@@ -33,12 +33,6 @@ msgid "step argument is zero!"
msgstr "stopnja argumenta je nič!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "To ni skripta z instanco"
@@ -393,75 +387,75 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "Neveljaven indeks lastnosti imena."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -581,10 +575,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -644,7 +634,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1787,6 +1778,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1854,7 +1849,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2079,7 +2076,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2759,6 +2758,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2986,6 +2986,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3885,6 +3889,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4750,18 +4797,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5524,6 +5559,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5983,10 +6076,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6130,7 +6219,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6163,10 +6252,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6244,14 +6329,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6260,10 +6337,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6302,10 +6375,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6330,10 +6399,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6372,7 +6437,11 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -6398,13 +6467,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6500,6 +6567,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6512,15 +6583,15 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
+msgid "Create new script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6532,7 +6603,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6699,6 +6770,10 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
#~ msgid ""
#~ "Custom node has no _get_output_port_unsequenced(idx,wmem), but "
#~ "unsequenced ports were specified."
diff --git a/tools/translations/tools.pot b/tools/translations/tools.pot
index 5453c5d9e2..447067beb3 100644
--- a/tools/translations/tools.pot
+++ b/tools/translations/tools.pot
@@ -1,5 +1,5 @@
# LANGUAGE translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
@@ -26,12 +26,6 @@ msgid "step argument is zero!"
msgstr ""
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr ""
@@ -375,74 +369,74 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -550,10 +544,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -613,7 +603,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1756,6 +1747,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1823,7 +1818,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2048,7 +2045,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2728,6 +2727,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2955,6 +2955,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3854,6 +3858,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4718,18 +4765,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5492,6 +5527,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5951,10 +6044,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6098,7 +6187,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6131,10 +6220,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6211,14 +6296,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6227,10 +6304,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6269,10 +6342,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6297,10 +6366,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6339,7 +6404,11 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -6365,13 +6434,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6467,6 +6534,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6479,15 +6550,15 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
+msgid "Create new script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6499,7 +6570,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6665,3 +6736,7 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
diff --git a/tools/translations/tr.po b/tools/translations/tr.po
index 823082ef17..b930e302f2 100644
--- a/tools/translations/tr.po
+++ b/tools/translations/tr.po
@@ -1,104 +1,108 @@
# Turkish translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
+# Aprın Çor Tigin <kabusturk38@gmail.com>, 2016.
+# Ceyhun Can Ulker <ceyhuncanu@gmail.com>, 2016.
# Enes Kaya Öcal <ekayaocal@hotmail.com>, 2016.
# M. Yavuz Uzun <myavuzuzun@yandex.com>, 2016.
+# Orkun Turan <holygatestudio@yandex.com>, 2016-2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-08-18 00:13+0000\n"
-"Last-Translator: M. Yavuz Uzun <myavuzuzun@yandex.com>\n"
+"PO-Revision-Date: 2017-01-02 19:10+0000\n"
+"Last-Translator: Orkun Turan <holygatestudio@yandex.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
"godot/tr/>\n"
"Language: tr\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 2.8-dev\n"
+"X-Generator: Weblate 2.11-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
msgstr ""
+"convert() için geçersiz türde değiştirgen, TYPE_* sabitlerini kullanın."
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "Geçersiz biçem ya da kod çözmek için yetersiz byte sayısı."
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
+msgstr "adım değiştirgeni sıfır!"
#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
-msgstr ""
+msgstr "Örneği bulunan bir betik değil"
#: modules/gdscript/gd_functions.cpp
msgid "Not based on a script"
-msgstr "Bir koda bağlı değil"
+msgstr "Bir betiğe bağlı değil"
#: modules/gdscript/gd_functions.cpp
msgid "Not based on a resource file"
-msgstr "Bir kaynak dosyasına bağlı değil"
+msgstr "Bir kaynak dizecine bağlı değil"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
+msgstr "Geçersiz örnek sözlük biçemi (@path eksik)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
+msgstr "Geçersiz örnek sözlük biçemi (betik @path 'tan yüklenemiyor)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
+msgstr "Geçersiz örnek sözlük biçemi (@path 'taki kod geçersiz)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr ""
+msgstr "Geçersiz örnek sözlüğü (geçersiz altbölütler)"
#: modules/visual_script/visual_script.cpp
msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
-msgstr "Çalışan hafıza olmadan düğüm yerleştirilmiş, lütfen belgeleri okuyun!"
+msgstr ""
+"Çalışan hafıza olmadan düğüm yerleştirilmiş, lütfen doğru yerleştirme "
+"üzerine olan belgeleri okuyun!"
#: modules/visual_script/visual_script.cpp
msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
msgstr ""
+"Düğüm yerleştirilmiş, fakat çalışan ilk hafızada bir işlev koşulunu "
+"döndüremedi."
#: modules/visual_script/visual_script.cpp
msgid ""
"Return value must be assigned to first element of node working memory! Fix "
"your node please."
msgstr ""
+"Döndürülen değer, düğüm çalışan hafızasındaki ilk elemana atanmış olmalıdır! "
+"Lütfen düğümünüzü düzeltin."
#: modules/visual_script/visual_script.cpp
msgid "Node returned an invalid sequence output: "
-msgstr ""
+msgstr "Düğüm geçersiz bir dizi çıktısı döndürdü: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
-msgstr ""
+msgstr "Bit dizisi bulundu fakat yığındaki düğüm değil, kusuru bildir!"
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
-msgstr ""
+msgstr "Şu derinlikte yığın taşması: "
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr "Fonksiyonlar:"
+msgstr "İşlevler:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
@@ -106,31 +110,31 @@ msgstr "Değişkenler:"
#: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp
msgid "Signals:"
-msgstr "Sinyaller:"
+msgstr "İşaretler:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
-msgstr "İsim doğru bir belirleyici değil:"
+msgstr "Ad doğru bir belirleyici değil:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
-msgstr "Ad zaten başka bir fonksiyon/değişken/sinyal tarafından kullanılıyor:"
+msgstr "Ad zaten başka bir işlev/değişken/işaret tarafından kullanılıyor:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
-msgstr "Fonksiyonu Yeniden İsimlendir"
+msgstr "İşlevi Yeniden Adlandır"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Variable"
-msgstr "Değişkeni Yeniden İsimlendir"
+msgstr "Değişkeni Yeniden Adlandır"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Signal"
-msgstr "Sinyali Yeniden İsimlendir"
+msgstr "İşareti Yeniden Adlandır"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
-msgstr "Fonksiyon Ekle"
+msgstr "İşlev Ekle"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
@@ -138,11 +142,11 @@ msgstr "Değişken Ekle"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
-msgstr "Sinyal Ekle"
+msgstr "İşaret Ekle"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr "Fonksiyonu Kaldır"
+msgstr "İşlevi Kaldır"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
@@ -154,15 +158,15 @@ msgstr "Değişken Düzenleniyor:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
-msgstr "Sinyali Kaldır"
+msgstr "İşareti Kaldır"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Signal:"
-msgstr "Sinyal Düzenleniyor:"
+msgstr "İşaret Düzenleniyor:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
-msgstr ""
+msgstr "İfadeyi Değiştir"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
@@ -171,31 +175,34 @@ msgstr "Düğüm Ekle"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"Alıcı işlevini bırakmak için Alt'a basılı tutun. Genelgeçer imzayı bırakmak "
+"için Shift'e basılı tutun."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"Alıcı işlevini bırakmak için Ctrl'e basılı tutun. Genelgeçer imzayı bırakmak "
+"için Shift'e basılı tutun."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a simple reference to the node."
-msgstr ""
+msgstr "Bir düğüme basit bir başvuru bırakmak için Alt'a basılı tutun."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
+msgstr "Bir düğüme basit bir başvuru bırakmak için Ctrl'e basılı tutun."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a Variable Setter."
-msgstr ""
+msgstr "Bir Değişken Atayıcı bırakmak için Alt'a basılı tutun."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
+msgstr "Bir Değişken Atayıcı bırakmak için Ctrl'e basılı tutun."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Preload Node"
-msgstr "Düğüm Ekle"
+msgstr "Önyüklenen Düğüm Ekle"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -210,42 +217,41 @@ msgid "Add Setter Property"
msgstr "Düzenleyici Özellik Ekle"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "Animasyon Yükle"
+msgstr "Koşul"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Dizi"
#: modules/visual_script/visual_script_editor.cpp
msgid "Switch"
-msgstr ""
+msgstr "Değiştir"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Yineleyici"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "İken"
#: modules/visual_script/visual_script_editor.cpp
msgid "Return"
-msgstr ""
+msgstr "Döndür"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
-msgstr ""
+msgstr "Çağır"
#: modules/visual_script/visual_script_editor.cpp
msgid "Get"
-msgstr ""
+msgstr "Al"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
msgid "Set"
-msgstr ""
+msgstr "Ata"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -258,7 +264,7 @@ msgstr "Düzenle"
#: modules/visual_script/visual_script_editor.cpp
msgid "Base Type:"
-msgstr "Taban Tipi:"
+msgstr "Taban Türü:"
#: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp
msgid "Members:"
@@ -266,11 +272,11 @@ msgstr "Üyeler:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Available Nodes:"
-msgstr ""
+msgstr "Kullanışlı Düğümler:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit graph"
-msgstr ""
+msgstr "Çizgeyi düzenlemek için bir işlev seçin ya da oluşturun"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
#: tools/editor/connections_dialog.cpp
@@ -287,7 +293,7 @@ msgstr "Kapat"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Signal Arguments:"
-msgstr ""
+msgstr "İşaret Değiştirgenlerini Düzenle:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Variable:"
@@ -304,176 +310,178 @@ msgstr "Seçilenleri Sil"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/plugins/script_text_editor.cpp
msgid "Toggle Breakpoint"
-msgstr ""
+msgstr "Kesme Noktası Aç/Kapat"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr ""
+msgstr "Düğüm Türü Bul"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Copy Nodes"
-msgstr "Kaynağı Kopyala"
+msgstr "Düğümleri Tıpkıla"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr ""
+msgstr "Düğümleri Kes"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Paste Nodes"
-msgstr "Kaynağı Yapıştır"
+msgstr "Düğümleri Yapıştır"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr ""
+msgstr "Girdi türü yinelenebilir değil: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr ""
+msgstr "Yineleyici geçersiz durumda"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr ""
+msgstr "Yineleyici geçersiz durumda: "
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Invalid index property name."
-msgstr "Geçersiz ebeveyn sınıf adı"
+msgstr "Geçersiz dizin özelliği adı."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr ""
+msgstr "Taban nesne bir Düğüm değil!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
-msgstr ""
+msgstr "Yol bir düğüme çıkmıyor!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr ""
+msgstr "%s düğümünde geçersiz dizin özelliği adı '%s'."
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid ": Invalid argument of type: "
-msgstr "Geçersiz ebeveyn sınıf adı"
+msgstr ": Şu tür için geçersiz değiştirgen: "
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid ": Invalid arguments: "
-msgstr "Geçersiz ebeveyn sınıf adı"
+msgstr ": Geçersiz değiştirgenler: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
-msgstr ""
+msgstr "VariableGet betikte bulunamadı: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableSet not found in script: "
-msgstr ""
+msgstr "VariableSet betikte bulunamadı: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
-msgstr ""
+msgstr "Özel düğüm _step() yöntemine sahip değil, çizgeyi işleyemez."
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
+"_step()'ten geçersiz dönüş değeri, tam sayı (dizi çıkışı) ya da dizgi "
+"(sorunu) olmalı."
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "yeni basıldı"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "yeni bırakıldı"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"Onay belgesi dizeci okunamadı. Yol ve gizyazının her ikisi de doğru mu?"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr ""
+msgstr "İmza nesnesini oluşturmada sorun."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Çıkın imzasını oluşturmada sorun."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"Hiçbir dışa aktarım kalıbı bulunamadı.\n"
+"Dışa aktarım kalıplarını indirin ve yükleyin.."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "Özel kusur ayıklama çıkını bulunmadı."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "Özel yayınlama çıkını bulunamadı."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "Geçersiz isim."
+msgstr "Benzersiz Ad Geçersiz."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "Geçersiz yazı tipi boyutu."
+msgstr "Geçersiz ürün GUID'i."
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "Geçersiz üst yol"
+msgstr "Geçersiz yayıncı GUID'i."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr ""
+msgstr "Geçersiz arkaplan rengi."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "Geçersiz Yığım Belirtkesi, bedizin boyutları (50x50 olmalı)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "Geçersiz kare 44x44 belirtkenin bediz boyutları (44x44 olmalı)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "Geçersiz kare 71x71 belirtkenin bediz boyutları (71x71 olmalı)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "Geçersiz kare 150x150 belirtkenin bediz boyutları (150x150 olmalı)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "Geçersiz kare 310x310 belirtkenin bediz boyutları (310x310 olmalı)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "Geçersiz kare 310x150 belirtkenin bediz boyutları (310x150 olmalı)."
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
+msgstr "Geçersiz açılış görüntülüğü bediz boyutları (620x300 olmalı)."
#: scene/2d/animated_sprite.cpp
msgid ""
"A SpriteFrames resource must be created or set in the 'Frames' property in "
"order for AnimatedSprite to display frames."
msgstr ""
+"Bir SpriteFrames kaynağı oluşturulmalı ya da 'Kareler' özelliğine atanmalı "
+"ki AnimatedSprite düğümü kareleri gösterebilsin."
#: scene/2d/canvas_modulate.cpp
msgid ""
"Only one visible CanvasModulate is allowed per scene (or set of instanced "
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
+"Sahne başına (ya da bir öbek örneklenmiş sahneler için) yalnızca bir görünür "
+"CanvasModulate'e izin verilir. İlk oluşturulan çalışırken diğerleri ihmal "
+"edilecektir."
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -481,10 +489,14 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"CollisionPolygon2D yalnızca CollisionObject2D'den türeyen düğümlere bir "
+"şekil elde etmeye hizmet eder. Lütfen onu yalnızca şunların çocuğu olarak "
+"kullanın ve Area2D, StaticBody2D, RigidBody2D, KinematicBody2D vs.'ye bir "
+"şekil vermek için kullanın."
#: scene/2d/collision_polygon_2d.cpp
msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr ""
+msgstr "Boş bir CollisionPolygon2D'nin çarpışmaya hiçbir etkisi yoktur."
#: scene/2d/collision_shape_2d.cpp
msgid ""
@@ -492,84 +504,107 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"CollisionShape2D yalnızca CollisionObject2D'den türeyen düğümlere bir şekil "
+"elde etmeye hizmet eder. Lütfen onu yalnızca şunların çocuğu olarak kullanın "
+"ve Area2D, StaticBody2D, RigidBody2D, KinematicBody2D vs.'ye bir şekil "
+"vermek için kullanın."
#: scene/2d/collision_shape_2d.cpp
msgid ""
"A shape must be provided for CollisionShape2D to function. Please create a "
"shape resource for it!"
msgstr ""
+"CollisionShape2D'nin işlevini yerine getirmesi için ona bir şekil sağlanması "
+"gerekmektedir. Lütfen onun için bir şekil kaynağı oluşturun!"
#: scene/2d/light_2d.cpp
msgid ""
"A texture with the shape of the light must be supplied to the 'texture' "
"property."
-msgstr ""
+msgstr "Işık yüzeyli bir doku, \"doku\" niteliğine sağlanmalıdır."
#: scene/2d/light_occluder_2d.cpp
msgid ""
"An occluder polygon must be set (or drawn) for this occluder to take effect."
msgstr ""
+"Engelleyicinin etkili olabilmesi için bir engelleyici çokgeni ayarlanmalıdır "
+"(ya da çizilmelidir)."
#: scene/2d/light_occluder_2d.cpp
msgid "The occluder polygon for this occluder is empty. Please draw a polygon!"
-msgstr ""
+msgstr "Bu engelleyici için engelleyici çokgeni boş. Lütfen bir çokgen çizin!"
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
"Please set a property or draw a polygon."
msgstr ""
+"Bu düğüm(node) çalışmak için bir NavigationPolygon kaynağı ayarlanmasına ya "
+"da oluşturulmasına gereksinim duyar. Lütfen hazır bir tane seçin ya da bir "
+"çokgen çizin."
#: scene/2d/navigation_polygon.cpp
msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
+"NavigationPolygonInstance, bir Navigation2D çocuğu olmalı ya da Navigation2D "
+"düğümünün torunu olması gerekir. Bu nesne yalnızca yönlendirme verisi sağlar."
#: scene/2d/parallax_layer.cpp
msgid ""
"ParallaxLayer node only works when set as child of a ParallaxBackground node."
msgstr ""
+"ParallaxLayer, yalnızca ParallaxBackground düğümünün çocuğu olduğu zaman "
+"çalışır."
#: scene/2d/particles_2d.cpp
msgid "Path property must point to a valid Particles2D node to work."
msgstr ""
+"Yol niteliği çalışması için geçerli bir Particles2D düğümünü işaret "
+"etmelidir."
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
msgstr ""
+"PathFollow2D yalnızca Path2D düğümünün çocuğu olarak ayarlanınca çalışır."
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
msgstr ""
+"Yol niteliği çalışması için geçerli bir Node2D düğümüne işaret etmelidir."
#: scene/2d/sample_player_2d.cpp scene/audio/sample_player.cpp
msgid ""
"A SampleLibrary resource must be created or set in the 'samples' property in "
"order for SamplePlayer to play sound."
msgstr ""
+"SamplePlayer ın ses çalması için bir SampleLibrary kaynağı oluşturulmalı "
+"veya 'örnekler' niteliğinde ayarlanmalıdır."
#: scene/2d/sprite.cpp
msgid ""
"Path property must point to a valid Viewport node to work. Such Viewport "
"must be set to 'render target' mode."
msgstr ""
+"Yol niteliği çalışması için geçerli bir Viewport düğümüne işaret etmelidir. "
+"Bu tür Viewport 'işleyici amacı' biçimine ayarlanmalıdır."
#: scene/2d/sprite.cpp
msgid ""
"The Viewport set in the path property must be set as 'render target' in "
"order for this sprite to work."
msgstr ""
+"Bu sprite'ın çalışması için yol niteliğinde ayarlanan Viewport durumu "
+"'işleyici amacı' olarak ayarlanmalıdır."
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
"VisibilityEnable2D works best when used with the edited scene root directly "
"as parent."
msgstr ""
-
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
+"VisibilityEnable2D düğümü düzenlenmiş sahne kökü doğrudan ata olarak "
+"kullanıldığında çalışır."
#: scene/3d/body_shape.cpp
msgid ""
@@ -577,12 +612,17 @@ msgid ""
"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
"KinematicBody, etc. to give them a shape."
msgstr ""
+"CollisionShape sadece CollisionObject türetilmiş bir düğümde çarpışma yüzeyi "
+"sağlamaya yarar. Bunların yüzeyine şekil vermek için Area, StaticBody, "
+"RigidBody, KinematicBody, v.b. onu sadece bunların çocuğu olarak kullanın."
#: scene/3d/body_shape.cpp
msgid ""
"A shape must be provided for CollisionShape to function. Please create a "
"shape resource for it!"
msgstr ""
+"CollisionShape'in çalışması için bir şekil verilmelidir. Lütfen bunun için "
+"bir şekil kaynağı oluşturun!"
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -590,47 +630,63 @@ msgid ""
"CollisionObject derived node. Please only use it as a child of Area, "
"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
msgstr ""
+"CollisionPolygon sadece CollisionObject türetilmiş bir düğümde çarpışma "
+"yüzeyi sağlamaya yarar. Bunların yüzeyine şekil vermek için Area, "
+"StaticBody, RigidBody, KinematicBody, v.b. onu sadece bunların çocuğu olarak "
+"kullanın."
#: scene/3d/collision_polygon.cpp
msgid "An empty CollisionPolygon has no effect on collision."
-msgstr ""
+msgstr "Boş bir CollisionPolygon'un çarpışma üzerinde etkisi yoktur."
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
+"Bu düğümün çalışması için bir NavigationMesh kaynağı ayarlanmış veya "
+"oluşturulmuş olmalıdır."
#: scene/3d/navigation_mesh.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+"NavigationMeshInstance, bir Navigation düğümünün çocuğu ya da torunu "
+"olmalıdır. O yalnızca yönlendirme verisi sağlar."
#: scene/3d/remote_transform.cpp
msgid "Path property must point to a valid Spatial node to work."
msgstr ""
+"Yol niteliği, çalışmak için geçerli bir Spatial düğümü işaret etmelidir."
#: scene/3d/scenario_fx.cpp
msgid ""
"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
msgstr ""
+"Her sahne başına (ya da örneklenmiş sahneler dizisine) sadece bir tane "
+"WorldEnvironment 'a izin verilir."
#: scene/3d/spatial_sample_player.cpp
msgid ""
"A SampleLibrary resource must be created or set in the 'samples' property in "
"order for SpatialSamplePlayer to play sound."
msgstr ""
+"SpatialSamplePlayer 'ın ses çalması için bir SampleLibrary kaynağı "
+"oluşturulmalı veya 'örnekler' niteliğinde ayarlanmalıdır."
#: scene/3d/sprite_3d.cpp
msgid ""
"A SpriteFrames resource must be created or set in the 'Frames' property in "
"order for AnimatedSprite3D to display frames."
msgstr ""
+"AnimatedSprite3D 'nin çerçeveleri görüntülemek için bir SpriteFrames kaynağı "
+"oluşturulmalı veya 'Çerçeveler' niteliğinde ayarlanmalıdır."
#: scene/gui/dialogs.cpp tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Cancel"
-msgstr "İptal"
+msgstr "Vazgeç"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "Tamam"
@@ -640,19 +696,19 @@ msgstr "Uyarı!"
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
-msgstr "Lütfen doğrulayınız..."
+msgstr "Lütfen Doğrulayın..."
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr "Dosya mevcut. Üzerine yazılsın mı?"
+msgstr "Dizeç var. Üzerine Yazılsın mı?"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "All Recognized"
-msgstr ""
+msgstr "Tümü Onaylandı"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "All Files (*)"
-msgstr "Tüm dosyalar (*)"
+msgstr "Tüm Dizeçler (*)"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
@@ -664,19 +720,19 @@ msgstr "Aç"
#: scene/gui/file_dialog.cpp
msgid "Open a File"
-msgstr "Bir Dosya Aç"
+msgstr "Bir Dizeç Aç"
#: scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr "Dosya(ları) aç"
+msgstr "Dizeç(leri) Aç"
#: scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr "Bir klasör aç"
+msgstr "Bir dizin aç"
#: scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr "Bir dosya yada klasör aç"
+msgstr "Bir Dizeç ya da Dizin Aç"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/editor_node.cpp
@@ -687,43 +743,43 @@ msgstr "Kaydet"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Save a File"
-msgstr "Dosyayı kaydet"
+msgstr "Dizeci Kaydet"
#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
#: tools/editor/editor_file_dialog.cpp
msgid "Create Folder"
-msgstr "Yeni klasör"
+msgstr "Dizin Oluştur"
#: scene/gui/file_dialog.cpp tools/editor/editor_autoload_settings.cpp
#: tools/editor/editor_file_dialog.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
#: tools/editor/script_create_dialog.cpp
msgid "Path:"
-msgstr "Dosya yolu:"
+msgstr "Dizeç yolu:"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Directories & Files:"
-msgstr "Klasörler & Dosyalar:"
+msgstr "Dizinler & Dizeçler:"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "File:"
-msgstr "Dosya:"
+msgstr "Dizeç:"
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Filter:"
-msgstr "Filtre:"
+msgstr "Süzgeç:"
#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
#: tools/editor/editor_file_dialog.cpp tools/editor/editor_plugin_settings.cpp
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Name:"
-msgstr "İsim:"
+msgstr "Ad:"
#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
#: tools/editor/editor_file_dialog.cpp
msgid "Could not create folder."
-msgstr "Klasör oluşturulamadı."
+msgstr "Dizin oluşturulamadı."
#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Must use a valid extension."
@@ -750,31 +806,31 @@ msgstr "Meta+"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Device"
-msgstr "Cihaz"
+msgstr "Aygıt"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Button"
-msgstr "Buton"
+msgstr "Düğme"
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Left Button."
-msgstr "Sol tuş."
+msgstr "Sol Düğme."
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Right Button."
-msgstr "Sağ tuş."
+msgstr "Sağ Düğme."
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Middle Button."
-msgstr "Orta tuş."
+msgstr "Orta Düğme."
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Wheel Up."
-msgstr ""
+msgstr "Tekerlek Yukarı."
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Wheel Down."
-msgstr ""
+msgstr "Tekerlek Aşağı."
#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
msgid "Axis"
@@ -791,7 +847,7 @@ msgstr "Kes"
#: tools/editor/plugins/shader_editor_plugin.cpp
#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
msgid "Copy"
-msgstr "Kopyala"
+msgstr "Tıpkıla"
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -828,6 +884,9 @@ msgid ""
"functions. Making them visible for editing is fine though, but they will "
"hide upon running."
msgstr ""
+"Açılır pencereler popup() veya popup*() işlevlerini çağırmadıkça ön tanımlı "
+"olarak gizlenecektir. Onları düzenleme için görünür kılmak da iyidir, ancak "
+"çalışırken gizlenecekler."
#: scene/main/viewport.cpp
msgid ""
@@ -836,26 +895,30 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
+"Bu görüntü alanı, işleyici amacı olarak ayarlanmadı. İçeriğini doğrudan "
+"görüntlükte göstermek istiyorsanız, bir Denetimcinin çocuğu olun ve böylece "
+"bir boyut elde edin. Ya da, onu bir RenderTarget yapın ve iç dokusunu "
+"görüntülemesi için bir düğüme atayın."
#: scene/resources/dynamic_font.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Error initializing FreeType."
-msgstr ""
+msgstr "FreeType başlatılırken sorun oluştu."
#: scene/resources/dynamic_font.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Unknown font format."
-msgstr "Bilinmeyen yazıtipi türü."
+msgstr "Bilinmeyen yazı türü."
#: scene/resources/dynamic_font.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Error loading font."
-msgstr "Yazı tipi yüklerken hata."
+msgstr "Yazı türü yüklerken sorun oluştu."
#: scene/resources/dynamic_font.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Invalid font size."
-msgstr "Geçersiz yazı tipi boyutu."
+msgstr "Geçersiz yazı türü boyutu."
#: tools/editor/animation_editor.cpp
msgid "Disabled"
@@ -863,84 +926,84 @@ msgstr "Devre dışı"
#: tools/editor/animation_editor.cpp
msgid "All Selection"
-msgstr "Tüm seçilenler"
+msgstr "Tüm seçim"
#: tools/editor/animation_editor.cpp
msgid "Move Add Key"
-msgstr ""
+msgstr "Açar Eklemeyi Taşı"
#: tools/editor/animation_editor.cpp
msgid "Anim Change Transition"
-msgstr ""
+msgstr "Canln Geçişi Değiştir"
#: tools/editor/animation_editor.cpp
msgid "Anim Change Transform"
-msgstr ""
+msgstr "Canln Dönüşümü Değiştir"
#: tools/editor/animation_editor.cpp
msgid "Anim Change Value"
-msgstr ""
+msgstr "Canln Değeri Değiştir"
#: tools/editor/animation_editor.cpp
msgid "Anim Change Call"
-msgstr ""
+msgstr "Canln Çağrıyı Değiştir"
#: tools/editor/animation_editor.cpp
msgid "Anim Add Track"
-msgstr ""
+msgstr "Canln İz Ekle"
#: tools/editor/animation_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr ""
+msgstr "Canln Açarlarını İkile"
#: tools/editor/animation_editor.cpp
msgid "Move Anim Track Up"
-msgstr ""
+msgstr "Canln İzini Yukarı Hareket Ettir"
#: tools/editor/animation_editor.cpp
msgid "Move Anim Track Down"
-msgstr ""
+msgstr "Canln İzini Aşağı Hareket Ettir"
#: tools/editor/animation_editor.cpp
msgid "Remove Anim Track"
-msgstr ""
+msgstr "Canln İzini Sil"
#: tools/editor/animation_editor.cpp
msgid "Set Transitions to:"
-msgstr ""
+msgstr "Geçişleri şuna ayarla:"
#: tools/editor/animation_editor.cpp
msgid "Anim Track Rename"
-msgstr ""
+msgstr "Canln İzini Yeniden Adlandır"
#: tools/editor/animation_editor.cpp
msgid "Anim Track Change Interpolation"
-msgstr ""
+msgstr "Canln İz Ara Değer Değiştir"
#: tools/editor/animation_editor.cpp
msgid "Anim Track Change Value Mode"
-msgstr ""
+msgstr "Canln İzi Değer Değiştir Biçimi"
#: tools/editor/animation_editor.cpp
msgid "Edit Node Curve"
-msgstr ""
+msgstr "Düğüm Eğrisini Düzenle"
#: tools/editor/animation_editor.cpp
msgid "Edit Selection Curve"
-msgstr ""
+msgstr "Seçim Eğrisini Düzenle"
#: tools/editor/animation_editor.cpp
msgid "Anim Delete Keys"
-msgstr ""
+msgstr "Canln Açarları Sil"
#: tools/editor/animation_editor.cpp
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr ""
+msgstr "Seçimi İkile"
#: tools/editor/animation_editor.cpp
msgid "Duplicate Transposed"
-msgstr ""
+msgstr "Tersine Çevirmeyi İkile"
#: tools/editor/animation_editor.cpp
msgid "Remove Selection"
@@ -960,19 +1023,19 @@ msgstr "Tetikleyici"
#: tools/editor/animation_editor.cpp
msgid "Anim Add Key"
-msgstr ""
+msgstr "Canln Açar Ekle"
#: tools/editor/animation_editor.cpp
msgid "Anim Move Keys"
-msgstr ""
+msgstr "Canln Açarlarını Taşı"
#: tools/editor/animation_editor.cpp
msgid "Scale Selection"
-msgstr ""
+msgstr "Seçimi Ölçekle"
#: tools/editor/animation_editor.cpp
msgid "Scale From Cursor"
-msgstr ""
+msgstr "Göstergeden Ölçekle"
#: tools/editor/animation_editor.cpp
msgid "Goto Next Step"
@@ -993,39 +1056,39 @@ msgstr "Sabit"
#: tools/editor/animation_editor.cpp
msgid "In"
-msgstr ""
+msgstr "Giriş"
#: tools/editor/animation_editor.cpp
msgid "Out"
-msgstr ""
+msgstr "Çıkış"
#: tools/editor/animation_editor.cpp
msgid "In-Out"
-msgstr ""
+msgstr "Giriş-Çıkış"
#: tools/editor/animation_editor.cpp
msgid "Out-In"
-msgstr ""
+msgstr "Çıkış-Giriş"
#: tools/editor/animation_editor.cpp
msgid "Transitions"
-msgstr ""
+msgstr "Geçişler"
#: tools/editor/animation_editor.cpp
msgid "Optimize Animation"
-msgstr ""
+msgstr "Canlandırmayı İyileştir"
#: tools/editor/animation_editor.cpp
msgid "Clean-Up Animation"
-msgstr ""
+msgstr "Canlandırmayı Temizle"
#: tools/editor/animation_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr ""
+msgstr "%s için yeni iz oluştur ve açar gir?"
#: tools/editor/animation_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr ""
+msgstr "%d için yeni izler oluştur ve açar gir?"
#: tools/editor/animation_editor.cpp tools/editor/create_dialog.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
@@ -1038,43 +1101,43 @@ msgstr "Oluştur"
#: tools/editor/animation_editor.cpp
msgid "Anim Create & Insert"
-msgstr ""
+msgstr "Canln Oluştur & Gir"
#: tools/editor/animation_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr ""
+msgstr "Canln İz Gir & Açar"
#: tools/editor/animation_editor.cpp
msgid "Anim Insert Key"
-msgstr ""
+msgstr "Canln Açar Gir"
#: tools/editor/animation_editor.cpp
msgid "Change Anim Len"
-msgstr ""
+msgstr "Canln Uzunluğu Değiştir"
#: tools/editor/animation_editor.cpp
msgid "Change Anim Loop"
-msgstr ""
+msgstr "Canln Döngüsünü Değiştir"
#: tools/editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
-msgstr ""
+msgstr "Canln Yazılı Değer Açarı Oluştur"
#: tools/editor/animation_editor.cpp
msgid "Anim Insert"
-msgstr ""
+msgstr "Canln Gir"
#: tools/editor/animation_editor.cpp
msgid "Anim Scale Keys"
-msgstr ""
+msgstr "Canln Açarı Ölçekle"
#: tools/editor/animation_editor.cpp
msgid "Anim Add Call Track"
-msgstr ""
+msgstr "Canln İzi Çağırma Ekle"
#: tools/editor/animation_editor.cpp
msgid "Animation zoom."
-msgstr ""
+msgstr "Canlandırma yaklaş."
#: tools/editor/animation_editor.cpp
msgid "Length (s):"
@@ -1082,7 +1145,7 @@ msgstr "Uzunluk (lar):"
#: tools/editor/animation_editor.cpp
msgid "Animation length (in seconds)."
-msgstr "Animasyon uzunluğu (saniye)."
+msgstr "Canlandırma uzunluğu (saniye)."
#: tools/editor/animation_editor.cpp
msgid "Step (s):"
@@ -1090,99 +1153,101 @@ msgstr "Adım (lar):"
#: tools/editor/animation_editor.cpp
msgid "Cursor step snap (in seconds)."
-msgstr ""
+msgstr "Gösterge şipşak adımla (saniyelerde)."
#: tools/editor/animation_editor.cpp
msgid "Enable/Disable looping in animation."
-msgstr "Animasyon tekrarını Aç/Kapat."
+msgstr "Canlandırma yinelemesini Aç/Kapat."
#: tools/editor/animation_editor.cpp
msgid "Add new tracks."
-msgstr ""
+msgstr "Yeni izler ekle."
#: tools/editor/animation_editor.cpp
msgid "Move current track up."
-msgstr ""
+msgstr "Mevcut izi yukarı al."
#: tools/editor/animation_editor.cpp
msgid "Move current track down."
-msgstr ""
+msgstr "Mevcut izi aşağı al."
#: tools/editor/animation_editor.cpp
msgid "Remove selected track."
-msgstr ""
+msgstr "Seçilen izleri sil."
#: tools/editor/animation_editor.cpp
msgid "Track tools"
-msgstr ""
+msgstr "İz araçları"
#: tools/editor/animation_editor.cpp
msgid "Enable editing of individual keys by clicking them."
-msgstr ""
+msgstr "Özgün açarların düzenlenebilmesini onları tıklayarak etkinleştirin."
#: tools/editor/animation_editor.cpp
msgid "Anim. Optimizer"
-msgstr ""
+msgstr "Cnln. İyileştirici"
#: tools/editor/animation_editor.cpp
msgid "Max. Linear Error:"
-msgstr ""
+msgstr "En üst Doğrusal Sorun:"
#: tools/editor/animation_editor.cpp
msgid "Max. Angular Error:"
-msgstr ""
+msgstr "En üst Açısal Sorun:"
#: tools/editor/animation_editor.cpp
msgid "Max Optimizable Angle:"
-msgstr ""
+msgstr "Max İyileştirilebilir Açı:"
#: tools/editor/animation_editor.cpp
msgid "Optimize"
-msgstr ""
+msgstr "İyileştir"
#: tools/editor/animation_editor.cpp
msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
msgstr ""
+"Sahne Ağacından canlandırmaları düzenleyebilmek için bir AnimationPlayer "
+"seçin."
#: tools/editor/animation_editor.cpp
msgid "Key"
-msgstr ""
+msgstr "Açar"
#: tools/editor/animation_editor.cpp
msgid "Transition"
-msgstr ""
+msgstr "Geçiş"
#: tools/editor/animation_editor.cpp
msgid "Scale Ratio:"
-msgstr ""
+msgstr "Ölçek Oranı:"
#: tools/editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
-msgstr ""
+msgstr "Hangi düğümdeki İşlevler Çağrılsın?"
#: tools/editor/animation_editor.cpp
msgid "Remove invalid keys"
-msgstr ""
+msgstr "Geçersiz açarları kaldır"
#: tools/editor/animation_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr ""
+msgstr "Çözümlenmemiş ve boş izleri sil"
#: tools/editor/animation_editor.cpp
msgid "Clean-up all animations"
-msgstr ""
+msgstr "Tüm canlandırmaları temizle"
#: tools/editor/animation_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
+msgstr "Canlandırma(ları) Temizle (GERİ ALINAMAZ!)"
#: tools/editor/animation_editor.cpp
msgid "Clean-Up"
-msgstr ""
+msgstr "Temizle"
#: tools/editor/array_property_edit.cpp
msgid "Resize Array"
-msgstr "Diziyi Yeniden Boyutlandır"
+msgstr "Sırayı Yeniden Boyutlandır"
#: tools/editor/array_property_edit.cpp
msgid "Change Array Value Type"
@@ -1190,7 +1255,7 @@ msgstr "Dizinin türünü degistir"
#: tools/editor/array_property_edit.cpp
msgid "Change Array Value"
-msgstr ""
+msgstr "Dizi Değerini Değiştir"
#: tools/editor/asset_library_editor_plugin.cpp tools/editor/create_dialog.cpp
#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
@@ -1211,7 +1276,7 @@ msgstr "Tersi"
#: tools/editor/asset_library_editor_plugin.cpp
#: tools/editor/project_settings.cpp
msgid "Category:"
-msgstr "Kategori:"
+msgstr "Katman:"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "All"
@@ -1219,7 +1284,7 @@ msgstr "Hepsi"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr "Site:"
+msgstr "Yer:"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Support.."
@@ -1235,35 +1300,35 @@ msgstr "Topluluk"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr ""
+msgstr "Deneme"
#: tools/editor/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
-msgstr ""
+msgstr "Varlıkların ZIP Dizeci"
#: tools/editor/call_dialog.cpp
msgid "Method List For '%s':"
-msgstr ""
+msgstr "'%s' İçin Yöntem Dizelgesi:"
#: tools/editor/call_dialog.cpp
msgid "Method List:"
-msgstr ""
+msgstr "Yöntem Dizelgesi:"
#: tools/editor/call_dialog.cpp
msgid "Arguments:"
-msgstr ""
+msgstr "Değiştirgenler:"
#: tools/editor/call_dialog.cpp
msgid "Return:"
-msgstr ""
+msgstr "Döndür:"
#: tools/editor/code_editor.cpp
msgid "Go to Line"
-msgstr "Satıra Git"
+msgstr "Dizeye Git"
#: tools/editor/code_editor.cpp
msgid "Line Number:"
-msgstr "Satır numarası:"
+msgstr "Dize Numarası:"
#: tools/editor/code_editor.cpp
msgid "No Matches"
@@ -1271,27 +1336,27 @@ msgstr "Eşleşme Bulunamadı"
#: tools/editor/code_editor.cpp
msgid "Replaced %d Ocurrence(s)."
-msgstr ""
+msgstr "%d Olgusu(ları) ile Değiştirildi."
#: tools/editor/code_editor.cpp
msgid "Replace"
-msgstr ""
+msgstr "Değiştir"
#: tools/editor/code_editor.cpp
msgid "Replace All"
-msgstr ""
+msgstr "Tümünü Değiştir"
#: tools/editor/code_editor.cpp
msgid "Match Case"
-msgstr ""
+msgstr "Durumla Eşleştir"
#: tools/editor/code_editor.cpp
msgid "Whole Words"
-msgstr ""
+msgstr "Tüm Sözcükler"
#: tools/editor/code_editor.cpp
msgid "Selection Only"
-msgstr ""
+msgstr "Yalnızca Seçim"
#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
#: tools/editor/plugins/script_editor_plugin.cpp
@@ -1299,7 +1364,7 @@ msgstr ""
#: tools/editor/plugins/shader_editor_plugin.cpp
#: tools/editor/project_settings.cpp
msgid "Search"
-msgstr ""
+msgstr "Ara"
#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
msgid "Find"
@@ -1311,7 +1376,7 @@ msgstr "İleri"
#: tools/editor/code_editor.cpp
msgid "Replaced %d ocurrence(s)."
-msgstr ""
+msgstr "%d Olgusu(ları) ile Değiştirildi."
#: tools/editor/code_editor.cpp
msgid "Not found!"
@@ -1319,19 +1384,19 @@ msgstr "Bulunamadı!"
#: tools/editor/code_editor.cpp
msgid "Replace By"
-msgstr ""
+msgstr "Şununla Değiştir"
#: tools/editor/code_editor.cpp
msgid "Case Sensitive"
-msgstr ""
+msgstr "Büyük Küçük Damga Duyarlı"
#: tools/editor/code_editor.cpp
msgid "Backwards"
-msgstr ""
+msgstr "Terse doğru"
#: tools/editor/code_editor.cpp
msgid "Prompt On Replace"
-msgstr ""
+msgstr "Değişimi Sor"
#: tools/editor/code_editor.cpp
msgid "Skip"
@@ -1340,7 +1405,7 @@ msgstr "Geç"
#: tools/editor/code_editor.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom In"
-msgstr "Yakınlaştır"
+msgstr "Yaklaş"
#: tools/editor/code_editor.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -1349,29 +1414,31 @@ msgstr "Uzaklaştır"
#: tools/editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr ""
+msgstr "Yaklaşmayı Sıfırla"
#: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp
msgid "Line:"
-msgstr "Satır:"
+msgstr "Dize:"
#: tools/editor/code_editor.cpp
msgid "Col:"
-msgstr ""
+msgstr "Dik:"
#: tools/editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
-msgstr ""
+msgstr "Hedef Node daki Yöntem belirtilmeli!"
#: tools/editor/connections_dialog.cpp
msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
+"Amaçlanan yöntem bulunamadı! Geçerli bir yöntem belirtin veya amaçlanan "
+"Düğüme bir betik iliştirin."
#: tools/editor/connections_dialog.cpp
msgid "Connect To Node:"
-msgstr "Düğüme bağlan:"
+msgstr "Düğüme Bağlan:"
#: tools/editor/connections_dialog.cpp
#: tools/editor/editor_autoload_settings.cpp tools/editor/groups_editor.cpp
@@ -1390,43 +1457,43 @@ msgstr "Kaldır"
#: tools/editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr ""
+msgstr "Ayrı Çağrı Değiştirgeni Ekleyin:"
#: tools/editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr ""
+msgstr "Ayrıca Çağrı Değiştirgenler:"
#: tools/editor/connections_dialog.cpp
msgid "Path to Node:"
-msgstr ""
+msgstr "Düğüm Yolu:"
#: tools/editor/connections_dialog.cpp
msgid "Make Function"
-msgstr ""
+msgstr "İşlev Yap"
#: tools/editor/connections_dialog.cpp
msgid "Deferred"
-msgstr ""
+msgstr "Ertelenmiş"
#: tools/editor/connections_dialog.cpp
msgid "Oneshot"
-msgstr ""
+msgstr "Tek sefer"
#: tools/editor/connections_dialog.cpp
msgid "Connect"
-msgstr ""
+msgstr "Bağla"
#: tools/editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr ""
+msgstr "Bunu '%s' şuna '%s' Bağla"
#: tools/editor/connections_dialog.cpp
msgid "Connecting Signal:"
-msgstr ""
+msgstr "İşarete Bağlanıyor:"
#: tools/editor/connections_dialog.cpp
msgid "Create Subscription"
-msgstr ""
+msgstr "Üyelik Oluştur"
#: tools/editor/connections_dialog.cpp
msgid "Connect.."
@@ -1439,7 +1506,7 @@ msgstr "Bağlantıyı kes"
#: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp
msgid "Signals"
-msgstr ""
+msgstr "İşaretler"
#: tools/editor/create_dialog.cpp
msgid "Create New"
@@ -1448,7 +1515,7 @@ msgstr "Yeni oluştur"
#: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp
#: tools/editor/filesystem_dock.cpp
msgid "Favorites:"
-msgstr "Favoriler:"
+msgstr "Beğeniler:"
#: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp
msgid "Recent:"
@@ -1467,25 +1534,27 @@ msgstr "Açıklama:"
#: tools/editor/dependency_editor.cpp
msgid "Search Replacement For:"
-msgstr ""
+msgstr "Şunun İçin Değişikliği Ara:"
#: tools/editor/dependency_editor.cpp
msgid "Dependencies For:"
-msgstr ""
+msgstr "Şunun İçin Bağımlılıklar:"
#: tools/editor/dependency_editor.cpp
msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will not take effect unless reloaded."
msgstr ""
-"'%s' Sahnesi şuanda düzenleniyor.\n"
-"Tekrar yüklenene kadar değişiklikler etki etmeyecek."
+"'%s' Sahnesi şu anda düzenleniyor.\n"
+"Yeniden yüklenene kadar değişiklikler etki etmeyecek."
#: tools/editor/dependency_editor.cpp
msgid ""
"Resource '%s' is in use.\n"
"Changes will take effect when reloaded."
msgstr ""
+"Kaynak '%s' kullanımda.\n"
+"Değişiklikler yeniden yükleme yapılınca etkin olacak."
#: tools/editor/dependency_editor.cpp
msgid "Dependencies"
@@ -1498,27 +1567,27 @@ msgstr "Kaynak"
#: tools/editor/dependency_editor.cpp tools/editor/editor_autoload_settings.cpp
#: tools/editor/project_manager.cpp tools/editor/project_settings.cpp
msgid "Path"
-msgstr ""
+msgstr "Yol"
#: tools/editor/dependency_editor.cpp
msgid "Dependencies:"
-msgstr ""
+msgstr "Bağımlılıklar:"
#: tools/editor/dependency_editor.cpp
msgid "Fix Broken"
-msgstr ""
+msgstr "Bozulanı Onar"
#: tools/editor/dependency_editor.cpp
msgid "Dependency Editor"
-msgstr ""
+msgstr "Bağımlılık Düzenleyicisi"
#: tools/editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr ""
+msgstr "Değişim Kaynağını Ara:"
#: tools/editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr ""
+msgstr "Bunun Sahibi:"
#: tools/editor/dependency_editor.cpp
msgid ""
@@ -1526,29 +1595,28 @@ msgid ""
"work.\n"
"Remove them anyway? (no undo)"
msgstr ""
-"Kaldırılmakta olan dosyalar başka dosyaların çalışması için gerekli.\n"
-"Yine de kaldırmak istiyor musunuz?(Geri alınamaz)"
+"Kaldırılmakta olan dizeçler başka dizeçlerin çalışması için gerekli.\n"
+"Yine de kaldırmak istiyor musunuz? (Geri alınamaz)"
#: tools/editor/dependency_editor.cpp
msgid "Remove selected files from the project? (no undo)"
-msgstr "Seçili dosyaları projeden kaldır? (Geri alınamaz)"
+msgstr "Seçili dizeçleri tasarıdan kaldır? (Geri alınamaz)"
#: tools/editor/dependency_editor.cpp
msgid "Error loading:"
-msgstr "Yüklerken hata:"
+msgstr "Yüklerken sorun:"
#: tools/editor/dependency_editor.cpp
msgid "Scene failed to load due to missing dependencies:"
-msgstr ""
-"Sahnede ki kayıp bağımlılıklar yüzünden sahneyi yükleme başarısız oldu:"
+msgstr "Sahnedeki kayıp bağımlılıklar yüzünden sahneyi yükleme başarısız oldu:"
#: tools/editor/dependency_editor.cpp
msgid "Open Anyway"
-msgstr "Yinede Aç"
+msgstr "Yine de Aç"
#: tools/editor/dependency_editor.cpp
msgid "Which action should be taken?"
-msgstr ""
+msgstr "Hangi eylem alınmalı?"
#: tools/editor/dependency_editor.cpp
msgid "Fix Dependencies"
@@ -1556,27 +1624,27 @@ msgstr "Bağımlılıkları düzelt"
#: tools/editor/dependency_editor.cpp
msgid "Errors loading!"
-msgstr "Yüklemede hata!"
+msgstr "Yükleme sorunları!"
#: tools/editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr "%d Öğeleri kalıcı olarak sil? (No undo!)"
+msgstr "%d Öğeleri kalıcı olarak silsin mi? (Geri alınamaz!)"
#: tools/editor/dependency_editor.cpp
msgid "Owns"
-msgstr ""
+msgstr "Sahipler"
#: tools/editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr ""
+msgstr "Belirgin Sahipliği Olmayan Kaynaklar:"
#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
msgid "Orphan Resource Explorer"
-msgstr ""
+msgstr "Orphan Kaynak Gezgini"
#: tools/editor/dependency_editor.cpp
msgid "Delete selected files?"
-msgstr "Seçili dosyaları sil?"
+msgstr "Seçili dizeçleri sil?"
#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
#: tools/editor/filesystem_dock.cpp
@@ -1587,23 +1655,23 @@ msgstr "Sil"
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid name."
-msgstr "Geçersiz isim."
+msgstr "Geçersiz ad."
#: tools/editor/editor_autoload_settings.cpp
msgid "Valid characters:"
-msgstr "Gecerli karakterler:"
+msgstr "Geçerli damgalar:"
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing engine class name."
-msgstr "Geçersiz isim. Motora kullanılan sınıf adları kullanılamaz."
+msgstr "Geçersiz ad. Devinimcide kullanılan bölüt adları kullanılamaz."
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing buit-in type name."
-msgstr ""
+msgstr "Geçersiz ad. Var olan gömülü türdeki ad ile çakışmamalı."
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing global constant name."
-msgstr "Geçersiz isim. İsim , evrensel sabit isimleriyle aynı olamaz."
+msgstr "Geçersiz ad. Var olan genel değişmeyen bir adla çakışmamalıdır."
#: tools/editor/editor_autoload_settings.cpp
msgid "Invalid Path."
@@ -1611,36 +1679,35 @@ msgstr "Gecersiz Yol."
#: tools/editor/editor_autoload_settings.cpp
msgid "File does not exist."
-msgstr "Dosya mevcut değil."
+msgstr "Dizeç yok."
#: tools/editor/editor_autoload_settings.cpp
msgid "Not in resource path."
-msgstr "Kaynak yolunda degil."
+msgstr "Kaynak yolunda değil."
#: tools/editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Add AutoLoad"
-msgstr "AutoLoad ekle"
+msgstr "KendindenYüklenme Ekle"
#: tools/editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
-msgstr ""
+msgstr "KendindenYüklenme '%s' zaten var!"
#: tools/editor/editor_autoload_settings.cpp
msgid "Rename Autoload"
-msgstr ""
+msgstr "KendindenYüklenme'yi Yeniden Adlandır"
#: tools/editor/editor_autoload_settings.cpp
msgid "Toggle AutoLoad Globals"
-msgstr ""
+msgstr "KendindenYüklenme Bütünsellerini Aç / Kapat"
#: tools/editor/editor_autoload_settings.cpp
msgid "Move Autoload"
-msgstr ""
+msgstr "KendindenYüklenme'yi Taşı"
#: tools/editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr ""
+msgstr "KendindenYüklenme'yi Kaldır"
#: tools/editor/editor_autoload_settings.cpp
msgid "Enable"
@@ -1648,7 +1715,7 @@ msgstr "Etkin"
#: tools/editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
-msgstr ""
+msgstr "KendindenYüklenme'leri Yeniden Sırala"
#: tools/editor/editor_autoload_settings.cpp
msgid "Node Name:"
@@ -1659,15 +1726,15 @@ msgstr "Düğüm adı:"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
#: tools/editor/project_manager.cpp
msgid "Name"
-msgstr "İsim"
+msgstr "Ad"
#: tools/editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr "Tekil (Singleton)"
+msgstr "Tekil"
#: tools/editor/editor_autoload_settings.cpp
msgid "List:"
-msgstr "Liste:"
+msgstr "Dizelge:"
#: tools/editor/editor_data.cpp
msgid "Updating Scene"
@@ -1707,35 +1774,35 @@ msgstr "Yenile"
#: tools/editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr ""
+msgstr "Gizli Dizeçleri Aç / Kapat"
#: tools/editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr ""
+msgstr "Beğenileni Aç / Kapat"
#: tools/editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr ""
+msgstr "Aç / Kapat Biçimi"
#: tools/editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr ""
+msgstr "Yola Odaklan"
#: tools/editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr ""
+msgstr "Beğenileni Yukarı Taşı"
#: tools/editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr ""
+msgstr "Beğenileni Aşağı Taşı"
#: tools/editor/editor_file_dialog.cpp
msgid "Preview:"
-msgstr "Ön izleme:"
+msgstr "Önizleme:"
#: tools/editor/editor_file_system.cpp
msgid "ScanSources"
-msgstr ""
+msgstr "KaynaklarıTara"
#: tools/editor/editor_help.cpp tools/editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
@@ -1743,44 +1810,49 @@ msgstr "Yardım Ara"
#: tools/editor/editor_help.cpp
msgid "Class List:"
-msgstr "Sınıf Listesi:"
+msgstr "Bölüt Dizelgesi:"
#: tools/editor/editor_help.cpp
msgid "Search Classes"
-msgstr "Sınıfları Ara"
+msgstr "Bölütleri Ara"
#: tools/editor/editor_help.cpp tools/editor/property_editor.cpp
msgid "Class:"
-msgstr "Sınıf:"
+msgstr "Bölüt:"
#: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp
#: tools/editor/script_create_dialog.cpp
msgid "Inherits:"
-msgstr ""
+msgstr "Kalıtçılar:"
#: tools/editor/editor_help.cpp
msgid "Inherited by:"
-msgstr "Tarafından miras alındı:"
+msgstr "Tarafından kalıt alındı:"
#: tools/editor/editor_help.cpp
msgid "Brief Description:"
-msgstr ""
+msgstr "Kısa Açıklama:"
#: tools/editor/editor_help.cpp
msgid "Public Methods:"
-msgstr "Public Metodlar:"
+msgstr "Açık Yöntemler:"
#: tools/editor/editor_help.cpp
msgid "GUI Theme Items:"
-msgstr "Arayüz Tema Öğeleri:"
+msgstr "Arayüz Kalıbı Öğeleri:"
#: tools/editor/editor_help.cpp
msgid "Constants:"
msgstr "Sabitler:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "Kısa Açıklama:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
-msgstr "Metot Açıklaması:"
+msgstr "Yöntem Açıklaması:"
#: tools/editor/editor_help.cpp
msgid "Search Text"
@@ -1796,27 +1868,27 @@ msgstr "Silinen:"
#: tools/editor/editor_import_export.cpp tools/editor/project_export.cpp
msgid "Error saving atlas:"
-msgstr "Atlas kaydedilirken hata oluştu:"
+msgstr "Atlas kaydedilirken sorun oluştu:"
#: tools/editor/editor_import_export.cpp
msgid "Could not save atlas subtexture:"
-msgstr ""
+msgstr "Atlas alt dokusu kaydedilemedi:"
#: tools/editor/editor_import_export.cpp
msgid "Storing File:"
-msgstr ""
+msgstr "Dizeci Depoluyor:"
#: tools/editor/editor_import_export.cpp
msgid "Packing"
-msgstr ""
+msgstr "Çıkınla"
#: tools/editor/editor_import_export.cpp
msgid "Exporting for %s"
-msgstr ""
+msgstr "%s için Dışa Aktarım"
#: tools/editor/editor_import_export.cpp
msgid "Setting Up.."
-msgstr ""
+msgstr "Kurulum..."
#: tools/editor/editor_log.cpp
msgid " Output:"
@@ -1824,43 +1896,45 @@ msgstr " Çıktı:"
#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
msgid "Re-Importing"
-msgstr ""
+msgstr "Yeniden-İçe Aktarım"
#: tools/editor/editor_node.cpp
msgid "Importing:"
-msgstr ""
+msgstr "İçe Aktarım:"
#: tools/editor/editor_node.cpp
msgid "Node From Scene"
-msgstr ""
+msgstr "Sahneden Düğüm(node)"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/resources_dock.cpp
msgid "Error saving resource!"
-msgstr ""
+msgstr "Kaynak kaydedilirken sorun!"
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/resources_dock.cpp
msgid "Save Resource As.."
-msgstr "Kaynağı Farklı Kaydet.."
+msgstr "Kaynağı Başkaca Kaydet.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "Anlıyorum.."
#: tools/editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr "Dosya yazmak için açılamıyor:"
+msgstr "Dizeç yazmak için açılamıyor:"
#: tools/editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr "Talep edilen dosya formatı bilinmiyor:"
+msgstr "İstenilen dizeç formatı bilinmiyor:"
#: tools/editor/editor_node.cpp
msgid "Error while saving."
-msgstr "Kaydedilirken hata oluştu."
+msgstr "Kaydedilirken sorun oluştu."
#: tools/editor/editor_node.cpp
msgid "Saving Scene"
@@ -1868,64 +1942,64 @@ msgstr "Sahne Kaydediliyor"
#: tools/editor/editor_node.cpp
msgid "Analyzing"
-msgstr "Analiz Ediliyor"
+msgstr "Çözümleniyor"
#: tools/editor/editor_node.cpp
msgid "Creating Thumbnail"
-msgstr "Küçük Resim Oluşturuluyor"
+msgstr "Küçük Bediz Oluşturuluyor"
#: tools/editor/editor_node.cpp
msgid ""
"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
-msgstr ""
+msgstr "Sahne kaydedilemedi. Anlaşılan bağımlılıklar (örnekler) karşılanamadı."
#: tools/editor/editor_node.cpp
msgid "Failed to load resource."
-msgstr "Kaynak yüklenirken hata oluştu."
+msgstr "Kaynak yüklenirken sorun oluştu."
#: tools/editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr ""
+msgstr "Birleştirme için MeshLibrary yüklenemedi!"
#: tools/editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr ""
+msgstr "MeshLibrary kayıt edilirken sorun!"
#: tools/editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr ""
+msgstr "TileSet birleştirme için yüklenemedi!"
#: tools/editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr ""
+msgstr "TileSet kayıt edilirken sorun!"
#: tools/editor/editor_node.cpp
msgid "Can't open export templates zip."
-msgstr ""
+msgstr "Dışa aktarım kalıplarının zipi açılamadı."
#: tools/editor/editor_node.cpp
msgid "Loading Export Templates"
-msgstr ""
+msgstr "Dışa Aktarım Kalıpları Yükleniyor"
#: tools/editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr "Düzen kaydedilmeye çalışılırken hata oluştu!"
+msgstr "Tasarım kaydedilmeye çalışılırken sorun oluştu!"
#: tools/editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr ""
+msgstr "Önyüklü düzenleyici tasarımı geçersiz kılındı."
#: tools/editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr ""
+msgstr "Tasarım adı bulunamadı!"
#: tools/editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr ""
+msgstr "Önyüklü tasarım temel ayarlara onarıldı."
#: tools/editor/editor_node.cpp
msgid "Copy Params"
-msgstr "Parametreleri Kopyala"
+msgstr "Değişkenleri Tıpkıla"
#: tools/editor/editor_node.cpp
msgid "Paste Params"
@@ -1938,12 +2012,11 @@ msgstr "Kaynağı Yapıştır"
#: tools/editor/editor_node.cpp
msgid "Copy Resource"
-msgstr "Kaynağı Kopyala"
+msgstr "Kaynağı Tıpkıla"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Make Built-In"
-msgstr "Göm"
+msgstr "Gömülü Yap"
#: tools/editor/editor_node.cpp
msgid "Make Sub-Resources Unique"
@@ -1963,6 +2036,9 @@ msgid ""
"You can change it later in later in \"Project Settings\" under the "
"'application' category."
msgstr ""
+"Hiçbir ana sahne tanımlanmadı, birini seçiniz?\n"
+"Daha sonra \"uygulama\" kategorisinin altındaki \"Tasarı Ayarları\" ndan "
+"değiştirebilirsiniz."
#: tools/editor/editor_node.cpp
msgid ""
@@ -1970,6 +2046,9 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"Seçilen sahne '%s' mevcut değil, geçerli bir tane seçin?\n"
+"Daha sonra \"uygulama\" kategorisinin altındaki \"Tasarı Ayarları\" ndan "
+"değiştirebilirsiniz."
#: tools/editor/editor_node.cpp
msgid ""
@@ -1977,10 +2056,13 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"Seçilen sahne '%s' bir sahne dizeci değil, geçerli bir tane seç?\n"
+"Daha sonra \"uygulama\" kategorisinin altındaki \"Tasarı Ayarları\" ndan "
+"değiştirebilirsiniz."
#: tools/editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
-msgstr "Mevcut sahne hiç kaydedilmedi,lütfen çalıştırmadan önce kaydediniz."
+msgstr "Şimdiki sahne hiç kaydedilmedi, lütfen çalıştırmadan önce kaydediniz."
#: tools/editor/editor_node.cpp
msgid "Could not start subprocess!"
@@ -2008,11 +2090,11 @@ msgstr "Evet"
#: tools/editor/editor_node.cpp
msgid "Close scene? (Unsaved changes will be lost)"
-msgstr "Sahneyi kapat? (Kaydedilmemiş değişiklikler yok olacak)"
+msgstr "Sahneyi kapatsın mı? (Kaydedilmemiş değişiklikler yok olacak)"
#: tools/editor/editor_node.cpp
msgid "Save Scene As.."
-msgstr "Sahneyi Farklı Kaydet.."
+msgstr "Sahneyi Başkaca Kaydet.."
#: tools/editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
@@ -2028,164 +2110,171 @@ msgstr "Çevirilebilir Metinleri Kaydet"
#: tools/editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr ""
+msgstr "Örüntü Betikevini Dışa Aktar"
#: tools/editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr ""
+msgstr "Döşenti Dizi Dışa Aktar"
#: tools/editor/editor_node.cpp
msgid "Quit"
-msgstr ""
+msgstr "Çıkış"
#: tools/editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr ""
+msgstr "Düzenleyiciden çık?"
#: tools/editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr ""
+msgstr "Var olan sahne kaydedilmedi. Yine de açılsın mı?"
#: tools/editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr ""
+msgstr "Hiç kaydedilmemiş bir sahne yeniden yüklenemiyor."
#: tools/editor/editor_node.cpp
msgid "Revert"
-msgstr ""
+msgstr "Geri dön"
#: tools/editor/editor_node.cpp
msgid "This action cannot be undone. Revert anyway?"
-msgstr ""
+msgstr "Bu eylem geri alınamaz. Yine de geri dönsün mü?"
#: tools/editor/editor_node.cpp
msgid "Quick Run Scene.."
-msgstr ""
+msgstr "Sahneyi Hızlı Çalıştır.."
#: tools/editor/editor_node.cpp
msgid ""
"Open Project Manager? \n"
"(Unsaved changes will be lost)"
msgstr ""
+"Tasarı Yöneticisini Aç\n"
+"(Kaydedilmemiş değişiklikler kaybolacak!)"
#: tools/editor/editor_node.cpp
msgid "Pick a Main Scene"
-msgstr ""
+msgstr "Bir Ana Sahne Seç"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
-msgstr ""
+msgstr "Öff"
#: tools/editor/editor_node.cpp
msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
+"Sahne yüklenirken sorun oluştu, tasarı yolunun içinde olmalı. Sahneyi açmak "
+"için 'İçe Aktar' seçeneğini kullanın, ardından tasarının yolunun içine "
+"kaydedin."
#: tools/editor/editor_node.cpp
msgid "Error loading scene."
-msgstr ""
+msgstr "Sahne yüklenirken sorun oluştu."
#: tools/editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
-msgstr ""
+msgstr "Sahne '%s' bağımlılıkları koptu:"
#: tools/editor/editor_node.cpp
msgid "Save Layout"
-msgstr ""
+msgstr "Tasarımı Kaydet"
#: tools/editor/editor_node.cpp
msgid "Delete Layout"
-msgstr ""
+msgstr "Tasarımı Sil"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Default"
-msgstr ""
+msgstr "Önyüklü"
#: tools/editor/editor_node.cpp
msgid "Switch Scene Tab"
-msgstr ""
+msgstr "Sahne Sekmesine Geç"
#: tools/editor/editor_node.cpp
msgid "%d more file(s)"
-msgstr ""
+msgstr "%d daha çok dizeç(ler)"
#: tools/editor/editor_node.cpp
msgid "%d more file(s) or folder(s)"
-msgstr ""
+msgstr "%d daha çok dizeç(ler) veya dizin(ler)"
#: tools/editor/editor_node.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Scene"
-msgstr ""
+msgstr "Sahne"
#: tools/editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr ""
+msgstr "Daha önce açılan sahneye git."
#: tools/editor/editor_node.cpp
msgid "Next tab"
-msgstr ""
+msgstr "Sonraki sekme"
#: tools/editor/editor_node.cpp
msgid "Previous tab"
-msgstr ""
+msgstr "Önceki sekme"
#: tools/editor/editor_node.cpp
msgid "Operations with scene files."
-msgstr ""
+msgstr "Sahne dizeçlerinin işlemleri."
#: tools/editor/editor_node.cpp
msgid "New Scene"
-msgstr ""
+msgstr "Yeni Sahne"
#: tools/editor/editor_node.cpp
msgid "New Inherited Scene.."
-msgstr ""
+msgstr "Yeni Kalıt Alınmış Sahne .."
#: tools/editor/editor_node.cpp
msgid "Open Scene.."
-msgstr ""
+msgstr "Sahne Aç.."
#: tools/editor/editor_node.cpp
msgid "Save Scene"
-msgstr ""
+msgstr "Sahne Kaydet"
#: tools/editor/editor_node.cpp
msgid "Save all Scenes"
-msgstr ""
+msgstr "Tüm Sahneleri Kaydet"
#: tools/editor/editor_node.cpp
msgid "Close Scene"
-msgstr ""
+msgstr "Sahneyi Kapat"
#: tools/editor/editor_node.cpp
msgid "Close Goto Prev. Scene"
-msgstr ""
+msgstr "Önc. Sahneye Git sekmesini Kapat"
#: tools/editor/editor_node.cpp
msgid "Open Recent"
-msgstr ""
+msgstr "En Sonuncuyu Aç"
#: tools/editor/editor_node.cpp
msgid "Quick Filter Files.."
-msgstr ""
+msgstr "Hızlı Süzgeç Dizeçleri.."
#: tools/editor/editor_node.cpp
msgid "Convert To.."
-msgstr ""
+msgstr "Şuna Dönüştür.."
#: tools/editor/editor_node.cpp
msgid "Translatable Strings.."
-msgstr ""
+msgstr "Çevirilebilir Dizeler.."
#: tools/editor/editor_node.cpp
msgid "MeshLibrary.."
-msgstr ""
+msgstr "MeshLibrary .."
#: tools/editor/editor_node.cpp
msgid "TileSet.."
-msgstr ""
+msgstr "TileSet .."
#: tools/editor/editor_node.cpp tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
@@ -2193,29 +2282,28 @@ msgid "Redo"
msgstr "Geri"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Run Script"
msgstr "Betiği Çalıştır"
#: tools/editor/editor_node.cpp
msgid "Project Settings"
-msgstr "Proje Ayarları"
+msgstr "Tasarı Ayarları"
#: tools/editor/editor_node.cpp
msgid "Revert Scene"
-msgstr ""
+msgstr "Sahneyi Eski Durumuna Çevir"
#: tools/editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "Proje Listesine Git"
+msgstr "Tasarı Dizelgesine Git"
#: tools/editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr ""
+msgstr "Dikkat Dağıtmayan Biçim"
#: tools/editor/editor_node.cpp
msgid "Import assets to the project."
-msgstr ""
+msgstr "Varlıkları tasarının içine aktar."
#: tools/editor/editor_node.cpp
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
@@ -2231,7 +2319,7 @@ msgstr "İçe Aktar"
#: tools/editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
-msgstr ""
+msgstr "Türlü tasarı ya da sahne genişliğinde araçlar."
#: tools/editor/editor_node.cpp
msgid "Tools"
@@ -2239,7 +2327,7 @@ msgstr "Araçlar"
#: tools/editor/editor_node.cpp
msgid "Export the project to many platforms."
-msgstr ""
+msgstr "Tasarıyı pek çok ortama aktarın."
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Export"
@@ -2247,7 +2335,7 @@ msgstr "Dışa Aktar"
#: tools/editor/editor_node.cpp
msgid "Play the project."
-msgstr "Projeyi oynat."
+msgstr "Tasarıyı oynat."
#: tools/editor/editor_node.cpp
#: tools/editor/plugins/sample_library_editor_plugin.cpp
@@ -2281,29 +2369,31 @@ msgstr "Sahneyi Oynat"
#: tools/editor/editor_node.cpp
msgid "Play custom scene"
-msgstr ""
+msgstr "Özel sahneyi oynat"
#: tools/editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr ""
+msgstr "Özel Sahneyi Oynat"
#: tools/editor/editor_node.cpp
msgid "Debug options"
-msgstr ""
+msgstr "Sorun ayıklama seçenekleri"
#: tools/editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr ""
+msgstr "Uzaktan Sorun Ayıklama ile Dağıt"
#: tools/editor/editor_node.cpp
msgid ""
"When exporting or deploying, the resulting executable will attempt to "
"connect to the IP of this computer in order to be debugged."
msgstr ""
+"Verilen yürütülebilir dizeç, dışa aktarılırken veya dağıtıldığında, sorun "
+"ayıklanacak şekilde bu bilgisayarın IP'sine bağlanmaya çalışacaktır."
#: tools/editor/editor_node.cpp
msgid "Small Deploy with Network FS"
-msgstr ""
+msgstr "Ağ DS'li Küçük Dağıtım"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2314,30 +2404,39 @@ msgid ""
"On Android, deploy will use the USB cable for faster performance. This "
"option speeds up testing for games with a large footprint."
msgstr ""
+"Bu seçenek etkinleştirildiğinde, dışa aktarma veya dağıtma çok küçük bir "
+"çalıştırılabilir dizeç üretir.\n"
+"Dizeç düzeni, ağ üzerindeki düzenleyici tarafından tasarıdan sağlanacaktır.\n"
+"Android'de daha hızlı verim için dağıtım uygulaması USB kablosunu "
+"kullanacak. Bu seçenek, ayak izi büyük olan oyunları denemeyi hızlandırır."
#: tools/editor/editor_node.cpp
msgid "Visible Collision Shapes"
-msgstr ""
+msgstr "Görünür Çarpışma Şekilleri"
#: tools/editor/editor_node.cpp
msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
+"Bu seçenek açıksa, çalışan oyunda çarpışma şekilleri ve raycast düğümleri "
+"(2B ve 3B için) görünür olacaktır."
#: tools/editor/editor_node.cpp
msgid "Visible Navigation"
-msgstr ""
+msgstr "Görünür Yönlendirici"
#: tools/editor/editor_node.cpp
msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
+"Bu seçenek açıksa, çalışan oyunda yönlendirici örüntüleri ve çokgenler "
+"görünür olacaktır."
#: tools/editor/editor_node.cpp
msgid "Sync Scene Changes"
-msgstr ""
+msgstr "Sahne Değişikliklerini Eşzamanla"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2346,10 +2445,14 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"Bu seçenek etkinleştirildiğinde, düzenleyicide bulunan sahnedeki "
+"değişiklikler çalışmakta olan oyununda çoğaltılır.\n"
+"Bir cihazda uzaktan kullanıldığında, ağ dizeç düzeni ile bu işlem daha "
+"verimli olur."
#: tools/editor/editor_node.cpp
msgid "Sync Script Changes"
-msgstr ""
+msgstr "Betik Değişikliklerini Eşzamanla"
#: tools/editor/editor_node.cpp
msgid ""
@@ -2358,6 +2461,10 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"Bu seçenek etkinleştirildiğinde, kaydedilen tüm betik çalışan oyunda yeniden "
+"yüklenecektir.\n"
+"Bir cihazda uzaktan kullanıldığında, ağ dizeç düzeni ile bu işlem daha "
+"verimli olur."
#: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Settings"
@@ -2365,31 +2472,31 @@ msgstr "Ayarlar"
#: tools/editor/editor_node.cpp tools/editor/settings_config_dialog.cpp
msgid "Editor Settings"
-msgstr "Editör Ayarları"
+msgstr "Düzenleyici Ayarları"
#: tools/editor/editor_node.cpp
msgid "Editor Layout"
-msgstr "Editör Düzeni"
+msgstr "Düzenleyici Tasarımı"
#: tools/editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr ""
+msgstr "Tam Ekran Aç / Kapat"
#: tools/editor/editor_node.cpp
msgid "Install Export Templates"
-msgstr ""
+msgstr "Dışa Aktarım Kalıplarını Yükle"
#: tools/editor/editor_node.cpp
msgid "About"
-msgstr "Hakkında"
+msgstr "İlişkin"
#: tools/editor/editor_node.cpp
msgid "Alerts when an external resource has changed."
-msgstr "Harici kaynaklar da değişme olursa uyarır."
+msgstr "Dış kaynaklar değişince uyarır."
#: tools/editor/editor_node.cpp
msgid "Spins when the editor window repaints!"
-msgstr ""
+msgstr "Düzenleyici penceresi yeniden boyandığında döndürülür!"
#: tools/editor/editor_node.cpp
msgid "Update Always"
@@ -2397,43 +2504,43 @@ msgstr "Sürekli Güncelle"
#: tools/editor/editor_node.cpp
msgid "Update Changes"
-msgstr ""
+msgstr "Değişiklikleri güncelle"
#: tools/editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Güncelleme Topacını Devre Dışı Bırak"
#: tools/editor/editor_node.cpp
msgid "Inspector"
-msgstr ""
+msgstr "Denetçi"
#: tools/editor/editor_node.cpp
msgid "Create a new resource in memory and edit it."
-msgstr ""
+msgstr "Bellekte yeni bir kaynak oluşturun ve onu düzenleyin."
#: tools/editor/editor_node.cpp
msgid "Load an existing resource from disk and edit it."
-msgstr ""
+msgstr "Var olan bir kaynağı saklaktan yükleyin ve düzenleyin."
#: tools/editor/editor_node.cpp
msgid "Save the currently edited resource."
-msgstr ""
+msgstr "Düzenlenen kaynağı kaydedin."
#: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp
msgid "Save As.."
-msgstr "Farklı Kaydet.."
+msgstr "Başkaca Kaydet.."
#: tools/editor/editor_node.cpp
msgid "Go to the previous edited object in history."
-msgstr ""
+msgstr "Geçmişte bir önceki düzenlenmiş nesneye gidin."
#: tools/editor/editor_node.cpp
msgid "Go to the next edited object in history."
-msgstr ""
+msgstr "Geçmişte bir sonraki düzenlenmiş nesneye gidin."
#: tools/editor/editor_node.cpp
msgid "History of recently edited objects."
-msgstr ""
+msgstr "En son düzenlenen nesnelerin geçmişi."
#: tools/editor/editor_node.cpp
msgid "Object properties."
@@ -2441,63 +2548,63 @@ msgstr "Nesne özellikleri."
#: tools/editor/editor_node.cpp
msgid "FileSystem"
-msgstr ""
+msgstr "DizeçDüzeni"
#: tools/editor/editor_node.cpp tools/editor/node_dock.cpp
msgid "Node"
-msgstr ""
+msgstr "Düğüm"
#: tools/editor/editor_node.cpp
msgid "Output"
-msgstr ""
+msgstr "Çıktı"
#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
msgid "Re-Import"
-msgstr ""
+msgstr "Yeniden İçe Aktar"
#: tools/editor/editor_node.cpp tools/editor/editor_plugin_settings.cpp
msgid "Update"
-msgstr ""
+msgstr "Güncelle"
#: tools/editor/editor_node.cpp
msgid "Thanks from the Godot community!"
-msgstr "Godot Topluluğu Teşekkürler Eder!"
+msgstr "Godot Topluluğu Sağ Olmanızı Diliyor!"
#: tools/editor/editor_node.cpp
msgid "Thanks!"
-msgstr "Teşekkürler!"
+msgstr "Sağ olun!"
#: tools/editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr ""
+msgstr "Kalıpları ZIP Dizecinden İçe Aktar"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Export Project"
-msgstr ""
+msgstr "Tasarıyı Dışa Aktar"
#: tools/editor/editor_node.cpp
msgid "Export Library"
-msgstr ""
+msgstr "Betikevini Dışa Aktar"
#: tools/editor/editor_node.cpp
msgid "Merge With Existing"
-msgstr ""
+msgstr "Var Olanla Birleştir"
#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
msgid "Password:"
-msgstr "Şifre:"
+msgstr "Gizyazı:"
#: tools/editor/editor_node.cpp
msgid "Open & Run a Script"
-msgstr ""
+msgstr "Aç & Bir Betik Çalıştır"
#: tools/editor/editor_node.cpp
msgid "Load Errors"
-msgstr ""
+msgstr "Sorunları Yükle"
#: tools/editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
-msgstr ""
+msgstr "Yüklü Eklentiler:"
#: tools/editor/editor_plugin_settings.cpp
msgid "Version:"
@@ -2513,47 +2620,47 @@ msgstr "Durum:"
#: tools/editor/editor_profiler.cpp
msgid "Stop Profiling"
-msgstr ""
+msgstr "Kesitlemeyi Durdur"
#: tools/editor/editor_profiler.cpp
msgid "Start Profiling"
-msgstr ""
+msgstr "Kesitlemeyi Başlat"
#: tools/editor/editor_profiler.cpp
msgid "Measure:"
-msgstr ""
+msgstr "Ölçüm:"
#: tools/editor/editor_profiler.cpp
msgid "Frame Time (sec)"
-msgstr ""
+msgstr "Kare Zamanı (sn)"
#: tools/editor/editor_profiler.cpp
msgid "Average Time (sec)"
-msgstr ""
+msgstr "Ortalama Zaman (sn)"
#: tools/editor/editor_profiler.cpp
msgid "Frame %"
-msgstr ""
+msgstr "Kare %"
#: tools/editor/editor_profiler.cpp
msgid "Fixed Frame %"
-msgstr ""
+msgstr "Sabit Kare %"
#: tools/editor/editor_profiler.cpp tools/editor/script_editor_debugger.cpp
msgid "Time:"
-msgstr ""
+msgstr "Süre:"
#: tools/editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr ""
+msgstr "Kapsayıcı"
#: tools/editor/editor_profiler.cpp
msgid "Self"
-msgstr ""
+msgstr "Kendi"
#: tools/editor/editor_profiler.cpp
msgid "Frame #:"
-msgstr ""
+msgstr "Kare #:"
#: tools/editor/editor_reimport_dialog.cpp
msgid "Please wait for scan to complete."
@@ -2561,7 +2668,7 @@ msgstr "Tarama için bitmesini bekleyin."
#: tools/editor/editor_reimport_dialog.cpp
msgid "Current scene must be saved to re-import."
-msgstr "Yeniden içe aktarmak için şimdiki sahneyi kaydet."
+msgstr "Yeniden içe aktarmak için şu anki sahneyi kaydet."
#: tools/editor/editor_reimport_dialog.cpp
msgid "Save & Re-Import"
@@ -2573,19 +2680,19 @@ msgstr "Değiştirilmiş Kaynakları Yeniden İçe Aktar"
#: tools/editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
-msgstr ""
+msgstr "Mantığını _run() yöntemine yaz."
#: tools/editor/editor_run_script.cpp
msgid "There is an edited scene already."
-msgstr ""
+msgstr "Düzenlenmiş bir sahne zaten var."
#: tools/editor/editor_run_script.cpp
msgid "Couldn't instance script:"
-msgstr ""
+msgstr "Betik dizeci alınamadı:"
#: tools/editor/editor_run_script.cpp
msgid "Did you forget the 'tool' keyword?"
-msgstr ""
+msgstr "'araç' anahtar sözcüğünü unuttunuz mu?"
#: tools/editor/editor_run_script.cpp
msgid "Couldn't run script:"
@@ -2593,11 +2700,11 @@ msgstr "Betik çalıştırılamadı:"
#: tools/editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
-msgstr ""
+msgstr "'_run()' yöntemini unuttunuz mu?"
#: tools/editor/editor_settings.cpp
msgid "Default (Same as Editor)"
-msgstr ""
+msgstr "Önyüklü(Düzenleyici ile aynı)"
#: tools/editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -2614,33 +2721,34 @@ msgstr "Düğümden İçe Aktar:"
#: tools/editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
msgstr ""
+"file_type_cache.cch yazma için açılamıyor! Dizeç türü önbelleğe "
+"kaydedilmiyor!"
#: tools/editor/filesystem_dock.cpp
msgid "Same source and destination files, doing nothing."
-msgstr "Aynı dosya kaynağı ve hedefi, bir şey yapılmayacak."
+msgstr "Özdeş kaynak ve varış dizeçleri, hiçbir şey yapılmıyor."
#: tools/editor/filesystem_dock.cpp
msgid "Same source and destination paths, doing nothing."
-msgstr ""
+msgstr "Özdeş kaynak ve varış yolları, hiçbir şey yapılmıyor."
#: tools/editor/filesystem_dock.cpp
msgid "Can't move directories to within themselves."
-msgstr ""
+msgstr "Dizinleri kendi içlerine taşıyamazsınız."
#: tools/editor/filesystem_dock.cpp
msgid "Can't operate on '..'"
-msgstr ""
+msgstr "'..' üzerinde çalışılamıyor"
#: tools/editor/filesystem_dock.cpp
msgid "Pick New Name and Location For:"
-msgstr ""
+msgstr "Şunun için yeni ad ile konum seçin:"
#: tools/editor/filesystem_dock.cpp
msgid "No files selected!"
-msgstr "Hiçbir Dosya Seçilmedi!"
+msgstr "Hiçbir Dizeç Seçilmedi!"
#: tools/editor/filesystem_dock.cpp
-#, fuzzy
msgid "Instance"
msgstr "Örnek"
@@ -2654,11 +2762,11 @@ msgstr "Sahipleri Görüntüle.."
#: tools/editor/filesystem_dock.cpp
msgid "Copy Path"
-msgstr "Dosya Yolunu Kopyala"
+msgstr "Dizeç Yolunu Tıpkıla"
#: tools/editor/filesystem_dock.cpp
msgid "Rename or Move.."
-msgstr "İsim Değiştir veya Taşı.."
+msgstr "Yeniden Adlandır ya da Taşı.."
#: tools/editor/filesystem_dock.cpp
msgid "Move To.."
@@ -2670,15 +2778,15 @@ msgstr "Bilgi"
#: tools/editor/filesystem_dock.cpp
msgid "Show In File Manager"
-msgstr "Dosya Yöneticisinde Göster"
+msgstr "Dizeç Yöneticisinde Göster"
#: tools/editor/filesystem_dock.cpp
msgid "Re-Import.."
-msgstr ""
+msgstr "Yeniden İçe Aktar.."
#: tools/editor/filesystem_dock.cpp
msgid "Previous Directory"
-msgstr ""
+msgstr "Önceki Dizin"
#: tools/editor/filesystem_dock.cpp
msgid "Next Directory"
@@ -2686,15 +2794,15 @@ msgstr "Sıradaki Dizin"
#: tools/editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr "Dosya Sistemini Tekrar Tara"
+msgstr "Dizeç Düzenini Yeniden Tara"
#: tools/editor/filesystem_dock.cpp
msgid "Toggle folder status as Favorite"
-msgstr ""
+msgstr "Dizin Durumlarını Beğenilen Olarak Aç/Kapat"
#: tools/editor/filesystem_dock.cpp
msgid "Instance the selected scene(s) as child of the selected node."
-msgstr ""
+msgstr "Seçilen sahneyi/sahneleri seçilen düğüme çocuk olarak örneklendir."
#: tools/editor/filesystem_dock.cpp
msgid "Move"
@@ -2702,51 +2810,51 @@ msgstr "Taşı"
#: tools/editor/groups_editor.cpp
msgid "Add to Group"
-msgstr "Gruba Ekle"
+msgstr "Öbeğe Ekle"
#: tools/editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr "Gruptan Kaldır"
+msgstr "Öbekten Kaldır"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
msgid "No bit masks to import!"
-msgstr ""
+msgstr "Alınacak hiç bit örteci yok!"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Target path is empty."
-msgstr "Hedef dosya yolu boş."
+msgstr "Amaçlanan dizeç yolu boş."
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Target path must be a complete resource path."
-msgstr ""
+msgstr "Amaçlanan yol, tam bir kaynak yolu olmalıdır."
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Target path must exist."
-msgstr "Hedef dosya yolu mevcut olmalı."
+msgstr "Amaçlanan dizeç yolu var olmalı."
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "Save path is empty!"
-msgstr ""
+msgstr "Kayıt yolu boş!"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
msgid "Import BitMasks"
-msgstr ""
+msgstr "BitMasks İçe Aktar"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Source Texture(s):"
-msgstr ""
+msgstr "Kaynak Doku(lar):"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
@@ -2754,8 +2862,9 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
-msgstr "Hedef Dosya Yolu :"
+msgstr "Amaçlanan Dizeç Yolu :"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
@@ -2768,672 +2877,684 @@ msgstr "Kabul"
#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
msgid "Bit Mask"
-msgstr ""
+msgstr "Bit Örteci"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "No source font file!"
-msgstr ""
+msgstr "Kaynak yazı türü dizeci yok!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "No target font resource!"
-msgstr ""
+msgstr "Amaçlanan yazı türü kaynağı yok!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid ""
"Invalid file extension.\n"
"Please use .fnt."
msgstr ""
+"Geçersiz dizeç uzantısı.\n"
+"Lütfen .fnt uzantısını kullanın."
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Can't load/process source font."
-msgstr ""
+msgstr "Kaynak yazı tipi yüklenemiyor / işlenemiyor."
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Couldn't save font."
-msgstr ""
+msgstr "Yazı türü kaydedilemedi."
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Source Font:"
-msgstr ""
+msgstr "Yazı Türü Kaynağı:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Source Font Size:"
-msgstr ""
+msgstr "Kaynak Yazı Türü Boyutu:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Dest Resource:"
-msgstr ""
+msgstr "Varış Kaynağı:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "The quick brown fox jumps over the lazy dog."
-msgstr ""
+msgstr "Hızlı kahverengi tilki üşengeç köpeğin üstünden atlar."
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Test:"
-msgstr ""
+msgstr "Deneme:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Options:"
-msgstr ""
+msgstr "Seçenekler:"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Font Import"
-msgstr ""
+msgstr "Yazı Türü İçe Aktar"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid ""
"This file is already a Godot font file, please supply a BMFont type file "
"instead."
msgstr ""
+"Bu dizeç zaten bir Godot yazı türü dizecidir , lütfen bunun yerine bir "
+"BMFont türü dizeci sağlayın."
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Failed opening as BMFont file."
-msgstr ""
+msgstr "BMFont dizeci olarak açma başarısız oldu."
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
msgid "Invalid font custom source."
-msgstr ""
+msgstr "Geçersiz yazı türü özel kaynağı."
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Font"
-msgstr ""
+msgstr "Yazı Tipi"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "No meshes to import!"
-msgstr ""
+msgstr "İçe aktarılacak örüntü yok!"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "Single Mesh Import"
-msgstr ""
+msgstr "Tekil Örüntü İçe Aktar"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "Source Mesh(es):"
-msgstr ""
+msgstr "Kaynak Örüntü(leri):"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
-msgstr ""
+msgstr "Örüntü"
#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
msgid "Surface %d"
-msgstr ""
+msgstr "Yüzey %d"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "No samples to import!"
-msgstr ""
+msgstr "Alınacak örnek yok!"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "Import Audio Samples"
-msgstr ""
+msgstr "Ses Örneklerini İçe Aktar"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "Source Sample(s):"
-msgstr ""
+msgstr "Kaynak Örnek(leri):"
#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
msgid "Audio Sample"
-msgstr ""
+msgstr "Ses Örneği"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "New Clip"
-msgstr ""
+msgstr "Yeni Parça"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Animation Options"
-msgstr ""
+msgstr "Canlandırma Seçenekleri"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Flags"
-msgstr ""
+msgstr "Bayraklar"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Bake FPS:"
-msgstr ""
+msgstr "FPS'i Pişir:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Optimizer"
-msgstr ""
+msgstr "İyileştirici"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Max Linear Error"
-msgstr ""
+msgstr "En üst Doğrusal Sorun"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Max Angular Error"
-msgstr ""
+msgstr "En üst Açısal Sorun"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Max Angle"
-msgstr ""
+msgstr "En üst Açı"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Clips"
-msgstr ""
+msgstr "Parçalar"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Start(s)"
-msgstr ""
+msgstr "Başlangıç(lar)"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "End(s)"
-msgstr ""
+msgstr "Son(lar)"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
-msgstr ""
+msgstr "Döngü"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Filters"
-msgstr ""
+msgstr "Süzgeçler"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Source path is empty."
-msgstr ""
+msgstr "Kaynak yol boş."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Couldn't load post-import script."
-msgstr ""
+msgstr "İçe aktarma sonrası betik dizeci yüklenemedi."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Invalid/broken script for post-import."
-msgstr ""
+msgstr "İçe aktarma sonrası için geçersiz/bozuk betik dizeci."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Error importing scene."
-msgstr ""
+msgstr "İçe aktarırken sorun oluştu."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Import 3D Scene"
-msgstr ""
+msgstr "3B Sahneyi İçe Aktar"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Source Scene:"
-msgstr ""
+msgstr "Kaynak Sahne:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Same as Target Scene"
-msgstr ""
+msgstr "Hedef Sahne ile Aynı"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Shared"
-msgstr ""
+msgstr "Paylaşılan"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Target Texture Folder:"
-msgstr ""
+msgstr "Amaçlanan Doku Dizini:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Post-Process Script:"
-msgstr ""
+msgstr "İşlem Sonrası Betik Dizeci:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Custom Root Node Type:"
-msgstr ""
+msgstr "Özel Kök Düğüm Türü:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Auto"
-msgstr ""
+msgstr "Kendiliğinden"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr "Kök Düğüm adı:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
-msgstr ""
+msgstr "Aşağıdaki Dizeçler Eksik:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Import Anyway"
-msgstr ""
+msgstr "Yine de İçe Aktar"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Import & Open"
-msgstr ""
+msgstr "İçe Aktar & Aç"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Edited scene has not been saved, open imported scene anyway?"
-msgstr ""
+msgstr "Düzenlenen sahne kaydedilmedi, yine de içe aktarılan sahne açılsın mı?"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import Scene"
-msgstr ""
+msgstr "Sahneyi İçe Aktar"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Importing Scene.."
-msgstr ""
+msgstr "Sahneyi İçe Aktarıyor..."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Running Custom Script.."
-msgstr ""
+msgstr "Çalışan Özel Betik.."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "İçe aktarma sonrası betik dizeci yüklenemedi:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Invalid/broken script for post-import (check console):"
msgstr ""
+"İçe aktarma işlemi sonrası için geçersiz/bozuk betik dizeci (konsolu "
+"denetleyin):"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "İçe aktarma sonrası betik dizeci çalıştırılırken sorun oluştu:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Import Image:"
-msgstr ""
+msgstr "Bedizi İçe Aktar:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Can't import a file over itself:"
-msgstr ""
+msgstr "Bir dizeç kendisi üzerine içe aktaramıyor:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Couldn't localize path: %s (already local)"
-msgstr ""
+msgstr "Yol yerelleştirilemedi: %s (zaten yerel)"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "Saving.."
-msgstr ""
+msgstr "Kaydediliyor..."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "3D Scene Animation"
-msgstr ""
+msgstr "3B Sahne Canlandırması"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Uncompressed"
-msgstr ""
+msgstr "Sıkıştırılmamış"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Compress Lossless (PNG)"
-msgstr ""
+msgstr "Kayıpsız Sıkıştırma (PNG)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Compress Lossy (WebP)"
-msgstr ""
+msgstr "Kayıplı Sıkıştırma (WebP)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Compress (VRAM)"
-msgstr ""
+msgstr "Sıkıştır (VRAM)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Texture Format"
-msgstr ""
+msgstr "Doku Biçemi"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Texture Compression Quality (WebP):"
-msgstr ""
+msgstr "Doku Sıkıştırma Niteliği (WebP):"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Texture Options"
-msgstr ""
+msgstr "Doku Seçenekleri"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Please specify some files!"
-msgstr ""
+msgstr "Lütfen bazı dizeçleri belirtin!"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "At least one file needed for Atlas."
-msgstr ""
+msgstr "Atlas için en az bir dizeç gerekli."
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Error importing:"
-msgstr ""
+msgstr "İçe aktarırken sorun:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Only one file is required for large texture."
-msgstr ""
+msgstr "Büyük doku için yalnızca bir dizeç gereklidir."
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Max Texture Size:"
-msgstr ""
+msgstr "En üst Doku Boyutu:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Textures for Atlas (2D)"
-msgstr ""
+msgstr "Dokuları Atlas(2B) için içe aktar"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Cell Size:"
-msgstr ""
+msgstr "Odacık Boyutu:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Large Texture"
-msgstr ""
+msgstr "Geniş Doku"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Large Textures (2D)"
-msgstr ""
+msgstr "Büyük Boyutlu(2D) Dokuları İçe Aktar"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Source Texture"
-msgstr ""
+msgstr "Kaynak Doku"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Base Atlas Texture"
-msgstr ""
+msgstr "Temel Atlas Doku"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Source Texture(s)"
-msgstr ""
+msgstr "Kaynak Doku(lar)"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Textures for 2D"
-msgstr ""
+msgstr "2B için Dokuları İçe Aktar"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Textures for 3D"
-msgstr ""
+msgstr "3B için Dokuları İçe Aktar"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Textures"
-msgstr ""
+msgstr "Dokuları İçe Aktar"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "2D Texture"
-msgstr ""
+msgstr "2B Doku"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "3D Texture"
-msgstr ""
+msgstr "3B Doku"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Atlas Texture"
-msgstr ""
+msgstr "Atlas Doku"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid ""
"NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files to "
"the project."
msgstr ""
+"UYARI: 2B dokuların içe aktarılması zorunlu değildir. Png / jpg dizeçlerini "
+"tasarıya tıpkılamanız yeterlidir."
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Crop empty space."
-msgstr ""
+msgstr "Boş alanı kırp."
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Texture"
-msgstr ""
+msgstr "Doku"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Import Large Texture"
-msgstr ""
+msgstr "Büyük Dokuyu İçe Aktar"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Load Source Image"
-msgstr ""
+msgstr "Kaynak Bedizi Yükle"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Slicing"
-msgstr ""
+msgstr "Dilimleme"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Inserting"
-msgstr ""
+msgstr "Girdileme"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Saving"
-msgstr ""
+msgstr "Kaydediyor"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Couldn't save large texture:"
-msgstr ""
+msgstr "Büyük doku kaydedilemedi:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Build Atlas For:"
-msgstr ""
+msgstr "Atlası Şunun için Oluştur:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Loading Image:"
-msgstr ""
+msgstr "Bediz Yükleniyor:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Couldn't load image:"
-msgstr ""
+msgstr "Bediz yüklenemedi:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Converting Images"
-msgstr ""
+msgstr "Bedizleri Dönüştürüyor"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Cropping Images"
-msgstr ""
+msgstr "Bedizleri Kırpıyor"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Blitting Images"
-msgstr ""
+msgstr "Bedizleri Blitle"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Couldn't save atlas image:"
-msgstr ""
+msgstr "Atlas bedizi kaydedilemedi:"
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
msgid "Couldn't save converted texture:"
-msgstr ""
+msgstr "Dönüştürülmüş doku kaydedilemedi:"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Invalid source!"
-msgstr ""
+msgstr "Geçersiz kaynak!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Invalid translation source!"
-msgstr ""
+msgstr "Geçersiz çeviri kaynağı!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Column"
-msgstr ""
+msgstr "Dikeç"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
#: tools/editor/script_create_dialog.cpp
msgid "Language"
-msgstr ""
+msgstr "Dil"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "No items to import!"
-msgstr ""
+msgstr "Alınacak öğe yok!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "No target path!"
-msgstr ""
+msgstr "Amaçlanan yol yok!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Import Translations"
-msgstr ""
+msgstr "Çevirileri İçe Aktar"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Couldn't import!"
-msgstr ""
+msgstr "Alınamadı!"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Import Translation"
-msgstr ""
+msgstr "Çeviriyi İçe Aktar"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Source CSV:"
-msgstr ""
+msgstr "Kaynak CSV:"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Ignore First Row"
-msgstr ""
+msgstr "İlk Sırayı Yoksay"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Compress"
-msgstr ""
+msgstr "Sıkıştır"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Add to Project (engine.cfg)"
-msgstr ""
+msgstr "Tasarıya Ekle (engine.cfg)"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Import Languages:"
-msgstr ""
+msgstr "Dilleri İçe Aktar:"
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
msgid "Translation"
-msgstr ""
+msgstr "Çeviri"
#: tools/editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr ""
+msgstr "MultiNode Kur"
#: tools/editor/node_dock.cpp
msgid "Groups"
-msgstr ""
+msgstr "Öbekler"
#: tools/editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "İşaretleri ve Öbekleri düzenlemek için bir Düğüm seçin."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "KendindenOynatmayı Aç/Kapat"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr ""
+msgstr "Yeni Canlandırma Adı:"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr "Yeni Animasyon"
+msgstr "Yeni Canlandırma"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr "Animasyonun adını değiştir:"
+msgstr "Canlandırmanın Adını Değiştir:"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr "Animasyonu Kaldır"
+msgstr "Canlandırmayı Kaldır"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Invalid animation name!"
-msgstr "HATA: Geçersiz animasyon adı!"
+msgstr "SORUN: Geçersiz canlandırma adı!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Animation name already exists!"
-msgstr "HATA: Bu animasyonun adı zaten var!"
+msgstr "SORUN: Bu canlandırma adı zaten var!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr "Animasyonu Yeniden İsimlendir"
+msgstr "Canlandırmayı Yeniden Adlandır"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr "Animasyon Ekle"
+msgstr "Canlandırma Ekle"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr ""
+msgstr "Sonraki Değişeni Karıştır"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
-msgstr ""
+msgstr "Karışım Süresini Değiştir"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
-msgstr "Animasyon Yükle"
+msgstr "Canlandırma Yükle"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr "Animasyonu Yeniden Çıkar"
+msgstr "Canlandırmayı İkile"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to copy!"
-msgstr "HATA: Kopyalamak için bir animasyon yok!"
+msgstr "SORUN: Tıpkılamak için bir canlandırma yok!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation resource on clipboard!"
-msgstr ""
+msgstr "SORUN: Bellemde canlandırma kaynağı yok!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr ""
+msgstr "Yapıştırılan Canlandırma"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
-msgstr ""
+msgstr "Canlandırmayı Yapıştır"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to edit!"
-msgstr "HATA: Düzenlemek için bir animasyon yok!"
+msgstr "SORUN: Düzenlemek için bir canlandırma yok!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
+msgstr "Seçilen canlandırmayı geçerli konumdan geriye doğru oynat. (A)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "Seçilen canlandırmayı geriye doğru oynat. (Shift + A)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr ""
+msgstr "Canlandırmayı oynatmayı durdur. (S)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
+msgstr "Seçilen canlandırmayı başlangıç anından oynat. (ÜstKrkt + D)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr ""
+msgstr "Seçilen calandırmayı geçerli konumdan oynat. (D)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
-msgstr ""
+msgstr "Canlandırma konumu (saniye olarak)."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr ""
+msgstr "Düğüm için canlandırma arka oynatmasını ölçeklendir."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Create new animation in player."
-msgstr ""
+msgstr "Oynatıcıda yeni canlandırma oluşturun."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Load animation from disk."
-msgstr ""
+msgstr "Canlandırmayı saklaktan yükle."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Load an animation from disk."
-msgstr ""
+msgstr "Bir canlandırmayı saklaktan yükle."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Save the current animation"
-msgstr ""
+msgstr "Geçerli canlandırmayı kaydet"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Save As"
-msgstr ""
+msgstr "Başkaca Kaydet"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr ""
+msgstr "Oyuncudaki canlandırmaların dizelgesini görüntüle."
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
-msgstr ""
+msgstr "Yükleme sırasında KendindenOynat"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Target Blend Times"
-msgstr ""
+msgstr "Amaçlanan Karışma Zamanlarını Düzenle"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr ""
+msgstr "Canlandırma Araçları"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Copy Animation"
-msgstr ""
+msgstr "Canlandırmayı Tıpkıla"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr ""
+msgstr "Yeni Canlandırma Oluştur"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr ""
+msgstr "Canlandırma Adı:"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -3441,307 +3562,307 @@ msgstr ""
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Error!"
-msgstr ""
+msgstr "Sorun!"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "Süreleri Karıştır:"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Sonraki (Kendiliğinden Kuyruğu):"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
-msgstr ""
+msgstr "Çapraz Canlandırma Karışma Süreleri"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
-msgstr ""
+msgstr "Canlandırma"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "New name:"
-msgstr ""
+msgstr "Yeni ad:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr ""
+msgstr "Ölçekle:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade In (s):"
-msgstr ""
+msgstr "Açılma (sn):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade Out (s):"
-msgstr ""
+msgstr "Karartma (sn):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend"
-msgstr ""
+msgstr "Karıştır"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix"
-msgstr ""
+msgstr "Çırp"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr ""
+msgstr "Kendiliğinden Yeniden Başlat:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Restart (s):"
-msgstr ""
+msgstr "Yeniden Başlat (sn):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr ""
+msgstr "Rastgele Yeniden Başlama (sn):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Start!"
-msgstr ""
+msgstr "Başlat!"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Amount:"
-msgstr ""
+msgstr "Değer:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend:"
-msgstr ""
+msgstr "Karışma:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 0:"
-msgstr ""
+msgstr "Karışma 0:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 1:"
-msgstr ""
+msgstr "Karışma 1:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr ""
+msgstr "X-Sönülme Süresi (sn):"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Current:"
-msgstr ""
+msgstr "Geçerli:"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Add Input"
-msgstr ""
+msgstr "Giriş Ekle"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Clear Auto-Advance"
-msgstr ""
+msgstr "Kendiliğinden İlerlemeyi Temizle"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Set Auto-Advance"
-msgstr ""
+msgstr "Kendiliğinden İlerlemeyi Ayarla"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Delete Input"
-msgstr ""
+msgstr "Girişi Sil"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Rename"
-msgstr ""
+msgstr "Yeniden Adlandır"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr ""
+msgstr "Canlandırma ağacı geçerlidir."
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr ""
+msgstr "Canlandırma ağacı geçersizdir."
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation Node"
-msgstr ""
+msgstr "Canlandırma Düğümü"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "OneShot Node"
-msgstr ""
+msgstr "OneShot Düğümü"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "Düğümü Çırp"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr ""
+msgstr "Karıştır2 Düğümü"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr ""
+msgstr "Karıştır3 Düğümü"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr ""
+msgstr "Karıştır4 Düğümü"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr ""
+msgstr "TimeScale Düğümü"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr ""
+msgstr "TimeSeek Düğümü"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "Geçiş Düğümü"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
-msgstr ""
+msgstr "Canlandırmaları İçe Aktar.."
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "Düğüm Süzgeçlerini Düzenle"
#: tools/editor/plugins/animation_tree_editor_plugin.cpp
msgid "Filters.."
-msgstr ""
+msgstr "Süzgeçler..."
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Parsing %d Triangles:"
-msgstr ""
+msgstr "%d Üçgenlerini Ayrıştırma:"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Triangle #"
-msgstr ""
+msgstr "Üçgen #"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Light Baker Setup:"
-msgstr ""
+msgstr "Işık Pişirici Kurulumu:"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Parsing Geometry"
-msgstr ""
+msgstr "Uzambilgisini Ayrıştırıyor"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Fixing Lights"
-msgstr ""
+msgstr "Işıkları Sabitliyor"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Making BVH"
-msgstr ""
+msgstr "BVH Yapıyor"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Creating Light Octree"
-msgstr ""
+msgstr "Işık Sekağacı Oluşturuyor"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Creating Octree Texture"
-msgstr ""
+msgstr "Sekağaç Dokusu Oluşturuyor"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Transfer to Lightmaps:"
-msgstr ""
+msgstr "Işık Haritalarına Aktar:"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Allocating Texture #"
-msgstr ""
+msgstr "Doku Paylaşımı #"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Baking Triangle #"
-msgstr ""
+msgstr "Pişirme Üçgeni #"
#: tools/editor/plugins/baked_light_baker.cpp
msgid "Post-Processing Texture #"
-msgstr ""
+msgstr "İşleme-Sonrası Dokusu #"
#: tools/editor/plugins/baked_light_editor_plugin.cpp
msgid "Bake!"
-msgstr ""
+msgstr "Pişir!"
#: tools/editor/plugins/baked_light_editor_plugin.cpp
msgid "Reset the lightmap octree baking process (start over)."
-msgstr ""
+msgstr "Işık haritası sekağacı pişirme işlemini sıfırlayın (baştan başlayın)."
#: tools/editor/plugins/camera_editor_plugin.cpp
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Preview"
-msgstr ""
+msgstr "Önizleme"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr ""
+msgstr "Yapışmayı Yapılandır"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset:"
-msgstr ""
+msgstr "Izgarayı Kaydır:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step:"
-msgstr ""
+msgstr "Izgara Adımı:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
-msgstr ""
+msgstr "Dönme Kayması:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
-msgstr ""
+msgstr "Dönme Adımı:"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Pivot"
-msgstr ""
+msgstr "Ekseni Taşı"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Action"
-msgstr ""
+msgstr "Eylemi Taşı"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit IK Chain"
-msgstr ""
+msgstr "IK Zincirini Düzenle"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit CanvasItem"
-msgstr ""
+msgstr "CanvasItem Düzenle"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors"
-msgstr ""
+msgstr "Çapaları Değiştir"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom (%):"
-msgstr ""
+msgstr "Yaklaş (%):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr ""
+msgstr "Duruşu Yapıştır"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Select Mode"
-msgstr "Bir Düğüm Seç"
+msgstr "Biçim Seç"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
-msgstr ""
+msgstr "Sürükle: Döndürür"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+Drag: Move"
-msgstr ""
+msgstr "Alt+Sürükle: Taşır"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
msgstr ""
+"Ekseni Değiştirmek için 'v' dokunacına basın, Ekseni Sürüklemek için "
+"(sürüklerken) 'Shift + v' dokunaçlarına basın."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr ""
+msgstr "Alt + RMB: Derin dizelge seçimi"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Mode"
-msgstr "Şuraya Taşı.."
+msgstr "Biçimi Taşı"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr ""
+msgstr "Döndürme Biçimi"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
@@ -3749,61 +3870,63 @@ msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
+"Tıklanan konumdaki tüm nesnelerin bir dizelgesini gösterin\n"
+"(Seçme biçiminde Alt + RMB ile özdeş)."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
-msgstr ""
+msgstr "Nesnenin dönüş eksenini değiştirmek için tıklayın."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
-msgstr ""
+msgstr "Kaydırma Biçimi"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
+msgstr "Seçilen nesneyi yerine kilitleyin (taşınamaz)."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
-msgstr ""
+msgstr "Seçilen nesnenin kilidini açın (taşınabilir)."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
-msgstr ""
+msgstr "Nesnenin çocuğunun seçilemez olduğundan kuşkusuz olur."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
-msgstr ""
+msgstr "Nesnenin çocuğunun seçilebilme yeteneğini geri kazandırır."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr ""
+msgstr "Yapışma Kullan"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Show Grid"
-msgstr ""
+msgstr "Izgarayı Göster"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
-msgstr ""
+msgstr "Döndürme Yapışması Kullan"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "Göreceli Yapış"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Configure Snap.."
-msgstr ""
+msgstr "Yapışmayı Yapılandır.."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
-msgstr ""
+msgstr "Nokta Yapışması Kullan"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Expand to Parent"
-msgstr ""
+msgstr "Ataya genişletin"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Skeleton.."
@@ -3811,83 +3934,128 @@ msgstr "İskelet.."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make Bones"
-msgstr ""
+msgstr "Kemik Yap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Bones"
-msgstr ""
+msgstr "Kemikleri Temizle"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
-msgstr ""
+msgstr "Kemikleri Göster"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
-msgstr ""
+msgstr "IK Zinciri Yap"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr ""
+msgstr "IK Zincirini Temizle"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr ""
+msgstr "Görüş"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom Reset"
-msgstr "Yakınlaştırmayı Sıfırla"
+msgstr "Yakınlaşmayı Sıfırla"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Zoom Set.."
-msgstr "Yakınlaştırmayı Ayarla.."
+msgstr "Yakınlaşmayı Ayarla.."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr ""
+msgstr "İçre Seçimi"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
-msgstr ""
+msgstr "Kafes Seçimi"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchor"
-msgstr ""
+msgstr "Çapa"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Keys"
-msgstr ""
+msgstr "Açarlar Gir"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr ""
+msgstr "Açar Gir"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr ""
+msgstr "Açar Gir (Var Olan İzler)"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
-msgstr ""
+msgstr "Duruşu Tıpkıla"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr ""
+msgstr "Duruşu Temizle"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Set a Value"
-msgstr "Değeri Ata"
+msgstr "Bir Değer Ata"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap (Pixels):"
+msgstr "Yapış (Noktalara):"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr "Ekle %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr "Ekliyor %s.."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "Düğüm Oluştur"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "%s sahne örnekleme sorunu"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Tamam :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Çocuğun örnek alacağı bir ata yok."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "Bu işlem, seçilmiş tek bir düğüm gerektirir."
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr "Önyüklü tipi değiştir"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
msgstr ""
+"Sürükle & bırak + Shift: Kardeş olarak düğüm ekle\n"
+"Sürükle & bırak + Alt: Düğüm türünü değiştir"
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create Poly"
-msgstr ""
+msgstr "Çoklu Oluşturun"
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
@@ -3896,7 +4064,7 @@ msgstr ""
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Edit Poly"
-msgstr ""
+msgstr "Çokluyu Düzenleyin"
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
@@ -3905,2561 +4073,2595 @@ msgstr ""
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr ""
+msgstr "Çokluyu Düzenleyin (Noktayı Silin)"
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create a new polygon from scratch."
-msgstr ""
+msgstr "Sıfırdan yeni bir çokgen oluşturun."
#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Poly3D"
-msgstr ""
+msgstr "Çoklu3B Oluştur"
#: tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
-msgstr ""
+msgstr "Tutamacı Ayarla"
#: tools/editor/plugins/color_ramp_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
-msgstr ""
+msgstr "Renk Yokuşu Noktası Ekle / Kaldır"
#: tools/editor/plugins/color_ramp_editor_plugin.cpp
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Color Ramp"
-msgstr ""
+msgstr "Renk Yokuşunu Değiştir"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Creating Mesh Library"
-msgstr ""
+msgstr "Örüntü Betikevi Oluştur"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Thumbnail.."
-msgstr ""
+msgstr "Küçük Bediz.."
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr ""
+msgstr "%d öğe kaldırılsın mı?"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
#: tools/editor/plugins/theme_editor_plugin.cpp
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Item"
-msgstr ""
+msgstr "Öğe Ekle"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr ""
+msgstr "Seçilen Öğeyi Kaldır"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import from Scene"
-msgstr ""
+msgstr "Sahneden İçe Aktar"
#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Update from Scene"
-msgstr ""
+msgstr "Sahneden Güncelle"
#: tools/editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr ""
+msgstr "Öğe%d"
#: tools/editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr ""
+msgstr "Öğeler"
#: tools/editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr ""
+msgstr "Öğe Dizelgesi Düzenleyicisi"
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
-msgstr ""
+msgstr "Engelleyici Çokgeni Oluştur"
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Edit existing polygon:"
-msgstr ""
+msgstr "Var olan çokgeni düzenleyin:"
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "LMB: Move Point."
-msgstr ""
+msgstr "LMB: Taşıma Noktası."
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Ctrl+LMB: Split Segment."
-msgstr ""
+msgstr "Ctrl + LMB: Parçayı Böl."
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "RMB: Erase Point."
-msgstr ""
+msgstr "RMB: Noktayı Sil."
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh is empty!"
-msgstr ""
+msgstr "Örüntü boş!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
-msgstr ""
+msgstr "Durağan Üçlü Örüntü Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Convex Body"
-msgstr ""
+msgstr "Durağan Dışbükey Gövde Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr ""
+msgstr "Bu, sahne kökünde çalışmaz!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Shape"
-msgstr ""
+msgstr "Üçlü Örüntü Yüzeyi Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Shape"
-msgstr ""
+msgstr "Dışbükey Şekil Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
-msgstr ""
+msgstr "Yönlendirici Örüntüsü Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
-msgstr ""
+msgstr "MeshInstance herhangi bir Örüntüden yoksun!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh has not surface to create outlines from!"
-msgstr ""
+msgstr "Örüntü anahat oluşturmak için bir yüzeye sahip değil!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
-msgstr ""
+msgstr "Anahat oluşturulamadı!"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
-msgstr ""
+msgstr "Anahat Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
-msgstr ""
+msgstr "Üçlü Örüntü Durağan Gövdesi Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Static Body"
-msgstr ""
+msgstr "Dışbükey Durağan Gövde Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Collision Sibling"
-msgstr ""
+msgstr "Üçlü Örüntü Çarpışma Kardeşi Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Collision Sibling"
-msgstr ""
+msgstr "Dışbükey Çarpışma Kardeşi Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh.."
-msgstr ""
+msgstr "Anahat Örüntüsü Oluştur.."
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
-msgstr ""
+msgstr "Anahat Örüntüsü Oluştur"
#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Outline Size:"
-msgstr ""
+msgstr "Anahat Ölçüsü:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr ""
+msgstr "Örüntü kaynağı belirtilmedi (düğümde MultiMesh yok)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr ""
+msgstr "Hiçbir örüntü kaynağı belirtilmedi (ve MultiMesh, Örüntü içermiyor)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (invalid path)."
-msgstr ""
+msgstr "Örüntü kaynağı geçersiz (geçersiz yol)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr ""
+msgstr "Örüntü kaynağı geçersiz (bir MeshInstance değil)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr ""
+msgstr "Örüntü kaynağı geçersiz (Örüntü kaynağı içermiyor)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "No surface source specified."
-msgstr ""
+msgstr "Yüzey kaynağı belirtilmedi."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (invalid path)."
-msgstr ""
+msgstr "Yüzey kaynağı geçersiz (geçersiz yol)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no geometry)."
-msgstr ""
+msgstr "Yüzey kaynağı geçersiz (uzambilgisi yok)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no faces)."
-msgstr ""
+msgstr "Yüzey kaynağı geçersiz (yüzler yok)."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Parent has no solid faces to populate."
-msgstr ""
+msgstr "Atanın doldurmak için eksiksiz yüzleri yok."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Couldn't map area."
-msgstr ""
+msgstr "Alan eşleştirilemedi."
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Source Mesh:"
-msgstr ""
+msgstr "Bir Kaynak Örüntü Seçin:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Target Surface:"
-msgstr ""
+msgstr "Bir Amaçlanan Yüzeyi Seçin:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate Surface"
-msgstr ""
+msgstr "Yüzeyi Doldur"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate MultiMesh"
-msgstr ""
+msgstr "MultiMesh'i Doldur"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Target Surface:"
-msgstr ""
+msgstr "Amaçlanan Yüzey:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Source Mesh:"
-msgstr ""
+msgstr "Kaynak Örüntü:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "X-Axis"
-msgstr ""
+msgstr "X-Ekseni"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Y-Axis"
-msgstr ""
+msgstr "Y-Ekseni"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Z-Axis"
-msgstr ""
+msgstr "Z-Ekseni"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh Up Axis:"
-msgstr ""
+msgstr "Örüntü Üst Ekseni:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Rotation:"
-msgstr ""
+msgstr "Rastgele Döndürme:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Tilt:"
-msgstr ""
+msgstr "Rastgele Eğilme:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Scale:"
-msgstr ""
+msgstr "Rastgele Ölçek:"
#: tools/editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate"
-msgstr ""
+msgstr "Doldur"
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create Navigation Polygon"
-msgstr ""
+msgstr "Yönlendirici Çokgeni Oluştur"
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Remove Poly And Point"
-msgstr ""
+msgstr "Çokluyu ve Noktayı Kaldır"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Error loading image:"
-msgstr ""
+msgstr "Bediz yüklenirken sorun oluştu:"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "No pixels with transparency > 128 in image.."
-msgstr ""
+msgstr "Saydamlığı olan nokta yok > 128 bedizde.."
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Set Emission Mask"
-msgstr ""
+msgstr "Yayma Örtecini Ayarla"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Clear Emission Mask"
-msgstr ""
+msgstr "Yayma Örtecini Temizle"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
-msgstr ""
+msgstr "Yayma Örtecini Yükle"
#: tools/editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr ""
+msgstr "Üretilen Nokta Say:"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry."
-msgstr ""
+msgstr "Düğüm uzambilgisi içermiyor."
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry (faces)."
-msgstr ""
+msgstr "Düğüm uzambilgisi (yüzler) içermiyor."
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Faces contain no area!"
-msgstr ""
+msgstr "Yüzler alan içermez!"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "No faces!"
-msgstr ""
+msgstr "Yüzler yok!"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Generate AABB"
-msgstr ""
+msgstr "AABB Üret"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter From Mesh"
-msgstr ""
+msgstr "Örüntüden Yayıcı Oluştur"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter From Node"
-msgstr ""
+msgstr "Düğümden Yayıcı Oluştur"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Clear Emitter"
-msgstr ""
+msgstr "Yayıcıyı Temizle"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
-msgstr ""
+msgstr "Yayıcı Oluştur"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Emission Positions:"
-msgstr ""
+msgstr "Yayma Konumları:"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Emission Fill:"
-msgstr ""
+msgstr "Yayma Dolumu:"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Surface"
-msgstr ""
+msgstr "Yüzey"
#: tools/editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
-msgstr ""
+msgstr "Oylum"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Point from Curve"
-msgstr ""
+msgstr "Noktayı Eğriden Kaldır"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Add Point to Curve"
-msgstr ""
+msgstr "Noktayı Eğriye Ekle"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
-msgstr ""
+msgstr "Noktayı Eğriye Taşı"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Move In-Control in Curve"
-msgstr ""
+msgstr "Eğriye Denetimli Taşı"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Out-Control in Curve"
-msgstr ""
+msgstr "Eğriye Denetimsiz Taşı"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Select Points"
-msgstr ""
+msgstr "Noktaları Seç"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Shift+Drag: Select Control Points"
-msgstr ""
+msgstr "Shift + Sürükle: Denetim Noktalarını Seç"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Click: Add Point"
-msgstr ""
+msgstr "Tıkla: Nokta Ekle"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Right Click: Delete Point"
-msgstr ""
+msgstr "Sağ tıkla: Nokta Sil"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
msgid "Select Control Points (Shift+Drag)"
-msgstr ""
+msgstr "Denetim Noktalarını Seç (Shift + Sürükle)"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Add Point (in empty space)"
-msgstr ""
+msgstr "Nokta Ekle (boşlukta)"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Split Segment (in curve)"
-msgstr ""
+msgstr "Parçayı Ayır (eğriye göre)"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Delete Point"
-msgstr ""
+msgstr "Noktayı Sil"
#: tools/editor/plugins/path_2d_editor_plugin.cpp
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Close Curve"
-msgstr ""
+msgstr "Eğriyi Kapat"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
-msgstr ""
+msgstr "Eğrisel Nokta #"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Point Pos"
-msgstr ""
+msgstr "Eğri Noktası Konumu Ayarla"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Set Curve In Pos"
-msgstr ""
+msgstr "Eğriyi Konumda Ayarla"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Out Pos"
-msgstr ""
+msgstr "Eğri Çıkış Konumunu Ayarla"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Split Path"
-msgstr ""
+msgstr "Yolu Ayır"
#: tools/editor/plugins/path_editor_plugin.cpp
msgid "Remove Path Point"
-msgstr ""
+msgstr "Yol Noktasını Kaldır"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create UV Map"
-msgstr ""
+msgstr "UV Haritası Oluştur"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
-msgstr ""
+msgstr "UV Haritasını Dönüştür"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
-msgstr ""
+msgstr "Çokgen 2B UV Düzenleyicisi"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Point"
-msgstr ""
+msgstr "Noktayı Taşı"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
-msgstr ""
+msgstr "Ctrl: Döndür"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
-msgstr ""
+msgstr "ÜstKrkt: Tümünü Taşı"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
-msgstr ""
+msgstr "ÜstKrkt+Ctrl: Ölçek"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Polygon"
-msgstr ""
+msgstr "Çokgeni Taşı"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Rotate Polygon"
-msgstr ""
+msgstr "Çokgeni Döndür"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Scale Polygon"
-msgstr ""
+msgstr "Çokgeni Ölçekle"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon->UV"
-msgstr ""
+msgstr "Çokgen->UV"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV->Polygon"
-msgstr ""
+msgstr "UV->Çokgen"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
-msgstr ""
+msgstr "UV yi Temizle"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Snap"
-msgstr ""
+msgstr "Yapış"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Enable Snap"
-msgstr ""
+msgstr "Yapışmayı Enkinleştir"
#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid"
-msgstr ""
+msgstr "Izgara"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr ""
+msgstr "SORUN: Kaynak yüklenemedi!"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
-msgstr ""
+msgstr "Kaynak Ekle"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Rename Resource"
-msgstr ""
+msgstr "Kaynağı Yeniden Adlandır"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Resource"
-msgstr ""
+msgstr "Kaynağı Sil"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
-msgstr ""
+msgstr "Kaynak bellemi boş!"
#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Load Resource"
-msgstr ""
+msgstr "Kaynak Yükle"
#: tools/editor/plugins/rich_text_editor_plugin.cpp
msgid "Parse BBCode"
-msgstr ""
+msgstr "BBCode'u Ayrıştır"
#: tools/editor/plugins/sample_editor_plugin.cpp
msgid "Length:"
-msgstr ""
+msgstr "Uzunluk:"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Open Sample File(s)"
-msgstr ""
+msgstr "Örnek Dizeçleri Aç"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "ERROR: Couldn't load sample!"
-msgstr ""
+msgstr "SORUN: Örnek yüklenemedi!"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Add Sample"
-msgstr ""
+msgstr "Örnek Ekle"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Rename Sample"
-msgstr ""
+msgstr "Örneği Yeniden Addlandır"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Delete Sample"
-msgstr ""
+msgstr "Örneği Sil"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "16 Bits"
-msgstr ""
+msgstr "16 bit"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "8 Bits"
-msgstr ""
+msgstr "8 Bit"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Stereo"
-msgstr ""
+msgstr "Çiftli"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Mono"
-msgstr ""
+msgstr "Tekli"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Format"
-msgstr ""
+msgstr "Biçem"
#: tools/editor/plugins/sample_library_editor_plugin.cpp
msgid "Pitch"
-msgstr ""
+msgstr "Perde"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr ""
+msgstr "Kalıp kaydedilirken sorun oluştu"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
-msgstr ""
+msgstr "Kaydetme sorunu"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme"
-msgstr ""
+msgstr "Kalıp içe aktarılırken sorun oluştu"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Error importing"
-msgstr ""
+msgstr "İçe aktarma sorunu"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr ""
+msgstr "Kalıbı İçe Aktar"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As.."
-msgstr ""
+msgstr "Kalıbı Başkaca Kaydet.."
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Next script"
-msgstr ""
+msgstr "Sonraki betik"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Previous script"
-msgstr ""
+msgstr "Önceki betik"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/project_export.cpp
msgid "File"
-msgstr ""
+msgstr "Dizeç"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/property_editor.cpp
msgid "New"
-msgstr ""
+msgstr "Yeni"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save All"
-msgstr ""
+msgstr "Tümünü kaydet"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr ""
+msgstr "Betiği Yeniden Duyarlı Yükle"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
-msgstr ""
+msgstr "Öceki Geçmiş"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "History Next"
-msgstr ""
+msgstr "Sonraki Geçmiş"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
-msgstr ""
+msgstr "Kalıbı Yeniden Yükle"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save Theme"
-msgstr ""
+msgstr "Kalıbı Kaydet"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As"
-msgstr ""
+msgstr "Kalıbı Başkaca Kaydet"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close Docs"
-msgstr "Kapat"
+msgstr "Belgeleri Kapat"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "Kapat"
+msgstr "Tümünü Kapat"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Find.."
-msgstr ""
+msgstr "Bul.."
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Find Next"
-msgstr ""
+msgstr "Sonraki Bul"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Debug"
-msgstr ""
+msgstr "Kusur Ayıkla"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Step Over"
-msgstr ""
+msgstr "Adımla"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Step Into"
-msgstr ""
+msgstr "İçeri Adımla"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Break"
-msgstr ""
+msgstr "Ara Ver"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Continue"
-msgstr ""
+msgstr "Devam Et"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Keep Debugger Open"
-msgstr ""
+msgstr "Kusurayıkları Açık Tut"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Window"
-msgstr ""
+msgstr "Pencere"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Move Left"
-msgstr ""
+msgstr "Sola Taşı"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Move Right"
-msgstr ""
+msgstr "Sağa Taşı"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Tutorials"
-msgstr ""
+msgstr "Öğreticiler"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Open https://godotengine.org at tutorials section."
-msgstr ""
+msgstr "https://godotengine.org bağlantısını öğreticiler bölümünde aç."
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Classes"
-msgstr ""
+msgstr "Bölütler"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Search the class hierarchy."
-msgstr ""
+msgstr "Bölüt sıradüzenini Ara."
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
-msgstr ""
+msgstr "Başvuru belgelerinde arama yap."
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Go to previous edited document."
-msgstr ""
+msgstr "Daha önce düzenlenmiş belgeye git."
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Go to next edited document."
-msgstr ""
+msgstr "Düzenlenmiş bir sonraki belgeye git."
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
-msgstr ""
+msgstr "Betik Oluştur"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid ""
"The following files are newer on disk.\n"
"What action should be taken?:"
msgstr ""
+"Aşağıdaki dizeçler saklakta daha yeni.\n"
+"Hangi eylem yapılsın?:"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Reload"
-msgstr ""
+msgstr "Yeniden Yükle"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid "Resave"
-msgstr ""
+msgstr "Yeniden Kaydet"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Debugger"
-msgstr ""
+msgstr "Kusurayıklar"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid ""
"Built-in scripts can only be edited when the scene they belong to is loaded"
msgstr ""
+"Gömülü betik dizeçleri yalnızca ait oldukları sahne yüklendiğinde "
+"düzenlenebilirler"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Pick Color"
-msgstr ""
+msgstr "Renk Seç"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
-msgstr ""
+msgstr "Yukarı Taşı"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Down"
-msgstr ""
+msgstr "Aşağı Taşı"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Indent Left"
-msgstr ""
+msgstr "Sola Girintile"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Indent Right"
-msgstr ""
+msgstr "Sağa Girintile"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
-msgstr ""
+msgstr "Yorumu Aç / Kapat"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Clone Down"
-msgstr ""
+msgstr "Aşağıya Eşle"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr ""
+msgstr "Simgeyi Tamamla"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
-msgstr ""
+msgstr "İzleyenin Boşluklarını Kırp"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
-msgstr ""
+msgstr "Kendinden Girintili"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr ""
+msgstr "Tüm Kesme Noktalarını Kaldır"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Goto Next Breakpoint"
-msgstr ""
+msgstr "Sonraki Kesme Noktasına Git"
#: tools/editor/plugins/script_text_editor.cpp
msgid "Goto Previous Breakpoint"
-msgstr ""
+msgstr "Önceki Kesme Noktasına Git"
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Find Previous"
-msgstr ""
+msgstr "Öncekini Bul"
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Replace.."
-msgstr ""
+msgstr "Değiştir.."
#: tools/editor/plugins/script_text_editor.cpp
msgid "Goto Function.."
-msgstr ""
+msgstr "İşleve Git.."
#: tools/editor/plugins/script_text_editor.cpp
#: tools/editor/plugins/shader_editor_plugin.cpp
msgid "Goto Line.."
-msgstr ""
+msgstr "Dizeye Git.."
#: tools/editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
+msgstr "Bağlamsal Yardım"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
-msgstr ""
+msgstr "Basamaklı Sabiti Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Constant"
-msgstr ""
+msgstr "Vec Sabitini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Constant"
-msgstr ""
+msgstr "RGB Sabitini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Operator"
-msgstr ""
+msgstr "Basamaklı İşletmeni Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Operator"
-msgstr ""
+msgstr "Vec İşletmenini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Scalar Operator"
-msgstr ""
+msgstr "Vec Basamaklı İşletmeni Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Operator"
-msgstr ""
+msgstr "RGB İşletmenini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Toggle Rot Only"
-msgstr ""
+msgstr "Yalnız Döndürmeye Geçiş Yap"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Function"
-msgstr ""
+msgstr "Basamaklı İşlevi Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Function"
-msgstr ""
+msgstr "Vec İşlevini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Uniform"
-msgstr ""
+msgstr "Basamaklı Tekdüzenini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Uniform"
-msgstr ""
+msgstr "Vec Tekdüzenini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Uniform"
-msgstr ""
+msgstr "RGB Tekdüzenini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Default Value"
-msgstr ""
+msgstr "Önyüklü Değeri Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change XForm Uniform"
-msgstr ""
+msgstr "XForm Tekdüzenini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Texture Uniform"
-msgstr ""
+msgstr "Doku Tekdüzenini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Cubemap Uniform"
-msgstr ""
+msgstr "Küp Eşleşme Tekdüzenini Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Comment"
-msgstr ""
+msgstr "Yorumu Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add/Remove to Color Ramp"
-msgstr ""
+msgstr "Renk Yokuşuna Ekle / Kaldır"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add/Remove to Curve Map"
-msgstr ""
+msgstr "Eğri Haritası Ekle / Kaldır"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Curve Map"
-msgstr ""
+msgstr "Eğri Haritasını Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Input Name"
-msgstr ""
+msgstr "Giriş Adını Değiştir"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Connect Graph Nodes"
-msgstr ""
+msgstr "Çizge Düğümlerini Bağla"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Disconnect Graph Nodes"
-msgstr ""
+msgstr "Çizge Düğümlerinin Bağlantılarını Kes"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Remove Shader Graph Node"
-msgstr ""
+msgstr "Gölgelendirici Çizge Düğümünü Kaldır"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Move Shader Graph Node"
-msgstr ""
+msgstr "Gölgelendirici Çizge Düğümünü Taşı"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Duplicate Graph Node(s)"
-msgstr ""
+msgstr "Çizge Düğüm(lerini) İkile"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Delete Shader Graph Node(s)"
-msgstr ""
+msgstr "Gölgelendirici Çizge Düğümünü Sil"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Cyclic Connection Link"
-msgstr ""
+msgstr "Sorun: Döngüsel İlişki Bağlantısı"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Missing Input Connections"
-msgstr ""
+msgstr "Sorun: Giriş Bağlantıları Eksik"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add Shader Graph Node"
-msgstr ""
+msgstr "Gölgelendirici Çizge Düğümü Ekle"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
-msgstr ""
+msgstr "Dikey"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective"
-msgstr ""
+msgstr "Derinlik"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
-msgstr ""
+msgstr "Dönüşüm Durduruldu."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "X-Axis Transform."
-msgstr ""
+msgstr "X-Ekseni Dönüşümü."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Y-Axis Transform."
-msgstr ""
+msgstr "Y-Eksen Dönüşümü."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Z-Axis Transform."
-msgstr ""
+msgstr "Z-Eksen Dönüşümü."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Plane Transform."
-msgstr ""
+msgstr "Düzlem Dönüşümünü Görüntüle."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling to %s%%."
-msgstr ""
+msgstr "Şuna %s%% Ölçeklendiriliyor."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
-msgstr ""
+msgstr "%s Düzey Dönüyor."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View."
-msgstr ""
+msgstr "Alttan Görünüm."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom"
-msgstr ""
+msgstr "Alt"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
-msgstr ""
+msgstr "Üstten Görünüm."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
-msgstr ""
+msgstr "Üst"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
-msgstr ""
+msgstr "Arkadan Görünüm."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rear"
-msgstr ""
+msgstr "Arka"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
-msgstr ""
+msgstr "Önden Görünüm."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Front"
-msgstr ""
+msgstr "Ön"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
-msgstr ""
+msgstr "Soldan Görünüm."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Left"
-msgstr ""
+msgstr "Sol"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
-msgstr ""
+msgstr "Sağdan Görünüm."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Right"
-msgstr ""
+msgstr "Sağ"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Keying is disabled (no key inserted)."
-msgstr ""
+msgstr "Açar ekleme devre dışı (eklenmiş açar yok)."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Animation Key Inserted."
-msgstr ""
+msgstr "Canlandırma Açarı Eklendi."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Align with view"
-msgstr ""
+msgstr "Görünüme Ayarla"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Environment"
-msgstr ""
+msgstr "Çevre"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Audio Listener"
-msgstr ""
+msgstr "Ses Dinleyici"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Gizmos"
-msgstr ""
+msgstr "Zımbırtılar"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
-msgstr ""
+msgstr "XForm İletişim Kutusu"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "No scene selected to instance!"
-msgstr ""
+msgstr "Örnek vermek için hiçbir sahne seçilmedi!"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Instance at Cursor"
-msgstr ""
+msgstr "Göstergede Örnekle"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Could not instance scene!"
-msgstr ""
+msgstr "Sahne Örneklenemedi!"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode (W)"
-msgstr ""
+msgstr "Taşıma Biçimi (W)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode (E)"
-msgstr ""
+msgstr "Döndürme Biçimi (E)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode (R)"
-msgstr ""
+msgstr "Ölçek Biçimi (R)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr ""
+msgstr "Alttan Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr ""
+msgstr "Üstten Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
-msgstr ""
+msgstr "Arkadan Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Front View"
-msgstr ""
+msgstr "Önden Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Left View"
-msgstr ""
+msgstr "Soldan Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Right View"
-msgstr ""
+msgstr "Sağdan Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal view"
-msgstr ""
+msgstr "Derinlik / Dikey Görünüme Değiştir"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr ""
+msgstr "Canlandırma Açarı Ekle"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr ""
+msgstr "Başlatıma Odaklan"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
-msgstr ""
+msgstr "Seçime Odaklan"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Align Selection With View"
-msgstr ""
+msgstr "Seçimi Görünüme Ayarla"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform"
-msgstr ""
+msgstr "Dönüşüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Local Coords"
-msgstr ""
+msgstr "Yerel Konaçlar"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
-msgstr ""
+msgstr "Dönüştürme İletişim Kutusu.."
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Use Default Light"
-msgstr ""
+msgstr "Önyüklü Işık Kullan"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Use Default sRGB"
-msgstr ""
+msgstr "Önyüklü sRGB'yi Kullan"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr ""
+msgstr "1 Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr ""
+msgstr "2 Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr ""
+msgstr "2 Görünüm (Alt)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr ""
+msgstr "3 Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr ""
+msgstr "3 Görünüm (Alt)"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr ""
+msgstr "4 Görünüm"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
-msgstr ""
+msgstr "Olağanı Görüntüle"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Display Wireframe"
-msgstr ""
+msgstr "Telkafes Görüntüle"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Display Overdraw"
-msgstr ""
+msgstr "Abartı Görüntüle"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Display Shadeless"
-msgstr ""
+msgstr "Gölgesiz Görüntüle"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr ""
+msgstr "Başlatım Görünümü"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
-msgstr ""
+msgstr "Izgara Görünümü"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
-msgstr ""
+msgstr "Yapışma Ayarları"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Translate Snap:"
-msgstr ""
+msgstr "Yapışmayı Çevir:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr ""
+msgstr "Yapışmayı Döndür (düzey):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr ""
+msgstr "Yapışmayı Ölçekle (%):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
-msgstr ""
+msgstr "Görüntüleme Ayarları"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Default Light Normal:"
-msgstr ""
+msgstr "Önyüklü Işığın Olağanı:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Ambient Light Color:"
-msgstr ""
+msgstr "Ortam Işığı Rengi:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
-msgstr ""
+msgstr "Perspektif FOV (düzey):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr ""
+msgstr "Z-Yakını Göster:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr ""
+msgstr "Z-Uzağı Görüntüle:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
-msgstr ""
+msgstr "Dönüşümü Değiştir"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
-msgstr ""
+msgstr "Çevir:"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate (deg.):"
-msgstr ""
+msgstr "Döndür (düzey):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Scale (ratio):"
-msgstr ""
+msgstr "Ölçek (oran):"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
-msgstr ""
+msgstr "Dönüştürme Türü"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Pre"
-msgstr ""
+msgstr "Öncesi"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Post"
-msgstr ""
+msgstr "Sonrası"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
-msgstr ""
+msgstr "SORUN: Kare kaynağı yüklenemedi!"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frame"
-msgstr ""
+msgstr "Çerçeve Ekle"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Resource clipboard is empty or not a texture!"
-msgstr ""
+msgstr "Kaynak bellem boş ya da bu bir doku değil!"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Paste Frame"
-msgstr ""
+msgstr "Çerçeveyi Yapıştır"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Empty"
-msgstr ""
+msgstr "Boş Ekle"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Canlandırma Döngüsünü Değiştir"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
-msgstr ""
+msgstr "Canlandırma FPS'sini Değiştir"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "(empty)"
-msgstr ""
+msgstr "(boş)"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animations"
-msgstr ""
+msgstr "Canlandırmalar"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed (FPS):"
-msgstr ""
+msgstr "Hız (FPS):"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animation Frames"
-msgstr ""
+msgstr "Canlandırma Çerçeveleri"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (Before)"
-msgstr ""
+msgstr "Boş Ekle (Önce)"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (After)"
-msgstr ""
+msgstr "Boş Ekle (Sonra)"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Up"
-msgstr ""
+msgstr "Yukarı"
#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Down"
-msgstr ""
+msgstr "Aşağı"
#: tools/editor/plugins/style_box_editor_plugin.cpp
msgid "StyleBox Preview:"
-msgstr ""
+msgstr "StyleBox Önizleme:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr ""
+msgstr "Yapışma Biçimi:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "<None>"
-msgstr ""
+msgstr "<Yok>"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "Nokta Yapışması"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr ""
+msgstr "Izgara Yapışması"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr ""
+msgstr "Kendinden Dilimle"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr ""
+msgstr "Kaydırma:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
-msgstr ""
+msgstr "Adım:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Separation:"
-msgstr ""
+msgstr "Ayrım:"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region"
-msgstr ""
+msgstr "Doku Bölgesi"
#: tools/editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region Editor"
-msgstr ""
+msgstr "Doku Bölgesi Düzenleyicisi"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
-msgstr ""
+msgstr "Kalıbı dizece kaydedemiyoruz:"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add All Items"
-msgstr ""
+msgstr "Tüm Öğeleri Ekle"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add All"
-msgstr ""
+msgstr "Tümünü Ekle"
#: tools/editor/plugins/theme_editor_plugin.cpp
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Item"
-msgstr ""
+msgstr "Öğeyi Kaldır"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Theme"
-msgstr ""
+msgstr "Kalıp"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
-msgstr ""
+msgstr "Bölüt Öğeleri Ekle"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr ""
+msgstr "Bölüt Öğelerini Kaldır"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Template"
-msgstr ""
+msgstr "Boş Kalıp Oluştur"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Editor Template"
-msgstr ""
+msgstr "Boş Düzenleyici Kalıbı Oluştur"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "CheckBox Radio1"
-msgstr ""
+msgstr "OnayKutusu Radyo1"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "CheckBox Radio2"
-msgstr ""
+msgstr "OnayKutusu Radyo2"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Item"
-msgstr ""
+msgstr "Öğe"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
-msgstr ""
+msgstr "Öğeyi Denetle"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Checked Item"
-msgstr ""
+msgstr "Denetlenen Öğe"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Has"
-msgstr ""
+msgstr "Var"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Many"
-msgstr ""
+msgstr "Çok"
#: tools/editor/plugins/theme_editor_plugin.cpp tools/editor/project_export.cpp
msgid "Options"
-msgstr ""
+msgstr "Seçenekler"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Have,Many,Several,Options!"
-msgstr ""
+msgstr "Bir Çok,Seçenek,Var!"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
-msgstr ""
+msgstr "Sekme 1"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Tab 2"
-msgstr ""
+msgstr "Sekme 2"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Tab 3"
-msgstr ""
+msgstr "Sekme 3"
#: tools/editor/plugins/theme_editor_plugin.cpp
#: tools/editor/project_settings.cpp tools/editor/scene_tree_editor.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Type:"
-msgstr ""
+msgstr "Tür:"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Data Type:"
-msgstr ""
+msgstr "Veri Türü:"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Icon"
-msgstr ""
+msgstr "Simge"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Style"
-msgstr ""
+msgstr "Yoldam"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Color"
-msgstr ""
+msgstr "Renk"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
-msgstr ""
+msgstr "TileMap'i Boya"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr ""
+msgstr "İkile"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase TileMap"
-msgstr ""
+msgstr "TileMap'i Sil"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase selection"
-msgstr ""
+msgstr "Seçimi Sil"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Find tile"
-msgstr ""
+msgstr "Döşentiyi Bul"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
-msgstr ""
+msgstr "Tersine Çevir"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Mirror X"
-msgstr ""
+msgstr "X'e Aynala"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Mirror Y"
-msgstr ""
+msgstr "Y'ye Aynala"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Bucket"
-msgstr ""
+msgstr "Kova"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
-msgstr ""
+msgstr "Karo Seç"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
-msgstr ""
+msgstr "Seç"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 0 degrees"
-msgstr ""
+msgstr "0 Düzeyde Döndür"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 90 degrees"
-msgstr ""
+msgstr "90 Düzeyde Döndür"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 180 degrees"
-msgstr ""
+msgstr "180 Düzeyde Döndür"
#: tools/editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 270 degrees"
-msgstr ""
+msgstr "270 Düzeyde Döndür"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Could not find tile:"
-msgstr ""
+msgstr "Karo Bulunamadı:"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Item name or ID:"
-msgstr ""
+msgstr "Öğe adı yada kimliği:"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene?"
-msgstr ""
+msgstr "Sahneden mi oluşturulsun?"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from scene?"
-msgstr ""
+msgstr "Sahneden birleştirilsin mi?"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
-msgstr ""
+msgstr "Sahneden Oluştur"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
-msgstr ""
+msgstr "Sahneden Birleştir"
#: tools/editor/plugins/tile_set_editor_plugin.cpp
#: tools/editor/script_editor_debugger.cpp
msgid "Error"
-msgstr ""
+msgstr "Sorun"
#: tools/editor/project_export.cpp
msgid "Edit Script Options"
-msgstr ""
+msgstr "Betik Seçeneklerini Düzenle"
#: tools/editor/project_export.cpp
msgid "Please export outside the project folder!"
-msgstr ""
+msgstr "Lütfen tasarı dizininin dışına aktarın!"
#: tools/editor/project_export.cpp
msgid "Error exporting project!"
-msgstr ""
+msgstr "Tasarı gönderilirken sorun oluştu!"
#: tools/editor/project_export.cpp
msgid "Error writing the project PCK!"
-msgstr ""
+msgstr "Tasarının PCK'ini yazarken sorun oluştu!"
#: tools/editor/project_export.cpp
msgid "No exporter for platform '%s' yet."
+msgstr "Şu anda '%s' ortamı için dışa aktarıcı yok."
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "Yeni Kaynak Oluştur"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "Uygun ad"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Include"
+#, fuzzy
+msgid "Organization"
+msgstr "Geçiş"
+
+#: tools/editor/project_export.cpp
+msgid "City"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Change Image Group"
+#, fuzzy
+msgid "State"
+msgstr "Durum:"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Group name can't be empty!"
+msgid "User alias"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Invalid character in group name!"
+#, fuzzy
+msgid "Password"
+msgstr "Gizyazı:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "Geçerli damgalar:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "Yeni ad:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Group name already exists!"
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
msgstr ""
#: tools/editor/project_export.cpp
-msgid "Add Image Group"
+msgid "Fill Keystore/Release User and Release Password"
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Include"
+msgstr "Katıştır"
+
+#: tools/editor/project_export.cpp
+msgid "Change Image Group"
+msgstr "Bediz Öbeğini Değiştir"
+
+#: tools/editor/project_export.cpp
+msgid "Group name can't be empty!"
+msgstr "Öbek adı boş olamaz!"
+
+#: tools/editor/project_export.cpp
+msgid "Invalid character in group name!"
+msgstr "Öbek adında geçersiz damga!"
+
+#: tools/editor/project_export.cpp
+msgid "Group name already exists!"
+msgstr "Öbek adı zaten var!"
+
+#: tools/editor/project_export.cpp
+msgid "Add Image Group"
+msgstr "Bediz Öbeği Ekle"
+
+#: tools/editor/project_export.cpp
msgid "Delete Image Group"
-msgstr ""
+msgstr "Bediz Öbeğini Sil"
#: tools/editor/project_export.cpp
msgid "Atlas Preview"
-msgstr ""
+msgstr "Atlas Önizleme"
#: tools/editor/project_export.cpp
msgid "Project Export Settings"
-msgstr ""
+msgstr "Tasarıyı Dışa Aktarma Ayarları"
#: tools/editor/project_export.cpp
msgid "Target"
-msgstr ""
+msgstr "Amaç"
#: tools/editor/project_export.cpp
msgid "Export to Platform"
-msgstr ""
+msgstr "Ortama Aktar"
#: tools/editor/project_export.cpp
msgid "Resources"
-msgstr ""
+msgstr "Kaynaklar"
#: tools/editor/project_export.cpp
msgid "Export selected resources (including dependencies)."
-msgstr ""
+msgstr "Seçilen kaynakları dışa aktar (bağımlılıklar dahil)."
#: tools/editor/project_export.cpp
msgid "Export all resources in the project."
-msgstr ""
+msgstr "Tasarıdaki tüm kaynakları dışa aktarın."
#: tools/editor/project_export.cpp
msgid "Export all files in the project directory."
-msgstr ""
+msgstr "Tasarı dizinindeki tüm dizeçleri dışa aktarın."
#: tools/editor/project_export.cpp
msgid "Export Mode:"
-msgstr ""
+msgstr "Dışa Aktarma Biçimi:"
#: tools/editor/project_export.cpp
msgid "Resources to Export:"
-msgstr ""
+msgstr "Dışa Aktarılacak Kaynaklar:"
#: tools/editor/project_export.cpp
msgid "Action"
-msgstr ""
+msgstr "Eylem"
#: tools/editor/project_export.cpp
msgid ""
"Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"
msgstr ""
+"Kaynak olmayan dizeçleri dışa aktarmak için kullanılan süzgeçler (virgülle "
+"ayrılmış, ör. * .json, * .txt):"
#: tools/editor/project_export.cpp
msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"
msgstr ""
+"Dışa aktarma işleminden hariç tutulacak süzgeçler (virgülle ayrılmış, ör. * ."
+"json, * .txt):"
#: tools/editor/project_export.cpp
msgid "Convert text scenes to binary on export."
-msgstr ""
+msgstr "Dışa aktarmada yazı sahnelerini ikili hale getirin."
#: tools/editor/project_export.cpp
msgid "Images"
-msgstr ""
+msgstr "Bedizler"
#: tools/editor/project_export.cpp
msgid "Keep Original"
-msgstr ""
+msgstr "Özgün Tut"
#: tools/editor/project_export.cpp
msgid "Compress for Disk (Lossy, WebP)"
-msgstr ""
+msgstr "Saklak İçin Sıkıştır (Kayıplı, WebP)"
#: tools/editor/project_export.cpp
msgid "Compress for RAM (BC/PVRTC/ETC)"
-msgstr ""
+msgstr "RAM için Sıkıştır (BC / PVRTC / ETC)"
#: tools/editor/project_export.cpp
msgid "Convert Images (*.png):"
-msgstr ""
+msgstr "Bedizleri Dönüştür (*.png):"
#: tools/editor/project_export.cpp
msgid "Compress for Disk (Lossy) Quality:"
-msgstr ""
+msgstr "Saklak İçin Sıkıştır (Kayıplı) Nitelik:"
#: tools/editor/project_export.cpp
msgid "Shrink All Images:"
-msgstr ""
+msgstr "Tüm Bedizleri Küçült:"
#: tools/editor/project_export.cpp
msgid "Compress Formats:"
-msgstr ""
+msgstr "Sıkıştırma Biçemleri:"
#: tools/editor/project_export.cpp
msgid "Image Groups"
-msgstr ""
+msgstr "Bediz Öbekleri"
#: tools/editor/project_export.cpp
msgid "Groups:"
-msgstr ""
+msgstr "Öbekler:"
#: tools/editor/project_export.cpp
msgid "Compress Disk"
-msgstr ""
+msgstr "Saklağı Sıkıştır"
#: tools/editor/project_export.cpp
msgid "Compress RAM"
-msgstr ""
+msgstr "RAM'i Sıkıştır"
#: tools/editor/project_export.cpp
msgid "Compress Mode:"
-msgstr ""
+msgstr "Sıkıştırma Biçimi:"
#: tools/editor/project_export.cpp
msgid "Lossy Quality:"
-msgstr ""
+msgstr "Kayıplı Nitelik:"
#: tools/editor/project_export.cpp
msgid "Atlas:"
-msgstr ""
+msgstr "Atlas :"
#: tools/editor/project_export.cpp
msgid "Shrink By:"
-msgstr ""
+msgstr "Küçült:"
#: tools/editor/project_export.cpp
msgid "Preview Atlas"
-msgstr ""
+msgstr "Atlası Önizle"
#: tools/editor/project_export.cpp
msgid "Image Filter:"
-msgstr ""
+msgstr "Bediz Süzgeci:"
#: tools/editor/project_export.cpp
msgid "Images:"
-msgstr ""
+msgstr "Bedizler:"
#: tools/editor/project_export.cpp
msgid "Select None"
-msgstr ""
+msgstr "Hiçbir Şey Seçilmedi"
#: tools/editor/project_export.cpp
msgid "Group"
-msgstr ""
+msgstr "Öbek"
#: tools/editor/project_export.cpp
msgid "Samples"
-msgstr ""
+msgstr "Örnekler"
#: tools/editor/project_export.cpp
msgid "Sample Conversion Mode: (.wav files):"
-msgstr ""
+msgstr "Örnek Dönüşüm Biçimi: (.wav dizeçleri):"
#: tools/editor/project_export.cpp
msgid "Keep"
-msgstr ""
+msgstr "Tut"
#: tools/editor/project_export.cpp
msgid "Compress (RAM - IMA-ADPCM)"
-msgstr ""
+msgstr "Sıkıştır (RAM - IMA-ADPCM)"
#: tools/editor/project_export.cpp
msgid "Sampling Rate Limit (Hz):"
-msgstr ""
+msgstr "Örnekleme Oranının Sınırı (Hz):"
#: tools/editor/project_export.cpp
msgid "Trim"
-msgstr ""
+msgstr "Buda"
#: tools/editor/project_export.cpp
msgid "Trailing Silence:"
-msgstr ""
+msgstr "Sessizliği İzliyor:"
#: tools/editor/project_export.cpp
msgid "Script"
-msgstr ""
+msgstr "Betik"
#: tools/editor/project_export.cpp
msgid "Script Export Mode:"
-msgstr ""
+msgstr "Betik Dışa Aktarım Biçimi:"
#: tools/editor/project_export.cpp
msgid "Text"
-msgstr ""
+msgstr "Yazı"
#: tools/editor/project_export.cpp
msgid "Compiled"
-msgstr ""
+msgstr "Derlenmiş"
#: tools/editor/project_export.cpp
msgid "Encrypted (Provide Key Below)"
-msgstr ""
+msgstr "Şifreli (Açarı Aşağıda Belirtin)"
#: tools/editor/project_export.cpp
msgid "Script Encryption Key (256-bits as hex):"
-msgstr ""
+msgstr "Betik Şifreleme Açarı (Hex olarak 256-bit):"
#: tools/editor/project_export.cpp
msgid "Export PCK/Zip"
-msgstr ""
+msgstr "PCK/Zip Dizecini Dışa Aktar"
#: tools/editor/project_export.cpp
msgid "Export Project PCK"
-msgstr ""
+msgstr "Tasarı PCK Dışa Aktar"
#: tools/editor/project_export.cpp
msgid "Export.."
-msgstr ""
+msgstr "Dışa Aktar.."
#: tools/editor/project_export.cpp
msgid "Project Export"
-msgstr ""
+msgstr "Tasarı Dışa Aktar"
#: tools/editor/project_export.cpp
msgid "Export Preset:"
-msgstr ""
+msgstr "Ön Ayarları Dışa Aktar:"
#: tools/editor/project_manager.cpp
msgid "Invalid project path, the path must exist!"
-msgstr ""
+msgstr "Geçersiz tasarı yolu, yolun var olması gerekir!"
#: tools/editor/project_manager.cpp
msgid "Invalid project path, engine.cfg must not exist."
-msgstr ""
+msgstr "Geçersiz tasarı yolu, engine.cfg var olmaması gerekir."
#: tools/editor/project_manager.cpp
msgid "Invalid project path, engine.cfg must exist."
-msgstr ""
+msgstr "Geçersiz tasarı yolu, engine.cfg var olması gerekir."
#: tools/editor/project_manager.cpp
msgid "Imported Project"
-msgstr ""
+msgstr "İçe Aktarılan Tasarı"
#: tools/editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
-msgstr ""
+msgstr "Geçersiz tasarı yolu (bir şey değişti mi?)."
#: tools/editor/project_manager.cpp
msgid "Couldn't create engine.cfg in project path."
-msgstr ""
+msgstr "engine.cfg tasarı yolunda oluşturulamadı."
#: tools/editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "Aşağıdaki dizeçlerin, çıkından ayıklanma işlemi başarısız oldu:"
#: tools/editor/project_manager.cpp
msgid "Package Installed Successfully!"
-msgstr ""
+msgstr "Çıkın Başarı ile Kuruldu!"
#: tools/editor/project_manager.cpp
msgid "Import Existing Project"
-msgstr ""
+msgstr "Var olan Tasarıyı İçe Aktar"
#: tools/editor/project_manager.cpp
msgid "Project Path (Must Exist):"
-msgstr ""
+msgstr "Tasarı Yolu (Var Olması Gerekir):"
#: tools/editor/project_manager.cpp
msgid "Project Name:"
-msgstr ""
+msgstr "Tasarı Adı:"
#: tools/editor/project_manager.cpp
msgid "Create New Project"
-msgstr ""
+msgstr "Yeni Tasarı Oluştur"
#: tools/editor/project_manager.cpp
msgid "Project Path:"
-msgstr ""
+msgstr "Tasarı Yolu:"
#: tools/editor/project_manager.cpp
msgid "Install Project:"
-msgstr ""
+msgstr "Tasarıyı Kur:"
#: tools/editor/project_manager.cpp
msgid "Install"
-msgstr ""
+msgstr "Kur"
#: tools/editor/project_manager.cpp
msgid "Browse"
-msgstr ""
+msgstr "Gözat"
#: tools/editor/project_manager.cpp
msgid "New Game Project"
-msgstr ""
+msgstr "Yeni Oyun Tasarısı"
#: tools/editor/project_manager.cpp
msgid "That's a BINGO!"
-msgstr ""
+msgstr "Yaşa BE!"
#: tools/editor/project_manager.cpp
msgid "Unnamed Project"
-msgstr ""
+msgstr "Adsız Tasarı"
#: tools/editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
-msgstr ""
+msgstr "Birden fazla tasarı açmakta kararlı mısınız?"
#: tools/editor/project_manager.cpp
msgid "Are you sure to run more than one project?"
-msgstr ""
+msgstr "Birden fazla tasarıyı çalıştırmaya kararlı mısınız?"
#: tools/editor/project_manager.cpp
msgid "Remove project from the list? (Folder contents will not be modified)"
msgstr ""
+"Tasarıyı dizelgeden kaldırmak mı istiyorsunuz? (Dizin içeriği değiştirilmez)"
#: tools/editor/project_manager.cpp
msgid ""
"You are about the scan %s folders for existing Godot projects. Do you "
"confirm?"
msgstr ""
+"Var olan Godot tasarıları için %s dizin taraması yapıyorsunuz. Onaylıyor "
+"musunuz?"
#: tools/editor/project_manager.cpp
msgid "Project Manager"
-msgstr ""
+msgstr "Tasarı Yöneticisi"
#: tools/editor/project_manager.cpp
msgid "Project List"
-msgstr ""
+msgstr "Tasarı Dizelgesi"
#: tools/editor/project_manager.cpp
msgid "Run"
-msgstr ""
+msgstr "Çalıştır"
#: tools/editor/project_manager.cpp
msgid "Scan"
-msgstr ""
+msgstr "Tara"
#: tools/editor/project_manager.cpp
-#, fuzzy
msgid "Select a Folder to Scan"
-msgstr "Bir Düğüm Seç"
+msgstr "Tarama için bir Dizin Seç"
#: tools/editor/project_manager.cpp
msgid "New Project"
-msgstr ""
+msgstr "Yeni Tasarı"
#: tools/editor/project_manager.cpp
msgid "Exit"
-msgstr ""
+msgstr "Çık"
#: tools/editor/project_settings.cpp
msgid "Key "
-msgstr ""
+msgstr "Dokunaç "
#: tools/editor/project_settings.cpp
msgid "Joy Button"
-msgstr ""
+msgstr "Eğlence Düğmesi"
#: tools/editor/project_settings.cpp
msgid "Joy Axis"
-msgstr ""
+msgstr "Eğlence Ekseni"
#: tools/editor/project_settings.cpp
msgid "Mouse Button"
-msgstr ""
+msgstr "Fare Düğmesi"
#: tools/editor/project_settings.cpp
msgid "Invalid action (anything goes but '/' or ':')."
-msgstr ""
+msgstr "Geçersiz işlem (her şey ancak şu '/' ya da şuna ':' gider)."
#: tools/editor/project_settings.cpp
msgid "Action '%s' already exists!"
-msgstr ""
+msgstr "İşlem '%s' zaten var!"
#: tools/editor/project_settings.cpp
msgid "Rename Input Action Event"
-msgstr ""
+msgstr "Giriş İşlem Olayını Yeniden Adlandır"
#: tools/editor/project_settings.cpp
msgid "Add Input Action Event"
-msgstr ""
+msgstr "Giriş İşlem Olayı Ekle"
#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
msgid "Control+"
-msgstr ""
+msgstr "Denetim+"
#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
msgid "Press a Key.."
-msgstr ""
+msgstr "Bir Dokunaca Basın.."
#: tools/editor/project_settings.cpp
msgid "Mouse Button Index:"
-msgstr ""
+msgstr "Fare Düğme Dizini:"
#: tools/editor/project_settings.cpp
msgid "Left Button"
-msgstr ""
+msgstr "Sol Düğme"
#: tools/editor/project_settings.cpp
msgid "Right Button"
-msgstr ""
+msgstr "Sağ Düğme"
#: tools/editor/project_settings.cpp
msgid "Middle Button"
-msgstr ""
+msgstr "Orta Düğme"
#: tools/editor/project_settings.cpp
msgid "Wheel Up Button"
-msgstr ""
+msgstr "Tekerlek Yukarı Düğmesi"
#: tools/editor/project_settings.cpp
msgid "Wheel Down Button"
-msgstr ""
+msgstr "Tekerlek Aşağı Düğmesi"
#: tools/editor/project_settings.cpp
msgid "Button 6"
-msgstr ""
+msgstr "Düğme 6"
#: tools/editor/project_settings.cpp
msgid "Button 7"
-msgstr ""
+msgstr "Düğme 7"
#: tools/editor/project_settings.cpp
msgid "Button 8"
-msgstr ""
+msgstr "Düğme 8"
#: tools/editor/project_settings.cpp
msgid "Button 9"
-msgstr ""
+msgstr "Düğme 9"
#: tools/editor/project_settings.cpp
msgid "Joystick Axis Index:"
-msgstr ""
+msgstr "Oyunçubuğu Ekseni Dizini:"
#: tools/editor/project_settings.cpp
msgid "Joystick Button Index:"
-msgstr ""
+msgstr "Oyunçubuğu Düğme Dizini:"
#: tools/editor/project_settings.cpp
msgid "Add Input Action"
-msgstr ""
+msgstr "Giriş Eylemi Ekle"
#: tools/editor/project_settings.cpp
msgid "Erase Input Action Event"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
+msgstr "Giriş Eylemi Olayını Sil"
#: tools/editor/project_settings.cpp
msgid "Error saving settings."
-msgstr ""
+msgstr "Ayarları kaydetme sorunu."
#: tools/editor/project_settings.cpp
msgid "Settings saved OK."
-msgstr ""
+msgstr "Ayarlar kaydedildi TAMAM."
#: tools/editor/project_settings.cpp
msgid "Add Translation"
-msgstr ""
+msgstr "Çeviri Ekle"
#: tools/editor/project_settings.cpp
msgid "Remove Translation"
-msgstr ""
+msgstr "Çeviriyi Kaldır"
#: tools/editor/project_settings.cpp
msgid "Add Remapped Path"
-msgstr ""
+msgstr "Yeniden Eşlenmiş Yol Ekle"
#: tools/editor/project_settings.cpp
msgid "Resource Remap Add Remap"
-msgstr ""
+msgstr "Kaynak Yeniden Eşleme Ekle Eşle"
#: tools/editor/project_settings.cpp
msgid "Change Resource Remap Language"
-msgstr ""
+msgstr "Kaynak Yeniden Eşleme Dilini Değiştir"
#: tools/editor/project_settings.cpp
msgid "Remove Resource Remap"
-msgstr ""
+msgstr "Kaynak Yeniden Eşlemesini Kaldır"
#: tools/editor/project_settings.cpp
msgid "Remove Resource Remap Option"
-msgstr ""
+msgstr "Kaynak Yeniden Eşle Seçeneğini Kaldır"
#: tools/editor/project_settings.cpp
msgid "Project Settings (engine.cfg)"
-msgstr ""
+msgstr "Tasarı Ayarları (engine.cfg)"
#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
msgid "General"
-msgstr ""
+msgstr "Genel"
#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "Özellik:"
#: tools/editor/project_settings.cpp
msgid "Del"
-msgstr ""
+msgstr "Sil"
#: tools/editor/project_settings.cpp
msgid "Copy To Platform.."
-msgstr ""
+msgstr "Düzleme Tıpkıla.."
#: tools/editor/project_settings.cpp
msgid "Input Map"
-msgstr ""
+msgstr "Eşleme Gir"
#: tools/editor/project_settings.cpp
msgid "Action:"
-msgstr ""
+msgstr "Eylem:"
#: tools/editor/project_settings.cpp
msgid "Device:"
-msgstr ""
+msgstr "Aygıt:"
#: tools/editor/project_settings.cpp
msgid "Index:"
-msgstr ""
+msgstr "Dizin:"
#: tools/editor/project_settings.cpp
msgid "Localization"
-msgstr ""
+msgstr "Yerelleştirme"
#: tools/editor/project_settings.cpp
msgid "Translations"
-msgstr ""
+msgstr "Çeviriler"
#: tools/editor/project_settings.cpp
msgid "Translations:"
-msgstr ""
+msgstr "Çeviriler:"
#: tools/editor/project_settings.cpp
msgid "Add.."
-msgstr ""
+msgstr "Ekle.."
#: tools/editor/project_settings.cpp
msgid "Remaps"
-msgstr ""
+msgstr "Yeniden Eşlemeler"
#: tools/editor/project_settings.cpp
msgid "Resources:"
-msgstr ""
+msgstr "Kaynaklar:"
#: tools/editor/project_settings.cpp
msgid "Remaps by Locale:"
-msgstr ""
+msgstr "Yerel Ayara Göre Yeniden Eşlemeler:"
#: tools/editor/project_settings.cpp
msgid "Locale"
-msgstr ""
+msgstr "Yerel"
#: tools/editor/project_settings.cpp
msgid "AutoLoad"
-msgstr ""
+msgstr "KendindenYükle"
#: tools/editor/project_settings.cpp
msgid "Plugins"
-msgstr ""
+msgstr "Eklentiler"
#: tools/editor/property_editor.cpp
msgid "Preset.."
-msgstr ""
+msgstr "Ön ayar.."
#: tools/editor/property_editor.cpp
msgid "Ease In"
-msgstr ""
+msgstr "Açılma"
#: tools/editor/property_editor.cpp
msgid "Ease Out"
-msgstr ""
+msgstr "Kararma"
#: tools/editor/property_editor.cpp
msgid "Zero"
-msgstr ""
+msgstr "Sıfır"
#: tools/editor/property_editor.cpp
msgid "Easing In-Out"
-msgstr ""
+msgstr "Açılma Kararma"
#: tools/editor/property_editor.cpp
msgid "Easing Out-In"
-msgstr ""
+msgstr "Kararma Açılma"
#: tools/editor/property_editor.cpp
msgid "File.."
-msgstr ""
+msgstr "Dizeç.."
#: tools/editor/property_editor.cpp
msgid "Dir.."
-msgstr ""
+msgstr "Diz.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
-msgstr ""
+msgstr "Yükle"
#: tools/editor/property_editor.cpp
msgid "Assign"
-msgstr ""
+msgstr "Ata"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "Betiği Çalıştır"
+msgstr "Yeni Betik"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
-msgstr ""
+msgstr "Dizeç yüklenirken sorun oluştu: Bir kaynak değil!"
#: tools/editor/property_editor.cpp
msgid "Couldn't load image"
-msgstr ""
+msgstr "Bediz yüklenemedi"
#: tools/editor/property_editor.cpp
msgid "Bit %d, val %d."
-msgstr ""
+msgstr "Bit %d, val %d."
#: tools/editor/property_editor.cpp
msgid "On"
-msgstr ""
+msgstr "Açık"
#: tools/editor/property_editor.cpp
msgid "Properties:"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
+msgstr "Özellikleri:"
#: tools/editor/property_editor.cpp
msgid "Sections:"
-msgstr ""
+msgstr "Bölümler:"
#: tools/editor/property_selector.cpp
-#, fuzzy
msgid "Select Property"
-msgstr "Düzenleyici Özellik Ekle"
+msgstr "Nitelik Seç"
#: tools/editor/property_selector.cpp
-#, fuzzy
msgid "Select Method"
-msgstr "Bir Düğüm Seç"
+msgstr "Yöntem Seç"
#: tools/editor/pvrtc_compress.cpp
msgid "Could not execute PVRTC tool:"
-msgstr ""
+msgstr "PVRTC aracı çalıştırılamadı:"
#: tools/editor/pvrtc_compress.cpp
msgid "Can't load back converted image using PVRTC tool:"
-msgstr ""
+msgstr "PVRTC aracını kullanarak dönüştürülen bedizi geri yükleyemiyor:"
#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
msgid "Reparent Node"
-msgstr ""
+msgstr "Yeniden Ata Düğümü"
#: tools/editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
-msgstr ""
+msgstr "Yeniden Ata Konumu (Yeni Ata Seç):"
#: tools/editor/reparent_dialog.cpp
msgid "Keep Global Transform"
-msgstr ""
+msgstr "Bütünsel Dönüşümü Tut"
#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr ""
+msgstr "Yeniden Ata Yap"
#: tools/editor/resources_dock.cpp
msgid "Create New Resource"
-msgstr ""
+msgstr "Yeni Kaynak Oluştur"
#: tools/editor/resources_dock.cpp
msgid "Open Resource"
-msgstr ""
+msgstr "Kaynak Aç"
#: tools/editor/resources_dock.cpp
msgid "Save Resource"
-msgstr ""
+msgstr "Kaynağı Kaydet"
#: tools/editor/resources_dock.cpp
msgid "Resource Tools"
-msgstr ""
+msgstr "Kaynak Araçları"
#: tools/editor/resources_dock.cpp
msgid "Make Local"
-msgstr ""
+msgstr "Yerelleştir"
#: tools/editor/run_settings_dialog.cpp
msgid "Run Mode:"
-msgstr ""
+msgstr "Çalışma Biçimi:"
#: tools/editor/run_settings_dialog.cpp
msgid "Current Scene"
-msgstr ""
+msgstr "Şu anki Sahne"
#: tools/editor/run_settings_dialog.cpp
msgid "Main Scene"
-msgstr ""
+msgstr "Ana Sahne"
#: tools/editor/run_settings_dialog.cpp
msgid "Main Scene Arguments:"
-msgstr ""
+msgstr "Ana Sahne Değiştirgenleri:"
#: tools/editor/run_settings_dialog.cpp
msgid "Scene Run Settings"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
+msgstr "Sahne Çalıştırma Ayarları"
#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
-msgstr ""
+msgstr "Sahneleri örneklemek için ata yok."
#: tools/editor/scene_tree_dock.cpp
msgid "Error loading scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
+msgstr "%s Adlı sahne yüklenirken sorun oluştu"
#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
-msgstr ""
+msgstr "Tamam"
#: tools/editor/scene_tree_dock.cpp
msgid ""
"Cannot instance the scene '%s' because the current scene exists within one "
"of its nodes."
msgstr ""
+"Geçerli sahne, düğümlerinden birinin içinde bulunduğu için '%s' sahnesi "
+"örneklenemiyor."
#: tools/editor/scene_tree_dock.cpp
msgid "Instance Scene(s)"
-msgstr ""
+msgstr "Sahne(leri) Örnekle"
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
-msgstr ""
+msgstr "Bu işlem, ağaç kökü üzerinde yapılamaz."
#: tools/editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
-msgstr ""
+msgstr "Düğümü Ataya Taşı"
#: tools/editor/scene_tree_dock.cpp
msgid "Move Nodes In Parent"
-msgstr ""
+msgstr "Düğümleri Ataya Taşı"
#: tools/editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
-msgstr ""
+msgstr "İkile Düğüm(leri)"
#: tools/editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
-msgstr ""
+msgstr "Düğüm(ler) Silinsin mi?"
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "Bu işlem bir sahne olmadan yapılamaz."
#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
-msgstr ""
+msgstr "Bu işlem örneklenmiş sahnelerde yapılamaz."
#: tools/editor/scene_tree_dock.cpp
msgid "Save New Scene As.."
-msgstr ""
+msgstr "Yeni Sahneyi Başkaca Kaydet .."
#: tools/editor/scene_tree_dock.cpp
msgid "Makes Sense!"
-msgstr ""
+msgstr "Anlamlı!"
#: tools/editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
-msgstr ""
+msgstr "Yad bir sahnedeki düğümler üzerinde çalışamaz!"
#: tools/editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr ""
+msgstr "Geçerli sahneden kalıt aldığı düğümler üzerinde çalışamaz!"
#: tools/editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
+msgstr "Düğümleri Kaldır"
#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
msgstr ""
+"Yeni sahne kaydedilemedi. Olası bağımlılıklar (örnekler) karşılanamadı."
#: tools/editor/scene_tree_dock.cpp
msgid "Error saving scene."
-msgstr ""
+msgstr "Sahne kaydedilirken sorun oluştu."
#: tools/editor/scene_tree_dock.cpp
msgid "Error duplicating scene to save it."
-msgstr ""
+msgstr "Kaydetmek için sahne ikilenirken sorun oluştu."
#: tools/editor/scene_tree_dock.cpp
msgid "Edit Groups"
-msgstr ""
+msgstr "Öbekleri Düzenle"
#: tools/editor/scene_tree_dock.cpp
msgid "Edit Connections"
-msgstr ""
+msgstr "Bağlantıları Düzenle"
#: tools/editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
-msgstr ""
+msgstr "Düğümleri Sil"
#: tools/editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr ""
+msgstr "Çocuk Düğüm Ekle"
#: tools/editor/scene_tree_dock.cpp
msgid "Instance Child Scene"
-msgstr ""
+msgstr "Çocuk Sahnesini Örnekle"
#: tools/editor/scene_tree_dock.cpp
msgid "Change Type"
-msgstr ""
+msgstr "Türü Değiştir"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+msgid "Attach Script"
+msgstr "Betik İliştir"
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr "Betiği Temizle"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
-msgstr ""
+msgstr "Sahneden Birleştir"
#: tools/editor/scene_tree_dock.cpp
msgid "Save Branch as Scene"
-msgstr ""
+msgstr "Dalı Sahne olarak Kaydet"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete (No Confirm)"
-msgstr "Lütfen doğrulayınız..."
+msgstr "Sil (Doğrulama Yok)"
#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
-msgstr ""
+msgstr "Yeni Bir Düğüm Ekle / Oluştur"
#: tools/editor/scene_tree_dock.cpp
msgid ""
"Instance a scene file as a Node. Creates an inherited scene if no root node "
"exists."
msgstr ""
+"Sahne dizecini Düğüm olarak örneklendirin. Kök düğüm yoksa kalıtsal bir "
+"sahne oluşturur."
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
-msgstr ""
+msgid "Attach a new or existing script for the selected node."
+msgstr "Seçili düğüm için yeni veya mevcut bir betik iliştir."
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr ""
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr "Seçilen düğüm için betik temizle."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
-msgstr ""
+msgstr "Uzaysal Görünürlüğü Aç / Kapat"
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle CanvasItem Visible"
-msgstr ""
+msgstr "CanvasItem'ı Görünür Duruma Getir"
#: tools/editor/scene_tree_editor.cpp
msgid "Instance:"
-msgstr ""
+msgstr "Örnek:"
#: tools/editor/scene_tree_editor.cpp
msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
+msgstr "Geçersiz düğüm adı, aşağıdaki damgalara izin verilmiyor:"
#: tools/editor/scene_tree_editor.cpp
msgid "Rename Node"
-msgstr ""
+msgstr "Düğümü Yeniden Adlandır"
#: tools/editor/scene_tree_editor.cpp
msgid "Scene Tree (Nodes):"
-msgstr ""
+msgstr "Sahne Ağacı (Düğümler):"
#: tools/editor/scene_tree_editor.cpp
msgid "Editable Children"
-msgstr ""
+msgstr "Düzenlenebilir Çocuklar"
#: tools/editor/scene_tree_editor.cpp
msgid "Load As Placeholder"
-msgstr ""
+msgstr "Yer Tutucu Olarak Yükle"
#: tools/editor/scene_tree_editor.cpp
msgid "Discard Instancing"
-msgstr ""
+msgstr "Örneği Boşalt"
#: tools/editor/scene_tree_editor.cpp
msgid "Open in Editor"
-msgstr "Editörde Aç"
+msgstr "Düzenleyicide Aç"
#: tools/editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Clear Inheritance"
-msgstr "Mirası Temizle"
+msgstr "Kalıtı Temizle"
#: tools/editor/scene_tree_editor.cpp
msgid "Clear Inheritance? (No Undo!)"
-msgstr ""
+msgstr "Kalıt Silinsin mi? (Geri Alınamaz!)"
#: tools/editor/scene_tree_editor.cpp
-#, fuzzy
msgid "Clear!"
msgstr "Temiz!"
@@ -6469,32 +6671,31 @@ msgstr "Bir Düğüm Seç"
#: tools/editor/script_create_dialog.cpp
msgid "Invalid parent class name"
-msgstr "Geçersiz ebeveyn sınıf adı"
+msgstr "Geçersiz ata bölüt adı"
#: tools/editor/script_create_dialog.cpp
msgid "Valid chars:"
-msgstr "Geçerli karakterler:"
+msgstr "Geçerli damgalar:"
#: tools/editor/script_create_dialog.cpp
msgid "Invalid class name"
-msgstr "Geçersiz sınıf adı"
+msgstr "Geçersiz bölüt adı"
#: tools/editor/script_create_dialog.cpp
msgid "Valid name"
msgstr "Uygun ad"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "N/A"
msgstr "Uygulanamaz"
#: tools/editor/script_create_dialog.cpp
msgid "Class name is invalid!"
-msgstr "Sınıf adı geçersiz!"
+msgstr "Bölüt adı geçersiz!"
#: tools/editor/script_create_dialog.cpp
msgid "Parent class name is invalid!"
-msgstr "Ebeveyn sınıf adı geçersiz!"
+msgstr "Ata bölüt adı geçersiz!"
#: tools/editor/script_create_dialog.cpp
msgid "Invalid path!"
@@ -6502,44 +6703,47 @@ msgstr "Geçersiz yol!"
#: tools/editor/script_create_dialog.cpp
msgid "Could not create script in filesystem."
-msgstr ""
+msgstr "Dizeç düzeninde betik oluşturulamadı."
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr "Yazı tipi %s yüklerken sorun oluştu"
#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
-msgstr "Dosya yolu boş"
+msgstr "Yol boş"
#: tools/editor/script_create_dialog.cpp
msgid "Path is not local"
-msgstr ""
+msgstr "Yol yerel değil"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid base path"
msgstr "Geçersiz üst yol"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "Dosya mevcut"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "Geçersiz uzantı"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "Geçerli yol"
+msgid "Create new script"
+msgstr "Yeni Betik Oluştur"
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Load existing script"
+msgstr "Var olan betiği yükle"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
-msgstr "Sınıf Adı:"
+msgstr "Bölüt Adı:"
#: tools/editor/script_create_dialog.cpp
msgid "Built-In Script"
msgstr "Gömme Betik"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr "Düğüm Betiği Oluştur"
+msgid "Attach Node Script"
+msgstr "Düğüm Betiği İliştir"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6551,7 +6755,7 @@ msgstr "Uyarı"
#: tools/editor/script_editor_debugger.cpp
msgid "Error:"
-msgstr "Hata:"
+msgstr "Sorun:"
#: tools/editor/script_editor_debugger.cpp
msgid "Source:"
@@ -6559,27 +6763,27 @@ msgstr "Kaynak:"
#: tools/editor/script_editor_debugger.cpp
msgid "Function:"
-msgstr "Fonksiyon:"
+msgstr "İşlev:"
#: tools/editor/script_editor_debugger.cpp
msgid "Errors"
-msgstr "Hatalar"
+msgstr "Sorunlar"
#: tools/editor/script_editor_debugger.cpp
msgid "Child Process Connected"
-msgstr ""
+msgstr "Çocuk Süreç Bağlandı"
#: tools/editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
-msgstr ""
+msgstr "Önceki Örneği İncele"
#: tools/editor/script_editor_debugger.cpp
msgid "Inspect Next Instance"
-msgstr ""
+msgstr "Sonraki Örneğ İncele"
#: tools/editor/script_editor_debugger.cpp
msgid "Stack Frames"
-msgstr ""
+msgstr "Çerçeveleri Yığ"
#: tools/editor/script_editor_debugger.cpp
msgid "Variable"
@@ -6587,31 +6791,31 @@ msgstr "Değişken"
#: tools/editor/script_editor_debugger.cpp
msgid "Errors:"
-msgstr "Hatalar:"
+msgstr "Sorunlar:"
#: tools/editor/script_editor_debugger.cpp
msgid "Stack Trace (if applicable):"
-msgstr ""
+msgstr "İzi Yığ (uygulanabilirse):"
#: tools/editor/script_editor_debugger.cpp
msgid "Remote Inspector"
-msgstr ""
+msgstr "Dolaylı Denetçi"
#: tools/editor/script_editor_debugger.cpp
msgid "Live Scene Tree:"
-msgstr ""
+msgstr "Canlı Sahne Ağacı:"
#: tools/editor/script_editor_debugger.cpp
msgid "Remote Object Properties: "
-msgstr ""
+msgstr "Dolaylı Nesne Özellikleri: "
#: tools/editor/script_editor_debugger.cpp
msgid "Profiler"
-msgstr ""
+msgstr "Kesitçi"
#: tools/editor/script_editor_debugger.cpp
msgid "Monitor"
-msgstr "Ekran"
+msgstr "Görüntülük"
#: tools/editor/script_editor_debugger.cpp
msgid "Value"
@@ -6619,11 +6823,11 @@ msgstr "Değer"
#: tools/editor/script_editor_debugger.cpp
msgid "Monitors"
-msgstr "Ekranlar"
+msgstr "Görüntülükler"
#: tools/editor/script_editor_debugger.cpp
msgid "List of Video Memory Usage by Resource:"
-msgstr "Kaynağa Göre Video Belleği Kullanımının Listesi:"
+msgstr "Kaynağa Göre İzleti Belleği Kullanımının Dizelgesi:"
#: tools/editor/script_editor_debugger.cpp
msgid "Total:"
@@ -6631,7 +6835,7 @@ msgstr "Toplam:"
#: tools/editor/script_editor_debugger.cpp
msgid "Video Mem"
-msgstr "Video Belleği"
+msgstr "İzleti Belleği"
#: tools/editor/script_editor_debugger.cpp
msgid "Resource Path"
@@ -6647,23 +6851,23 @@ msgstr "Kullanım"
#: tools/editor/script_editor_debugger.cpp
msgid "Misc"
-msgstr ""
+msgstr "Türlü"
#: tools/editor/script_editor_debugger.cpp
msgid "Clicked Control:"
-msgstr ""
+msgstr "Tıklanan Denetim:"
#: tools/editor/script_editor_debugger.cpp
msgid "Clicked Control Type:"
-msgstr ""
+msgstr "Tıklanan Denetim Türü:"
#: tools/editor/script_editor_debugger.cpp
msgid "Live Edit Root:"
-msgstr ""
+msgstr "Canlı Kök Düzenle:"
#: tools/editor/script_editor_debugger.cpp
msgid "Set From Tree"
-msgstr ""
+msgstr "Ağaçtan Ayarla"
#: tools/editor/settings_config_dialog.cpp
msgid "Shortcuts"
@@ -6675,7 +6879,7 @@ msgstr "Işın Çapını Değiştir"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Camera FOV"
-msgstr ""
+msgstr "Kamera FOV'sunu Değiştir"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Camera Size"
@@ -6687,7 +6891,7 @@ msgstr "Küresel Şeklin Çapını Değiştir"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Box Shape Extents"
-msgstr "Kübik Şekli Genislet"
+msgstr "Kübik Şekli Genişlet"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Radius"
@@ -6695,12 +6899,55 @@ msgstr "Kapsülün Çapını Değiştir"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Height"
-msgstr "Kapsülün yüksekliğini değiştir"
+msgstr "Kapsülün Yüksekliğini Değiştir"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Ray Shape Length"
-msgstr ""
+msgstr "Işın Şeklinin Uzunluğunu Değiştir"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
-msgstr ""
+msgstr "Bildirim Kapsamını Değiştir"
+
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "Bildirim Kapsamını Değiştir"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance, bir BakedLight kaynağı içermez."
+
+#~ msgid "Vertex"
+#~ msgstr "Başucu"
+
+#~ msgid "Fragment"
+#~ msgstr "Bölümlenme"
+
+#~ msgid "Lighting"
+#~ msgstr "Aydınlatma"
+
+#~ msgid "Toggle Persisting"
+#~ msgstr "Sürdürmeyi Aç/Kapat"
+
+#~ msgid "Global"
+#~ msgstr "Bütünsel"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr ""
+#~ "Ata gizli olduğu için bu öğe görünür hale getirilemiyor. Önce atayı "
+#~ "göster."
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "Yollar '/' ile başlayamaz, mutlak yollar 'res://', 'user://' veya "
+#~ "'local://' ile başlamalıdır"
+
+#~ msgid "File exists"
+#~ msgstr "Dosya mevcut"
+
+#~ msgid "Valid path"
+#~ msgstr "Geçerli yol"
diff --git a/tools/translations/ur_PK.po b/tools/translations/ur_PK.po
index 188d2bb4c2..0eed08b52a 100644
--- a/tools/translations/ur_PK.po
+++ b/tools/translations/ur_PK.po
@@ -1,5 +1,5 @@
# Urdu (Pakistan) translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Muhammad Ali <ali@codeonion.com>, 2016.
@@ -33,12 +33,6 @@ msgid "step argument is zero!"
msgstr "سٹیپ کے ارگمنٹس سفر ہیں!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr ".یہ انسٹینس کے بغیر سکرپٹ نہی ہوتی"
@@ -385,74 +379,74 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -560,10 +554,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -623,7 +613,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1770,6 +1761,11 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "سب سکریپشن بنائیں"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1837,7 +1833,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2063,7 +2061,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "ایک مینو منظر چنیں"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2743,6 +2743,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2970,6 +2971,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3870,6 +3875,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4735,18 +4783,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5511,6 +5547,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5970,10 +6064,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6117,7 +6207,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6151,10 +6241,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6231,14 +6317,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6247,10 +6325,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6289,10 +6363,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6317,10 +6387,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6359,8 +6425,14 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Script"
+msgstr "سب سکریپشن بنائیں"
+
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "سب سکریپشن بنائیں"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6385,13 +6457,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6487,6 +6557,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6499,16 +6573,18 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
+#, fuzzy
+msgid "Create new script"
+msgstr "سب سکریپشن بنائیں"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr ""
+#, fuzzy
+msgid "Load existing script"
+msgstr "سب سکریپشن بنائیں"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6519,8 +6595,9 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Node Script"
+msgstr "سب سکریپشن بنائیں"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6685,3 +6762,8 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ"
+
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr ".نوٹفئر کے اکسٹنٹ کو تبدیل کیجیۓ"
diff --git a/tools/translations/zh_CN.po b/tools/translations/zh_CN.po
index 318d4186f3..58f79fac56 100644
--- a/tools/translations/zh_CN.po
+++ b/tools/translations/zh_CN.po
@@ -1,11 +1,12 @@
# Chinese (China) translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# 纯洁的坏蛋 <tqj.zyy@gmail.com>, 2016.
# 孤月蓝风 <trlanfeng@foxmail.com>, 2016.
+# ageazrael <ageazrael@gmail.com>, 2016.
# Bruce Guo <guoboism@hotmail.com>, 2016.
-# Geequlim <geequlim@gmail.com>, 2016.
+# Geequlim <geequlim@gmail.com>, 2016-2017.
# Luo Jun <vipsbpig@gmail.com>, 2016.
# oberon-tonya <360119124@qq.com>, 2016.
# wanfang liu <wanfang.liu@gmail.com>, 2016.
@@ -14,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-10-01 09:03+0000\n"
-"Last-Translator: oberon-tonya <360119124@qq.com>\n"
+"PO-Revision-Date: 2017-01-04 14:55+0000\n"
+"Last-Translator: Geequlim <geequlim@gmail.com>\n"
"Language-Team: Chinese (China) <https://hosted.weblate.org/projects/godot-"
"engine/godot/zh_CN/>\n"
"Language: zh_CN\n"
@@ -23,7 +24,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 2.9-dev\n"
+"X-Generator: Weblate 2.11-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -40,12 +41,6 @@ msgid "step argument is zero!"
msgstr "step参数为0!"
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr "脚本没有实例化"
@@ -105,7 +100,6 @@ msgid "Stack overflow with stack depth: "
msgstr "堆栈深度溢出: "
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Functions:"
msgstr "函数:"
@@ -118,14 +112,12 @@ msgid "Signals:"
msgstr "事件:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Name is not a valid identifier:"
msgstr "名称不是有效的标识符:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Name already in use by another func/var/signal:"
-msgstr "名称已经被其他的函数/变量/信号占用:"
+msgstr "名称已经被其他的函数/变量/事件占用:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
@@ -136,138 +128,120 @@ msgid "Rename Variable"
msgstr "重命名变量"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Rename Signal"
-msgstr "重命名信号"
+msgstr "重命名事件"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function"
msgstr "添加函数"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Variable"
msgstr "添加变量"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Signal"
-msgstr "添加信号"
+msgstr "添加事件"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Function"
-msgstr "移除函数"
+msgstr "删除函数"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Variable"
-msgstr "移除变量"
+msgstr "删除变量"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Editing Variable:"
msgstr "编辑变量:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Signal"
-msgstr "移除信号"
+msgstr "删除事件"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Editing Signal:"
-msgstr "连接事件:"
+msgstr "编辑事件:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Expression"
-msgstr "更改类型"
+msgstr "更改表达式"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node"
-msgstr "添加子节点"
+msgstr "添加节点"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature."
-msgstr "按住Meta键放置一个访问器,按住Shift键放置一个通用签名"
+msgstr "按住Meta键放置一个Getter节点,按住Shift键放置一个通用签名。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
+msgstr "按住Ctrl键放置一个Getter节点。按住Shift键放置一个通用签名。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a simple reference to the node."
-msgstr ""
+msgstr "按住Meta键放置一个场景节点的引用节点。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
+msgstr "按住Ctrl键放置一个场景节点的引用节点。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Meta to drop a Variable Setter."
-msgstr ""
+msgstr "按住Meta键放置变量的Setter节点。"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Hold Ctrl to drop a Variable Setter."
-msgstr "按住Ctrl键放置一个变量设定器。"
+msgstr "按住Ctrl键放置变量的Setter节点。"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Preload Node"
-msgstr "添加子节点"
+msgstr "添加Preload节点"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s) From Tree"
msgstr "从场景导入节点"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
-msgstr "添加访问器属性"
+msgstr "添加 Getter Property"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
-msgstr "添加设置器"
+msgstr "添加 Setter Property"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Condition"
-msgstr "拷贝动画"
+msgstr "条件节点(Condition)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "序列节点(Sequence)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Switch"
-msgstr ""
+msgstr "选择节点(Switch)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "遍历节点(Iterator)"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "条件循环节点(While)"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Return"
-msgstr "返回:"
+msgstr "返回节点(Return)"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
msgid "Call"
-msgstr "调用"
+msgstr "调用到"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Get"
-msgstr "设置"
+msgstr "获取"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/property_editor.cpp
@@ -296,9 +270,8 @@ msgid "Available Nodes:"
msgstr "有效节点:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Select or create a function to edit graph"
-msgstr "在 edit graph 中选择或者建立一个函数"
+msgstr "选择或创建一个函数来编辑图"
#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
#: tools/editor/connections_dialog.cpp
@@ -314,49 +287,41 @@ msgid "Close"
msgstr "关闭"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Signal Arguments:"
-msgstr "额外调用参数:"
+msgstr "编辑事件参数:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Variable:"
-msgstr "变量"
+msgstr "编辑变量:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change"
-msgstr "更改类型"
+msgstr "更改"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Delete Selected"
-msgstr "删除选中的文件?"
+msgstr "删除选择的节点"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/plugins/script_text_editor.cpp
msgid "Toggle Breakpoint"
-msgstr "切换断点"
+msgstr "设置断点"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Find Node Type"
-msgstr "查找下一项"
+msgstr "查找节点类型"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Copy Nodes"
-msgstr "拷贝姿势"
+msgstr "复制节点"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Cut Nodes"
-msgstr "新节点"
+msgstr "剪切节点"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Paste Nodes"
-msgstr "粘贴姿势"
+msgstr "粘贴节点"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
@@ -371,18 +336,16 @@ msgid "Iterator became invalid: "
msgstr "迭代器失效: "
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Invalid index property name."
-msgstr "基类名称非法"
+msgstr "属性名称非法"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
msgstr "基础对象不是一个节点!"
#: modules/visual_script/visual_script_func_nodes.cpp
-#, fuzzy
msgid "Path does not lead Node!"
-msgstr "必须是项目路径"
+msgstr "路径必须指向节点"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
@@ -405,97 +368,93 @@ msgid "VariableSet not found in script: "
msgstr "脚本中未找到VariableSet: "
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "Custom node has no _step() method, can't process graph."
-msgstr "自定义节点具备no_step()方法,不能生成图像"
+msgstr "自定义脚本节点不包含_step()方法,不能生成图。"
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
-msgstr "_step()的返回值无效,必须是整形(seq out),或字符串(error)。"
+msgstr "_step()的返回值无效,必须是整形(seq out)或字符串(error)。"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just pressed"
-msgstr ""
+msgstr "正好按下"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr ""
+msgstr "刚好释放"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
-msgstr ""
+msgstr "无法读取证书文件。路径和密码是否都正确?"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr "写入项目PCK文件出错!"
+msgstr "创建包(PCK)签名对象出错。"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "创建包(PCK)签名时出错。"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"找不到导出模版。\n"
+"下载并安装导出模版。"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr "名称非法:"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "字体大小非法。"
+msgstr "产品GUID非法。"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "父路径非法"
+msgstr "发布GUID非法"
-#: platform/winrt/export/export.cpp
-#, fuzzy
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr "自定义字体文件非法。"
+msgstr "无效的背景颜色。"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "Logo图片尺寸无效(图像尺寸必须是50x50)。"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -620,10 +579,6 @@ msgid ""
"as parent."
msgstr "VisibilityEnable2D类型的节点用于场景的根节点才能获得最好的效果。"
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr "BakedLightInstance未包含BakedLight资源。"
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -666,9 +621,8 @@ msgstr ""
"NavigationMeshInstance类型节点必须作为Navigation节点的子孙才能提供导航数据。"
#: scene/3d/remote_transform.cpp
-#, fuzzy
msgid "Path property must point to a valid Spatial node to work."
-msgstr "path属性必须指向一个合法的Particles2D节点才能正常工作。"
+msgstr "path属性必须指向一个合法的Spatial节点才能正常工作。"
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -695,7 +649,8 @@ msgstr ""
msgid "Cancel"
msgstr "取消"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "好的"
@@ -897,7 +852,6 @@ msgstr ""
"行时它们会自动隐藏。"
#: scene/main/viewport.cpp
-#, fuzzy
msgid ""
"This viewport is not set as render target. If you intend for it to display "
"its contents directly to the screen, make it a child of a Control so it can "
@@ -933,7 +887,6 @@ msgid "Disabled"
msgstr "已禁用"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "All Selection"
msgstr "所有选中项"
@@ -986,12 +939,10 @@ msgid "Anim Track Rename"
msgstr "重命名轨道"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Anim Track Change Interpolation"
msgstr "轨道修改为插值模式"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Anim Track Change Value Mode"
msgstr "轨道修改为值模式"
@@ -1131,7 +1082,6 @@ msgid "Change Anim Loop"
msgstr "修改动画循环"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Anim Create Typed Value Key"
msgstr "创建输入值的动画关键帧"
@@ -1200,7 +1150,6 @@ msgid "Anim. Optimizer"
msgstr "优化动画"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Max. Linear Error:"
msgstr "最大线性错误:"
@@ -1481,7 +1430,6 @@ msgid "Make Function"
msgstr "创建方法"
#: tools/editor/connections_dialog.cpp
-#, fuzzy
msgid "Deferred"
msgstr "延时"
@@ -1502,7 +1450,6 @@ msgid "Connecting Signal:"
msgstr "连接事件:"
#: tools/editor/connections_dialog.cpp
-#, fuzzy
msgid "Create Subscription"
msgstr "创建订阅"
@@ -1851,6 +1798,11 @@ msgid "Constants:"
msgstr "常量:"
#: tools/editor/editor_help.cpp
+#, fuzzy
+msgid "Property Description:"
+msgstr "简介:"
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr "方法描述:"
@@ -1892,7 +1844,7 @@ msgstr "配置.."
#: tools/editor/editor_log.cpp
msgid " Output:"
-msgstr "输出"
+msgstr " 输出"
#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
msgid "Re-Importing"
@@ -1918,7 +1870,9 @@ msgstr "保存资源出错!"
msgid "Save Resource As.."
msgstr "资源另存为.."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "好吧.."
@@ -2013,12 +1967,10 @@ msgid "Copy Resource"
msgstr "拷贝资源"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Make Built-In"
msgstr "使之内置"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Make Sub-Resources Unique"
msgstr "使子资源唯一化"
@@ -2151,7 +2103,9 @@ msgstr "退出到项目管理窗口(未保存的修改将丢失)?"
msgid "Pick a Main Scene"
msgstr "选择主场景"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr "额"
@@ -2289,7 +2243,6 @@ msgid "Quit to Project List"
msgstr "退出到项目列表"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Distraction Free Mode"
msgstr "无干扰模式"
@@ -2310,7 +2263,6 @@ msgid "Import"
msgstr "导入"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Miscellaneous project or scene-wide tools."
msgstr "其他工程或全场景工具"
@@ -2462,7 +2414,6 @@ msgid "Editor Layout"
msgstr "编辑器布局"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Toggle Fullscreen"
msgstr "全屏模式"
@@ -2635,12 +2586,10 @@ msgid "Time:"
msgstr "时间:"
#: tools/editor/editor_profiler.cpp
-#, fuzzy
msgid "Inclusive"
msgstr "包含"
#: tools/editor/editor_profiler.cpp
-#, fuzzy
msgid "Self"
msgstr "自身"
@@ -2846,6 +2795,7 @@ msgstr "源贴图:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr "目标路径:"
@@ -2871,7 +2821,6 @@ msgid "No target font resource!"
msgstr "请设置目标字体资源!"
#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-#, fuzzy
msgid ""
"Invalid file extension.\n"
"Please use .fnt."
@@ -2977,7 +2926,6 @@ msgid "Audio Sample"
msgstr "音效"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "New Clip"
msgstr "新片段"
@@ -2998,32 +2946,26 @@ msgid "Optimizer"
msgstr "优化"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Max Linear Error"
msgstr "最大线性误差"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Max Angular Error"
msgstr "最大角度误差"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Max Angle"
msgstr "最大角度"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Clips"
-msgstr "剪辑"
+msgstr "片段"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Start(s)"
msgstr "起点"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "End(s)"
msgstr "终点"
@@ -3041,12 +2983,10 @@ msgid "Source path is empty."
msgstr "源路径为空。"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Couldn't load post-import script."
msgstr "无法载入后导入脚本"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Invalid/broken script for post-import."
msgstr "后导入脚本被损坏或不合法"
@@ -3075,7 +3015,6 @@ msgid "Target Texture Folder:"
msgstr "目标贴图目录:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Post-Process Script:"
msgstr "后处理脚本:"
@@ -3088,6 +3027,10 @@ msgid "Auto"
msgstr "自动"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr "节点名称:"
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr "找不到下列文件:"
@@ -3117,17 +3060,14 @@ msgid "Running Custom Script.."
msgstr "执行自定义脚本.."
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Couldn't load post-import script:"
msgstr "无法载入后导入脚本:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Invalid/broken script for post-import (check console):"
msgstr "后处理脚本被损坏或不合法(查看控制台):"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Error running post-import script:"
msgstr "后处理脚本运行发生错误"
@@ -3384,7 +3324,6 @@ msgid "Translation"
msgstr "语言"
#: tools/editor/multi_node_edit.cpp
-#, fuzzy
msgid "MultiNode Set"
msgstr "多节点组"
@@ -3496,7 +3435,6 @@ msgid "Animation position (in seconds)."
msgstr "动画位置(单位:秒)"
#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Scale animation playback globally for the node."
msgstr "节点全局缩放动画回放"
@@ -3827,9 +3765,8 @@ msgid "Paste Pose"
msgstr "粘贴姿势"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Select Mode"
-msgstr "选择模式(Q)"
+msgstr "选择模式"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
@@ -3848,14 +3785,12 @@ msgid "Alt+RMB: Depth list selection"
msgstr "Alt+鼠标右键:显示鼠标点击位置下的所有节点列表"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Mode"
-msgstr "移动模式(W)"
+msgstr "移动模式"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Rotate Mode"
-msgstr "旋转模式(E)"
+msgstr "旋转模式"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/plugins/spatial_editor_plugin.cpp
@@ -3932,9 +3867,8 @@ msgid "Clear Bones"
msgstr "清除骨骼"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Show Bones"
-msgstr "添加骨骼"
+msgstr "显示骨骼"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
@@ -3997,6 +3931,49 @@ msgstr "设置值"
msgid "Snap (Pixels):"
msgstr "吸附(像素):"
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr "添加 %s"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr "新节点"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr "从%s实例化场景出错!"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "好吧"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "没有选中节点来添加实例。"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr "此操作只能应用于单个选中节点。"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr "修改默认值"
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4671,14 +4648,12 @@ msgid "Save Theme As"
msgstr "主题另存为"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close Docs"
-msgstr "拷贝到下一行"
+msgstr "关闭文档"
#: tools/editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "关闭"
+msgstr "关闭全部"
#: tools/editor/plugins/script_editor_plugin.cpp
#: tools/editor/plugins/script_text_editor.cpp
@@ -4788,12 +4763,11 @@ msgstr "调试器"
#: tools/editor/plugins/script_editor_plugin.cpp
msgid ""
"Built-in scripts can only be edited when the scene they belong to is loaded"
-msgstr ""
+msgstr "内建脚本只有在其所属的节点读取后才能被修改"
#: tools/editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Pick Color"
-msgstr "颜色"
+msgstr "拾取颜色"
#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
msgid "Move Up"
@@ -4866,29 +4840,17 @@ msgstr "前往行.."
msgid "Contextual Help"
msgstr "搜索光标位置"
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr "顶点"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr "片段"
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr "光照"
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
-msgstr ""
+msgstr "修改Scalar常量系数"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Constant"
-msgstr ""
+msgstr "修改Vec常量系数"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Constant"
-msgstr ""
+msgstr "修改RGB常量系数"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Operator"
@@ -4936,15 +4898,15 @@ msgstr "修改默认值"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change XForm Uniform"
-msgstr "修改Uniform XForm "
+msgstr "修改Uniform XForm"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Texture Uniform"
-msgstr "修改Uniform Texture "
+msgstr "修改Uniform纹理"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Cubemap Uniform"
-msgstr "修改Uniform Cubemap "
+msgstr "修改Uniform Cubemap"
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Comment"
@@ -5143,38 +5105,34 @@ msgid "Bottom View"
msgstr ""
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Top View"
-msgstr "视图"
+msgstr "Top视图"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Rear View"
-msgstr "视图"
+msgstr "Rear视图"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Front View"
-msgstr ""
+msgstr "正面视图"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Left View"
-msgstr "视图"
+msgstr "左视图"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Right View"
-msgstr ""
+msgstr "右视图"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal view"
-msgstr ""
+msgstr "切换投影(正交)视图"
#: tools/editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
msgstr "插入动画帧"
#: tools/editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Focus Origin"
msgstr "显示原点"
@@ -5444,9 +5402,8 @@ msgid "Remove Item"
msgstr "移除项目"
#: tools/editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Theme"
-msgstr "保存主题"
+msgstr "主题"
#: tools/editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5645,6 +5602,71 @@ msgid "No exporter for platform '%s' yet."
msgstr "没有针对'%s'平台的导出模板。"
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "创建资源"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "名称可用"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "过渡"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "State"
+msgstr "状态"
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "密码"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "字符合法:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "新名称:"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "包含"
@@ -5962,12 +5984,10 @@ msgid "Unnamed Project"
msgstr "未命名项目"
#: tools/editor/project_manager.cpp
-#, fuzzy
msgid "Are you sure to open more than one project?"
msgstr "您确定要打开多个项目吗?"
#: tools/editor/project_manager.cpp
-#, fuzzy
msgid "Are you sure to run more than one project?"
msgstr "您确定要执行多个项目吗?"
@@ -5979,7 +5999,7 @@ msgstr "移除此项目(项目的文件不受影响)"
msgid ""
"You are about the scan %s folders for existing Godot projects. Do you "
"confirm?"
-msgstr ""
+msgstr "您确认要扫描%s目录下现有的Godot项目吗?"
#: tools/editor/project_manager.cpp
msgid "Project Manager"
@@ -5998,9 +6018,8 @@ msgid "Scan"
msgstr "扫描"
#: tools/editor/project_manager.cpp
-#, fuzzy
msgid "Select a Folder to Scan"
-msgstr "选择一个节点"
+msgstr "选择要扫描的目录"
#: tools/editor/project_manager.cpp
msgid "New Project"
@@ -6012,7 +6031,7 @@ msgstr "退出"
#: tools/editor/project_settings.cpp
msgid "Key "
-msgstr "键"
+msgstr "键 "
#: tools/editor/project_settings.cpp
msgid "Joy Button"
@@ -6028,7 +6047,7 @@ msgstr "鼠标按键:"
#: tools/editor/project_settings.cpp
msgid "Invalid action (anything goes but '/' or ':')."
-msgstr ""
+msgstr "Action名非法(不得包含'/'或':')"
#: tools/editor/project_settings.cpp
msgid "Action '%s' already exists!"
@@ -6107,10 +6126,6 @@ msgid "Erase Input Action Event"
msgstr "移除输入事件"
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr "保存设置出错。"
@@ -6227,22 +6242,18 @@ msgid "Preset.."
msgstr "预设.."
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "Ease In"
msgstr "缓入"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "Ease Out"
msgstr "缓出"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "Zero"
msgstr "置零"
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "Easing In-Out"
msgstr "缓入缓出"
@@ -6258,7 +6269,7 @@ msgstr "文件.."
msgid "Dir.."
msgstr "目录.."
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr "加载"
@@ -6267,9 +6278,8 @@ msgid "Assign"
msgstr ""
#: tools/editor/property_editor.cpp
-#, fuzzy
msgid "New Script"
-msgstr "下一个脚本"
+msgstr "新建脚本"
#: tools/editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
@@ -6292,22 +6302,16 @@ msgid "Properties:"
msgstr "属性:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "全局"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "选项:"
#: tools/editor/property_selector.cpp
-#, fuzzy
msgid "Select Property"
-msgstr "选择顶点"
+msgstr "选择属性"
#: tools/editor/property_selector.cpp
-#, fuzzy
msgid "Select Method"
-msgstr "选择模式(Q)"
+msgstr "选择方式"
#: tools/editor/pvrtc_compress.cpp
msgid "Could not execute PVRTC tool:"
@@ -6374,15 +6378,6 @@ msgid "Scene Run Settings"
msgstr "场景运行设置"
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "好吧"
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "没有选中节点来添加实例。"
-
-#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "No parent to instance the scenes at."
msgstr "没有选中节点来添加实例。"
@@ -6391,10 +6386,6 @@ msgid "Error loading scene from %s"
msgstr "从%s加载场景出错!"
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr "从%s实例化场景出错!"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "好的"
@@ -6433,10 +6424,6 @@ msgid "This operation can't be done without a scene."
msgstr "此操作必须在打开一个场景后才能执行。"
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr "此操作只能应用于单个选中节点。"
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr "此操作不能应用于实例化的场景。"
@@ -6461,10 +6448,6 @@ msgid "Remove Node(s)"
msgstr "移除节点"
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr "新节点"
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6503,10 +6486,14 @@ msgid "Change Type"
msgstr "更改类型"
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
msgstr "添加脚本"
#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr "清除脚本"
+
+#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
msgstr "从场景中合并"
@@ -6515,9 +6502,8 @@ msgid "Save Branch as Scene"
msgstr "将分支保存为场景"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete (No Confirm)"
-msgstr "请确认..."
+msgstr "确认删除"
#: tools/editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
@@ -6530,15 +6516,12 @@ msgid ""
msgstr "实例化场景文件为一个节点,如果没有根节点则创建一个继承自该文件的场景。"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "Create a new script for the selected node."
-msgstr "将选中的场景实例为选中节点的子节点。"
+msgid "Attach a new or existing script for the selected node."
+msgstr "为选中节点创建或设置脚本"
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
-msgstr "无法显示此节点,请先取消隐藏其父节点。"
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr "清除选中节点的脚本"
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6633,6 +6616,10 @@ msgid "Could not create script in filesystem."
msgstr "无法创建脚本。"
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr "从%s加载脚本出错!"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "文件路径为空"
@@ -6645,16 +6632,16 @@ msgid "Invalid base path"
msgstr "父路径非法"
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "文件已存在"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "扩展名非法"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "路径可用"
+msgid "Create new script"
+msgstr "创建新脚本"
+
+#: tools/editor/script_create_dialog.cpp
+msgid "Load existing script"
+msgstr "加载现有脚本"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6665,8 +6652,8 @@ msgid "Built-In Script"
msgstr "内置脚本"
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr "创建脚本"
+msgid "Attach Node Script"
+msgstr "设置节点的脚本"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6730,11 +6717,11 @@ msgstr "即时场景树:"
#: tools/editor/script_editor_debugger.cpp
msgid "Remote Object Properties: "
-msgstr "远程对象属性。"
+msgstr "远程对象属性: "
#: tools/editor/script_editor_debugger.cpp
msgid "Profiler"
-msgstr ""
+msgstr "性能分析"
#: tools/editor/script_editor_debugger.cpp
msgid "Monitor"
@@ -6814,7 +6801,7 @@ msgstr "更改球体半径"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Box Shape Extents"
-msgstr ""
+msgstr "改变方框大小"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Radius"
@@ -6825,15 +6812,50 @@ msgid "Change Capsule Shape Height"
msgstr "更改胶囊高度"
#: tools/editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Ray Shape Length"
msgstr "更改射线形状长度"
#: tools/editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Notifier Extents"
msgstr "更改通知器级别"
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "更改通知器级别"
+
+#~ msgid "BakedLightInstance does not contain a BakedLight resource."
+#~ msgstr "BakedLightInstance未包含BakedLight资源。"
+
+#~ msgid "Vertex"
+#~ msgstr "顶点"
+
+#~ msgid "Fragment"
+#~ msgstr "片段"
+
+#~ msgid "Lighting"
+#~ msgstr "光照"
+
+#~ msgid "Global"
+#~ msgstr "全局"
+
+#~ msgid ""
+#~ "This item cannot be made visible because the parent is hidden. Unhide the "
+#~ "parent first."
+#~ msgstr "无法显示此节点,请先取消隐藏其父节点。"
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "路径不能以'/'符号打头,绝对路径必须以'res://'、'user://'或者'local://'打头"
+
+#~ msgid "File exists"
+#~ msgstr "文件已存在"
+
+#~ msgid "Valid path"
+#~ msgstr "路径可用"
+
#~ msgid "Cannot go into subdir:"
#~ msgstr "无法打开目录:"
diff --git a/tools/translations/zh_HK.po b/tools/translations/zh_HK.po
index 9f6d7786ac..60f2b51464 100644
--- a/tools/translations/zh_HK.po
+++ b/tools/translations/zh_HK.po
@@ -1,5 +1,5 @@
# Chinese (Honk Kong) translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# Wesley (zx-wt) <ZX_WT@ymail.com>, 2016.
@@ -33,12 +33,6 @@ msgid "step argument is zero!"
msgstr ""
#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
msgstr ""
@@ -391,76 +385,76 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid unique name."
msgstr "無效名稱"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
#, fuzzy
msgid "Invalid product GUID."
msgstr "無效字型"
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -568,10 +562,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -631,7 +621,8 @@ msgstr ""
msgid "Cancel"
msgstr "取消"
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr "OK"
@@ -1785,6 +1776,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1852,7 +1847,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr "把資源另存為..."
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr "如來如此"
@@ -2080,7 +2077,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr "選擇主場景"
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2761,6 +2760,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2988,6 +2988,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3887,6 +3891,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4753,18 +4800,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5528,6 +5563,70 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Create Android keystore"
+msgstr "新增資料夾"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Full name"
+msgstr "有效名稱"
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Organization"
+msgstr "本地化"
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "Password"
+msgstr "密碼:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "at least 6 characters"
+msgstr "有效字符:"
+
+#: tools/editor/project_export.cpp
+#, fuzzy
+msgid "File name"
+msgstr "有效名稱"
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr "包括"
@@ -5987,10 +6086,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6134,7 +6229,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6168,10 +6263,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6250,14 +6341,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6266,10 +6349,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr "Ok"
@@ -6308,10 +6387,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6336,10 +6411,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6378,8 +6449,14 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Script"
+msgstr "腳本"
+
+#: tools/editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "Clear Script"
+msgstr "下一個腳本"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6404,13 +6481,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6506,6 +6581,11 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Error loading script from %s"
+msgstr "載入字形出現錯誤"
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr "路徑為空"
@@ -6518,16 +6598,18 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
-msgstr "檔案已存在"
-
-#: tools/editor/script_create_dialog.cpp
msgid "Invalid extension"
msgstr "無效副檔名"
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
-msgstr "有效路徑"
+#, fuzzy
+msgid "Create new script"
+msgstr "新增"
+
+#: tools/editor/script_create_dialog.cpp
+#, fuzzy
+msgid "Load existing script"
+msgstr "下一個腳本"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6538,8 +6620,9 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
-msgstr ""
+#, fuzzy
+msgid "Attach Node Script"
+msgstr "下一個腳本"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6706,6 +6789,16 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#~ msgid "File exists"
+#~ msgstr "檔案已存在"
+
+#~ msgid "Valid path"
+#~ msgstr "有效路徑"
+
#~ msgid "Cannot go into subdir:"
#~ msgstr "無法進入次要資料夾"
diff --git a/tools/translations/zh_TW.po b/tools/translations/zh_TW.po
index af66795003..efad7ee167 100644
--- a/tools/translations/zh_TW.po
+++ b/tools/translations/zh_TW.po
@@ -1,21 +1,22 @@
# Chinese (Taiwan) translation of the Godot Engine editor
-# Copyright (C) 2016 Juan Linietsky, Ariel Manzur and the Godot community
+# Copyright (C) 2016-2017 Juan Linietsky, Ariel Manzur and the Godot community
# This file is distributed under the same license as the Godot source code.
#
# popcade <popcade@gmail.com>, 2016.
+# Sam Pan <sampan66@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-06-13 13:57+0000\n"
-"Last-Translator: popcade <popcade@gmail.com>\n"
+"PO-Revision-Date: 2016-10-23 19:47+0000\n"
+"Last-Translator: Sam Pan <sampan66@gmail.com>\n"
"Language-Team: Chinese (Taiwan) <https://hosted.weblate.org/projects/godot-"
"engine/godot/zh_TW/>\n"
"Language: zh_TW\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 2.7-dev\n"
+"X-Generator: Weblate 2.9-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -25,41 +26,40 @@ msgstr ""
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr ""
+msgstr "解碼字節位元不足,或為無效格式。"
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid ""
-"Paths cannot start with '/', absolute paths must start with 'res://', "
-"'user://', or 'local://'"
-msgstr ""
+msgstr "step引數為0!"
#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
-msgstr ""
+msgstr "非為單一事件腳本"
#: modules/gdscript/gd_functions.cpp
+#, fuzzy
msgid "Not based on a script"
-msgstr ""
+msgstr "未依據腳本"
#: modules/gdscript/gd_functions.cpp
+#, fuzzy
msgid "Not based on a resource file"
-msgstr ""
+msgstr "未依據資源檔案"
#: modules/gdscript/gd_functions.cpp
+#, fuzzy
msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
+msgstr "無效的事件詞典格式(遺失 @path)"
#: modules/gdscript/gd_functions.cpp
+#, fuzzy
msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
+msgstr "無效的事件詞典格式(無法載入腳本 @path)"
#: modules/gdscript/gd_functions.cpp
+#, fuzzy
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
+msgstr "無效的事件詞典格式(無效的腳本 @path)"
#: modules/gdscript/gd_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
@@ -78,14 +78,16 @@ msgid ""
msgstr ""
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid ""
"Return value must be assigned to first element of node working memory! Fix "
"your node please."
-msgstr ""
+msgstr "回傳值需被指定為運算記憶體節點的第一要素!請修正該節點。"
#: modules/visual_script/visual_script.cpp
+#, fuzzy
msgid "Node returned an invalid sequence output: "
-msgstr ""
+msgstr "節點回傳一個無效的連續輸出: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
@@ -381,74 +383,74 @@ msgstr ""
msgid "just released"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid background color."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
msgstr ""
-#: platform/winrt/export/export.cpp
+#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
@@ -562,10 +564,6 @@ msgid ""
"as parent."
msgstr ""
-#: scene/3d/baked_light_instance.cpp
-msgid "BakedLightInstance does not contain a BakedLight resource."
-msgstr ""
-
#: scene/3d/body_shape.cpp
msgid ""
"CollisionShape only serves to provide a collision shape to a CollisionObject "
@@ -625,7 +623,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: scene/gui/dialogs.cpp tools/editor/scene_tree_dock.cpp
+#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "OK"
msgstr ""
@@ -1768,6 +1767,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -1835,7 +1838,9 @@ msgstr ""
msgid "Save Resource As.."
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
msgid "I see.."
msgstr ""
@@ -2060,7 +2065,9 @@ msgstr ""
msgid "Pick a Main Scene"
msgstr ""
-#: tools/editor/editor_node.cpp tools/editor/scene_tree_dock.cpp
+#: tools/editor/editor_node.cpp
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp tools/editor/script_create_dialog.cpp
msgid "Ugh"
msgstr ""
@@ -2740,6 +2747,7 @@ msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
+#: tools/editor/project_export.cpp
msgid "Target Path:"
msgstr ""
@@ -2967,6 +2975,10 @@ msgid "Auto"
msgstr ""
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
+msgid "Root Node Name:"
+msgstr ""
+
+#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
msgstr ""
@@ -3866,6 +3878,49 @@ msgstr ""
msgid "Snap (Pixels):"
msgstr ""
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#: tools/editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -4730,18 +4785,6 @@ msgstr ""
msgid "Contextual Help"
msgstr ""
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Vertex"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Fragment"
-msgstr ""
-
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Lighting"
-msgstr ""
-
#: tools/editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
msgstr ""
@@ -5504,6 +5547,64 @@ msgid "No exporter for platform '%s' yet."
msgstr ""
#: tools/editor/project_export.cpp
+msgid "Create Android keystore"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Full name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organizational unit"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Organization"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "City"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "State"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "2 letter country code"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "User alias"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "at least 6 characters"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "File name"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Path : (better to save outside of project)"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid ""
+"Release keystore is not set.\n"
+"Do you want to create one?"
+msgstr ""
+
+#: tools/editor/project_export.cpp
+msgid "Fill Keystore/Release User and Release Password"
+msgstr ""
+
+#: tools/editor/project_export.cpp
msgid "Include"
msgstr ""
@@ -5963,10 +6064,6 @@ msgid "Erase Input Action Event"
msgstr ""
#: tools/editor/project_settings.cpp
-msgid "Toggle Persisting"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
msgid "Error saving settings."
msgstr ""
@@ -6110,7 +6207,7 @@ msgstr ""
msgid "Dir.."
msgstr ""
-#: tools/editor/property_editor.cpp
+#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
msgid "Load"
msgstr ""
@@ -6143,10 +6240,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6223,14 +6316,6 @@ msgid "Scene Run Settings"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
msgstr ""
@@ -6239,10 +6324,6 @@ msgid "Error loading scene from %s"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Error instancing scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "Ok"
msgstr ""
@@ -6281,10 +6362,6 @@ msgid "This operation can't be done without a scene."
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "This operation requires a single selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
msgstr ""
@@ -6309,10 +6386,6 @@ msgid "Remove Node(s)"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
@@ -6351,7 +6424,11 @@ msgid "Change Type"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Add Script"
+msgid "Attach Script"
+msgstr ""
+
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear Script"
msgstr ""
#: tools/editor/scene_tree_dock.cpp
@@ -6377,13 +6454,11 @@ msgid ""
msgstr ""
#: tools/editor/scene_tree_dock.cpp
-msgid "Create a new script for the selected node."
+msgid "Attach a new or existing script for the selected node."
msgstr ""
-#: tools/editor/scene_tree_editor.cpp
-msgid ""
-"This item cannot be made visible because the parent is hidden. Unhide the "
-"parent first."
+#: tools/editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
msgstr ""
#: tools/editor/scene_tree_editor.cpp
@@ -6479,6 +6554,10 @@ msgid "Could not create script in filesystem."
msgstr ""
#: tools/editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
msgstr ""
@@ -6491,15 +6570,15 @@ msgid "Invalid base path"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "File exists"
+msgid "Invalid extension"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
+msgid "Create new script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Valid path"
+msgid "Load existing script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
@@ -6511,7 +6590,7 @@ msgid "Built-In Script"
msgstr ""
#: tools/editor/script_create_dialog.cpp
-msgid "Create Node Script"
+msgid "Attach Node Script"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
@@ -6591,44 +6670,48 @@ msgid "Value"
msgstr ""
#: tools/editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Monitors"
-msgstr ""
+msgstr "監看畫面"
#: tools/editor/script_editor_debugger.cpp
+#, fuzzy
msgid "List of Video Memory Usage by Resource:"
-msgstr ""
+msgstr "影片記憶體使用容量列表(依資源別):"
#: tools/editor/script_editor_debugger.cpp
msgid "Total:"
-msgstr ""
+msgstr "總計:"
#: tools/editor/script_editor_debugger.cpp
msgid "Video Mem"
-msgstr ""
+msgstr "影片記憶體"
#: tools/editor/script_editor_debugger.cpp
msgid "Resource Path"
-msgstr ""
+msgstr "資源路徑"
#: tools/editor/script_editor_debugger.cpp
msgid "Type"
-msgstr ""
+msgstr "類型"
#: tools/editor/script_editor_debugger.cpp
msgid "Usage"
-msgstr ""
+msgstr "使用量"
#: tools/editor/script_editor_debugger.cpp
msgid "Misc"
-msgstr ""
+msgstr "雜項"
#: tools/editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Clicked Control:"
-msgstr ""
+msgstr "點擊控制:"
#: tools/editor/script_editor_debugger.cpp
+#, fuzzy
msgid "Clicked Control Type:"
-msgstr ""
+msgstr "點擊控制類型:"
#: tools/editor/script_editor_debugger.cpp
msgid "Live Edit Root:"
@@ -6640,35 +6723,35 @@ msgstr ""
#: tools/editor/settings_config_dialog.cpp
msgid "Shortcuts"
-msgstr ""
+msgstr "捷徑"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
-msgstr ""
+msgstr "變更光源半徑"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Camera FOV"
-msgstr ""
+msgstr "變更鏡頭視野(FOV)"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Camera Size"
-msgstr ""
+msgstr "變更鏡頭尺寸"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Sphere Shape Radius"
-msgstr ""
+msgstr "變更球型半徑"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Box Shape Extents"
-msgstr ""
+msgstr "變更框型範圍"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Radius"
-msgstr ""
+msgstr "變更楕圓體半徑"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Height"
-msgstr ""
+msgstr "變更楕圓體高度"
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Ray Shape Length"
@@ -6677,3 +6760,15 @@ msgstr ""
#: tools/editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
msgstr ""
+
+#: tools/editor/spatial_editor_gizmos.cpp
+#, fuzzy
+msgid "Change Probe Extents"
+msgstr "變更框型範圍"
+
+#~ msgid ""
+#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
+#~ "'user://', or 'local://'"
+#~ msgstr ""
+#~ "路徑不可以\"/\"為起始,完整路徑需以'res://'、'user://'、或 'local://'做為"
+#~ "起始"