summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ISSUE_TEMPLATE10
-rw-r--r--ISSUE_TEMPLATE.md19
-rw-r--r--SConstruct4
-rw-r--r--bin/SCsub6
-rw-r--r--core/bind/core_bind.cpp96
-rw-r--r--core/bind/core_bind.h28
-rw-r--r--core/compressed_translation.cpp12
-rw-r--r--core/compressed_translation.h6
-rw-r--r--core/dictionary.cpp110
-rw-r--r--core/dictionary.h3
-rw-r--r--core/dvector.cpp41
-rw-r--r--core/dvector.h508
-rw-r--r--core/global_constants.cpp2
-rw-r--r--core/globals.cpp20
-rw-r--r--core/hash_map.h14
-rw-r--r--core/image.cpp100
-rw-r--r--core/image.h16
-rw-r--r--core/input_map.cpp4
-rw-r--r--core/io/file_access_buffered.cpp4
-rw-r--r--core/io/file_access_buffered_fa.h2
-rw-r--r--core/io/http_client.cpp6
-rw-r--r--core/io/http_client.h2
-rw-r--r--core/io/json.cpp19
-rw-r--r--core/io/json.h4
-rw-r--r--core/io/marshalls.cpp168
-rw-r--r--core/io/packet_peer.cpp14
-rw-r--r--core/io/packet_peer.h8
-rw-r--r--core/io/resource_format_binary.cpp128
-rw-r--r--core/io/resource_format_xml.cpp2882
-rw-r--r--core/io/resource_format_xml.h170
-rw-r--r--core/io/stream_peer.cpp32
-rw-r--r--core/io/stream_peer.h10
-rw-r--r--core/io/tcp_server.cpp4
-rw-r--r--core/io/tcp_server.h2
-rw-r--r--core/math/a_star.cpp28
-rw-r--r--core/math/a_star.h4
-rw-r--r--core/math/bsp_tree.cpp14
-rw-r--r--core/math/bsp_tree.h2
-rw-r--r--core/math/geometry.cpp44
-rw-r--r--core/math/geometry.h14
-rw-r--r--core/math/triangle_mesh.cpp48
-rw-r--r--core/math/triangle_mesh.h10
-rw-r--r--core/method_ptrcall.h64
-rw-r--r--core/object.cpp47
-rw-r--r--core/object.h10
-rw-r--r--core/object_type_db.cpp77
-rw-r--r--core/object_type_db.h2
-rw-r--r--core/os/input.cpp2
-rw-r--r--core/os/input.h2
-rw-r--r--core/os/input_event.cpp16
-rw-r--r--core/os/input_event.h14
-rw-r--r--core/os/main_loop.h1
-rw-r--r--core/os/memory.cpp83
-rw-r--r--core/os/memory.h104
-rw-r--r--core/os/memory_pool_dynamic.cpp50
-rw-r--r--core/os/memory_pool_dynamic.h79
-rw-r--r--core/os/memory_pool_dynamic_prealloc.cpp116
-rw-r--r--core/os/memory_pool_dynamic_prealloc.h60
-rw-r--r--core/os/memory_pool_dynamic_static.cpp272
-rw-r--r--core/os/memory_pool_dynamic_static.h86
-rw-r--r--core/os/os.cpp4
-rw-r--r--core/os/rw_lock.cpp21
-rw-r--r--core/os/rw_lock.h46
-rw-r--r--core/packed_data_container.cpp14
-rw-r--r--core/packed_data_container.h6
-rw-r--r--core/path_remap.cpp6
-rw-r--r--core/register_core_types.cpp24
-rw-r--r--core/resource.cpp184
-rw-r--r--core/resource.h20
-rw-r--r--core/safe_refcount.cpp9
-rw-r--r--core/safe_refcount.h1
-rw-r--r--core/string_db.cpp53
-rw-r--r--core/string_db.h3
-rw-r--r--core/translation.cpp21
-rw-r--r--core/translation.h6
-rw-r--r--core/ustring.cpp96
-rw-r--r--core/ustring.h1
-rw-r--r--core/variant.cpp242
-rw-r--r--core/variant.h52
-rw-r--r--core/variant_call.cpp24
-rw-r--r--core/variant_op.cpp136
-rw-r--r--core/variant_parser.cpp76
-rw-r--r--core/vector.h2
-rw-r--r--doc/base/classes.xml20
-rw-r--r--drivers/alsa/audio_driver_alsa.cpp50
-rw-r--r--drivers/alsa/audio_driver_alsa.h1
-rw-r--r--drivers/gles2/rasterizer_gles2.cpp90
-rw-r--r--drivers/gles3/rasterizer_scene_gles3.cpp4
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.cpp110
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.h24
-rw-r--r--drivers/png/image_loader_png.cpp32
-rw-r--r--drivers/png/resource_saver_png.cpp2
-rw-r--r--drivers/pulseaudio/audio_driver_pulseaudio.cpp129
-rw-r--r--drivers/rtaudio/audio_driver_rtaudio.cpp100
-rw-r--r--drivers/unix/ip_unix.cpp24
-rw-r--r--drivers/unix/os_unix.cpp7
-rw-r--r--drivers/unix/rw_lock_posix.cpp77
-rw-r--r--drivers/unix/rw_lock_posix.h37
-rw-r--r--drivers/windows/file_access_windows.cpp2
-rw-r--r--drivers/windows/rw_lock_windows.cpp72
-rw-r--r--drivers/windows/rw_lock_windows.h37
-rw-r--r--main/SCsub2
-rw-r--r--main/input_default.cpp28
-rw-r--r--main/input_default.h10
-rw-r--r--main/main.cpp2
-rw-r--r--main/performance.cpp6
-rw-r--r--main/tests/SCsub (renamed from bin/tests/SCsub)0
-rw-r--r--main/tests/test_containers.cpp (renamed from bin/tests/test_containers.cpp)0
-rw-r--r--main/tests/test_containers.h (renamed from bin/tests/test_containers.h)0
-rw-r--r--main/tests/test_gdscript.cpp (renamed from bin/tests/test_gdscript.cpp)0
-rw-r--r--main/tests/test_gdscript.h (renamed from bin/tests/test_gdscript.h)0
-rw-r--r--main/tests/test_gui.cpp (renamed from bin/tests/test_gui.cpp)0
-rw-r--r--main/tests/test_gui.h (renamed from bin/tests/test_gui.h)0
-rw-r--r--main/tests/test_image.cpp (renamed from bin/tests/test_image.cpp)0
-rw-r--r--main/tests/test_image.h (renamed from bin/tests/test_image.h)0
-rw-r--r--main/tests/test_io.cpp (renamed from bin/tests/test_io.cpp)0
-rw-r--r--main/tests/test_io.h (renamed from bin/tests/test_io.h)0
-rw-r--r--main/tests/test_main.cpp (renamed from bin/tests/test_main.cpp)0
-rw-r--r--main/tests/test_main.h (renamed from bin/tests/test_main.h)0
-rw-r--r--main/tests/test_math.cpp (renamed from bin/tests/test_math.cpp)33
-rw-r--r--main/tests/test_math.h (renamed from bin/tests/test_math.h)0
-rw-r--r--main/tests/test_physics.cpp (renamed from bin/tests/test_physics.cpp)10
-rw-r--r--main/tests/test_physics.h (renamed from bin/tests/test_physics.h)0
-rw-r--r--main/tests/test_physics_2d.cpp (renamed from bin/tests/test_physics_2d.cpp)10
-rw-r--r--main/tests/test_physics_2d.h (renamed from bin/tests/test_physics_2d.h)0
-rw-r--r--main/tests/test_render.cpp (renamed from bin/tests/test_render.cpp)2
-rw-r--r--main/tests/test_render.h (renamed from bin/tests/test_render.h)0
-rw-r--r--main/tests/test_shader_lang.cpp (renamed from bin/tests/test_shader_lang.cpp)0
-rw-r--r--main/tests/test_shader_lang.h (renamed from bin/tests/test_shader_lang.h)0
-rw-r--r--main/tests/test_sound.cpp (renamed from bin/tests/test_sound.cpp)0
-rw-r--r--main/tests/test_sound.h (renamed from bin/tests/test_sound.h)0
-rw-r--r--main/tests/test_string.cpp (renamed from bin/tests/test_string.cpp)0
-rw-r--r--main/tests/test_string.h (renamed from bin/tests/test_string.h)0
-rw-r--r--modules/chibi/event_stream_chibi.cpp4
-rw-r--r--modules/chibi/event_stream_chibi.h4
-rw-r--r--modules/cscript/godot_c.h14
-rw-r--r--modules/dds/texture_loader_dds.cpp14
-rw-r--r--modules/etc1/image_etc.cpp18
-rw-r--r--modules/etc1/texture_loader_pkm.cpp6
-rw-r--r--modules/gdscript/gd_editor.cpp25
-rw-r--r--modules/gdscript/gd_functions.cpp74
-rw-r--r--modules/gdscript/gd_functions.h3
-rw-r--r--modules/gdscript/gd_parser.cpp92
-rw-r--r--modules/gdscript/gd_parser.h1
-rw-r--r--modules/gdscript/gd_script.cpp4
-rw-r--r--modules/gdscript/gd_tokenizer.cpp11
-rw-r--r--modules/gdscript/gd_tokenizer.h1
-rw-r--r--modules/gridmap/grid_map.cpp24
-rw-r--r--modules/gridmap/grid_map_editor_plugin.cpp9
-rw-r--r--modules/jpg/image_loader_jpegd.cpp12
-rw-r--r--modules/mpc/SCsub28
-rw-r--r--modules/mpc/audio_stream_mpc.cpp414
-rw-r--r--modules/mpc/audio_stream_mpc.h146
-rw-r--r--modules/mpc/config.py7
-rw-r--r--modules/mpc/register_types.cpp45
-rw-r--r--modules/mpc/register_types.h30
-rw-r--r--modules/pbm/bitmap_loader_pbm.cpp20
-rw-r--r--modules/pvr/texture_loader_pvr.cpp24
-rw-r--r--modules/squish/image_compress_squish.cpp10
-rw-r--r--modules/theora/video_stream_theora.cpp10
-rw-r--r--modules/theora/video_stream_theora.h2
-rw-r--r--modules/visual_script/visual_script.h2
-rw-r--r--modules/visual_script/visual_script_editor.cpp10
-rw-r--r--modules/visual_script/visual_script_flow_control.cpp40
-rw-r--r--modules/visual_script/visual_script_func_nodes.cpp4
-rw-r--r--modules/visual_script/visual_script_nodes.cpp2
-rw-r--r--modules/visual_script/visual_script_nodes.h2
-rw-r--r--modules/webm/video_stream_webm.cpp2
-rw-r--r--modules/webm/video_stream_webm.h2
-rw-r--r--modules/webp/image_loader_webp.cpp42
-rw-r--r--platform/android/godot_android.cpp24
-rw-r--r--platform/android/java_glue.cpp50
-rw-r--r--platform/android/os_android.cpp2
-rw-r--r--platform/android/os_android.h4
-rw-r--r--platform/iphone/os_iphone.cpp6
-rw-r--r--platform/iphone/rasterizer_iphone.cpp26
-rw-r--r--platform/javascript/audio_server_javascript.cpp8
-rw-r--r--platform/javascript/audio_server_javascript.h4
-rw-r--r--platform/javascript/os_javascript.cpp4
-rw-r--r--platform/javascript/os_javascript.h2
-rw-r--r--platform/osx/SCsub2
-rw-r--r--platform/osx/joypad_osx.cpp (renamed from platform/osx/joystick_osx.cpp)93
-rw-r--r--platform/osx/joypad_osx.h (renamed from platform/osx/joystick_osx.h)36
-rw-r--r--platform/osx/os_osx.h4
-rw-r--r--platform/osx/os_osx.mm10
-rw-r--r--platform/uwp/SCsub2
-rw-r--r--platform/uwp/joypad_uwp.cpp (renamed from platform/uwp/joystick_uwp.cpp)24
-rw-r--r--platform/uwp/joypad_uwp.h (renamed from platform/uwp/joystick_uwp.h)12
-rw-r--r--platform/uwp/os_uwp.cpp8
-rw-r--r--platform/uwp/os_uwp.h6
-rw-r--r--platform/windows/SCsub2
-rw-r--r--platform/windows/context_gl_win.cpp1
-rw-r--r--platform/windows/detect.py4
-rw-r--r--platform/windows/joypad.cpp (renamed from platform/windows/joystick.cpp)157
-rw-r--r--platform/windows/joypad.h (renamed from platform/windows/joystick.h)39
-rw-r--r--platform/windows/key_mapping_win.cpp2
-rw-r--r--platform/windows/os_windows.cpp32
-rw-r--r--platform/windows/os_windows.h6
-rw-r--r--platform/x11/SCsub2
-rw-r--r--platform/x11/detect.py15
-rw-r--r--platform/x11/joypad_linux.cpp (renamed from platform/x11/joystick_linux.cpp)107
-rw-r--r--platform/x11/joypad_linux.h (renamed from platform/x11/joystick_linux.h)45
-rw-r--r--platform/x11/os_x11.cpp8
-rw-r--r--platform/x11/os_x11.h4
-rw-r--r--prop_renames.txt16
-rw-r--r--scene/2d/animated_sprite.cpp23
-rw-r--r--scene/2d/animated_sprite.h1
-rw-r--r--scene/2d/collision_polygon_2d.cpp6
-rw-r--r--scene/2d/light_occluder_2d.cpp8
-rw-r--r--scene/2d/light_occluder_2d.h6
-rw-r--r--scene/2d/navigation2d.cpp4
-rw-r--r--scene/2d/navigation_polygon.cpp30
-rw-r--r--scene/2d/navigation_polygon.h16
-rw-r--r--scene/2d/particles_2d.cpp6
-rw-r--r--scene/2d/particles_2d.h6
-rw-r--r--scene/2d/polygon_2d.cpp20
-rw-r--r--scene/2d/polygon_2d.h18
-rw-r--r--scene/2d/sprite.cpp19
-rw-r--r--scene/2d/sprite.h4
-rw-r--r--scene/2d/tile_map.cpp12
-rw-r--r--scene/2d/tile_map.h4
-rw-r--r--scene/3d/baked_light_instance.cpp34
-rw-r--r--scene/3d/baked_light_instance.h8
-rw-r--r--scene/3d/body_shape.cpp10
-rw-r--r--scene/3d/collision_polygon.cpp10
-rw-r--r--scene/3d/gi_probe.cpp30
-rw-r--r--scene/3d/gi_probe.h6
-rw-r--r--scene/3d/immediate_geometry.cpp4
-rw-r--r--scene/3d/immediate_geometry.h2
-rw-r--r--scene/3d/light.cpp4
-rw-r--r--scene/3d/light.h2
-rw-r--r--scene/3d/mesh_instance.cpp6
-rw-r--r--scene/3d/mesh_instance.h2
-rw-r--r--scene/3d/multimesh_instance.cpp4
-rw-r--r--scene/3d/multimesh_instance.h2
-rw-r--r--scene/3d/navigation.cpp4
-rw-r--r--scene/3d/navigation_mesh.cpp24
-rw-r--r--scene/3d/navigation_mesh.h6
-rw-r--r--scene/3d/particles.cpp10
-rw-r--r--scene/3d/particles.h6
-rw-r--r--scene/3d/portal.cpp12
-rw-r--r--scene/3d/portal.h2
-rw-r--r--scene/3d/quad.cpp28
-rw-r--r--scene/3d/quad.h2
-rw-r--r--scene/3d/reflection_probe.cpp4
-rw-r--r--scene/3d/reflection_probe.h2
-rw-r--r--scene/3d/room_instance.cpp12
-rw-r--r--scene/3d/room_instance.h4
-rw-r--r--scene/3d/sprite_3d.cpp4
-rw-r--r--scene/3d/sprite_3d.h2
-rw-r--r--scene/3d/test_cube.cpp4
-rw-r--r--scene/3d/test_cube.h2
-rw-r--r--scene/3d/visual_instance.h2
-rw-r--r--scene/animation/animation_player.cpp4
-rw-r--r--scene/animation/animation_player.h4
-rw-r--r--scene/animation/animation_tree_player.cpp4
-rw-r--r--scene/animation/animation_tree_player.h2
-rw-r--r--scene/gui/base_button.cpp117
-rw-r--r--scene/gui/base_button.h26
-rw-r--r--scene/gui/box_container.cpp5
-rw-r--r--scene/gui/button.cpp22
-rw-r--r--scene/gui/button.h4
-rw-r--r--scene/gui/button_array.cpp4
-rw-r--r--scene/gui/button_array.h2
-rw-r--r--scene/gui/button_group.cpp3
-rw-r--r--scene/gui/button_group.h3
-rw-r--r--scene/gui/check_box.cpp8
-rw-r--r--scene/gui/color_picker.cpp24
-rw-r--r--scene/gui/color_ramp_edit.cpp6
-rw-r--r--scene/gui/color_ramp_edit.h2
-rw-r--r--scene/gui/control.cpp181
-rw-r--r--scene/gui/control.h28
-rw-r--r--scene/gui/dialogs.cpp59
-rw-r--r--scene/gui/dialogs.h9
-rw-r--r--scene/gui/file_dialog.cpp6
-rw-r--r--scene/gui/graph_edit.cpp13
-rw-r--r--scene/gui/graph_edit.h2
-rw-r--r--scene/gui/graph_node.cpp6
-rw-r--r--scene/gui/graph_node.h2
-rw-r--r--scene/gui/grid_container.cpp2
-rw-r--r--scene/gui/input_action.cpp8
-rw-r--r--scene/gui/item_list.cpp6
-rw-r--r--scene/gui/item_list.h2
-rw-r--r--scene/gui/label.cpp43
-rw-r--r--scene/gui/label.h1
-rw-r--r--scene/gui/line_edit.cpp8
-rw-r--r--scene/gui/line_edit.h2
-rw-r--r--scene/gui/menu_button.cpp6
-rw-r--r--scene/gui/menu_button.h2
-rw-r--r--scene/gui/option_button.cpp2
-rw-r--r--scene/gui/panel.cpp2
-rw-r--r--scene/gui/patch_9_frame.cpp19
-rw-r--r--scene/gui/patch_9_frame.h4
-rw-r--r--scene/gui/popup.cpp2
-rw-r--r--scene/gui/popup.h2
-rw-r--r--scene/gui/popup_menu.cpp47
-rw-r--r--scene/gui/popup_menu.h3
-rw-r--r--scene/gui/rich_text_label.cpp7
-rw-r--r--scene/gui/rich_text_label.h2
-rw-r--r--scene/gui/scroll_bar.cpp14
-rw-r--r--scene/gui/scroll_bar.h2
-rw-r--r--scene/gui/scroll_container.cpp36
-rw-r--r--scene/gui/scroll_container.h5
-rw-r--r--scene/gui/slider.cpp4
-rw-r--r--scene/gui/slider.h2
-rw-r--r--scene/gui/spin_box.cpp6
-rw-r--r--scene/gui/spin_box.h2
-rw-r--r--scene/gui/split_container.cpp4
-rw-r--r--scene/gui/split_container.h2
-rw-r--r--scene/gui/tab_container.cpp4
-rw-r--r--scene/gui/tab_container.h2
-rw-r--r--scene/gui/tabs.cpp4
-rw-r--r--scene/gui/tabs.h2
-rw-r--r--scene/gui/text_edit.cpp29
-rw-r--r--scene/gui/text_edit.h4
-rw-r--r--scene/gui/texture_frame.cpp27
-rw-r--r--scene/gui/texture_frame.h3
-rw-r--r--scene/gui/tree.cpp12
-rw-r--r--scene/gui/tree.h2
-rw-r--r--scene/io/resource_format_wav.cpp6
-rw-r--r--scene/main/http_request.h2
-rw-r--r--scene/main/node.h2
-rw-r--r--scene/main/resource_preloader.cpp8
-rw-r--r--scene/main/resource_preloader.h2
-rw-r--r--scene/main/scene_main_loop.cpp9
-rw-r--r--scene/main/viewport.cpp114
-rw-r--r--scene/main/viewport.h20
-rw-r--r--scene/resources/animation.cpp80
-rw-r--r--scene/resources/animation.h20
-rw-r--r--scene/resources/bit_mask.cpp2
-rw-r--r--scene/resources/concave_polygon_shape.cpp8
-rw-r--r--scene/resources/concave_polygon_shape.h4
-rw-r--r--scene/resources/concave_polygon_shape_2d.cpp12
-rw-r--r--scene/resources/concave_polygon_shape_2d.h4
-rw-r--r--scene/resources/convex_polygon_shape.cpp6
-rw-r--r--scene/resources/convex_polygon_shape.h6
-rw-r--r--scene/resources/curve.cpp8
-rw-r--r--scene/resources/curve.h2
-rw-r--r--scene/resources/dynamic_font.cpp4
-rw-r--r--scene/resources/dynamic_font.h2
-rw-r--r--scene/resources/dynamic_font_stb.cpp12
-rw-r--r--scene/resources/dynamic_font_stb.h8
-rw-r--r--scene/resources/font.cpp16
-rw-r--r--scene/resources/font.h8
-rw-r--r--scene/resources/mesh.cpp106
-rw-r--r--scene/resources/mesh.h4
-rw-r--r--scene/resources/mesh_data_tool.cpp74
-rw-r--r--scene/resources/multimesh.cpp26
-rw-r--r--scene/resources/multimesh.h8
-rw-r--r--scene/resources/packed_scene.cpp90
-rw-r--r--scene/resources/packed_scene.h21
-rw-r--r--scene/resources/polygon_path_finder.cpp32
-rw-r--r--scene/resources/room.cpp4
-rw-r--r--scene/resources/room.h6
-rw-r--r--scene/resources/sample.cpp6
-rw-r--r--scene/resources/sample.h4
-rw-r--r--scene/resources/shader_graph.cpp46
-rw-r--r--scene/resources/shader_graph.h10
-rw-r--r--scene/resources/shape.cpp8
-rw-r--r--scene/resources/shape.h2
-rw-r--r--scene/resources/surface_tool.cpp78
-rw-r--r--scene/resources/theme.h14
-rw-r--r--scene/scene_string_names.cpp4
-rw-r--r--scene/scene_string_names.h3
-rw-r--r--servers/audio/audio_server_sw.cpp4
-rw-r--r--servers/audio/audio_server_sw.h4
-rw-r--r--servers/audio/sample_manager_sw.cpp14
-rw-r--r--servers/audio/sample_manager_sw.h8
-rw-r--r--servers/audio_server.cpp10
-rw-r--r--servers/audio_server.h6
-rw-r--r--servers/physics/shape_sw.cpp62
-rw-r--r--servers/physics/shape_sw.h16
-rw-r--r--servers/physics_2d/shape_2d_sw.cpp20
-rw-r--r--servers/spatial_sound_2d/spatial_sound_2d_server_sw.cpp6
-rw-r--r--servers/spatial_sound_2d/spatial_sound_2d_server_sw.h6
-rw-r--r--servers/spatial_sound_2d_server.h4
-rw-r--r--servers/visual/rasterizer.h24
-rw-r--r--servers/visual/visual_server_canvas.cpp12
-rw-r--r--servers/visual/visual_server_canvas.h4
-rw-r--r--servers/visual/visual_server_raster.cpp42
-rw-r--r--servers/visual/visual_server_raster.h22
-rw-r--r--servers/visual/visual_server_scene.cpp24
-rw-r--r--servers/visual/visual_server_scene.h10
-rw-r--r--servers/visual_server.cpp183
-rw-r--r--servers/visual_server.h28
-rw-r--r--thirdparty/README.md2
-rw-r--r--thirdparty/opus/http.c52
-rw-r--r--thirdparty/opus/info.c15
-rw-r--r--thirdparty/opus/opus/opusfile.h33
-rw-r--r--thirdparty/opus/opusfile.c81
-rw-r--r--tools/doc/doc_data.cpp2
-rw-r--r--tools/editor/animation_editor.cpp137
-rw-r--r--tools/editor/animation_editor.h5
-rw-r--r--tools/editor/asset_library_editor_plugin.cpp20
-rw-r--r--tools/editor/call_dialog.cpp11
-rw-r--r--tools/editor/call_dialog.h2
-rw-r--r--tools/editor/code_editor.cpp9
-rw-r--r--tools/editor/code_editor.h2
-rw-r--r--tools/editor/connections_dialog.cpp4
-rw-r--r--tools/editor/create_dialog.cpp13
-rw-r--r--tools/editor/dependency_editor.cpp10
-rw-r--r--tools/editor/editor_asset_installer.cpp2
-rw-r--r--tools/editor/editor_data.cpp2
-rw-r--r--tools/editor/editor_dir_dialog.cpp4
-rw-r--r--tools/editor/editor_file_dialog.cpp5
-rw-r--r--tools/editor/editor_help.cpp15
-rw-r--r--tools/editor/editor_import_export.cpp14
-rw-r--r--tools/editor/editor_import_export.h4
-rw-r--r--tools/editor/editor_name_dialog.cpp6
-rw-r--r--tools/editor/editor_name_dialog.h2
-rw-r--r--tools/editor/editor_node.cpp61
-rw-r--r--tools/editor/editor_node.h7
-rw-r--r--tools/editor/editor_path.cpp6
-rw-r--r--tools/editor/editor_path.h2
-rw-r--r--tools/editor/editor_plugin.cpp16
-rw-r--r--tools/editor/editor_plugin.h4
-rw-r--r--tools/editor/editor_profiler.cpp10
-rw-r--r--tools/editor/editor_profiler.h2
-rw-r--r--tools/editor/editor_reimport_dialog.cpp2
-rw-r--r--tools/editor/editor_run_native.cpp2
-rw-r--r--tools/editor/editor_sub_scene.cpp2
-rw-r--r--tools/editor/filesystem_dock.cpp2
-rw-r--r--tools/editor/icons/2x/icon_bit_map.pngbin0 -> 148 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_environment.pngbin0 -> 1270 bytes
-rw-r--r--tools/editor/icons/2x/icon_fixed_spatial_material.pngbin0 -> 1619 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_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_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_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_polygon_path_finder.pngbin0 -> 491 bytes
-rw-r--r--tools/editor/icons/2x/icon_reflection_probe.pngbin0 -> 533 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.pngbin541 -> 491 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_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_test_cube.pngbin612 -> 596 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_viewport_texture.pngbin0 -> 404 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/icon_bit_map.pngbin0 -> 113 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_environment.pngbin0 -> 588 bytes
-rw-r--r--tools/editor/icons/icon_fixed_spatial_material.pngbin0 -> 681 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_large_texture.pngbin0 -> 156 bytes
-rw-r--r--tools/editor/icons/icon_load.pngbin301 -> 271 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_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_polygon_path_finder.pngbin0 -> 307 bytes
-rw-r--r--tools/editor/icons/icon_reflection_probe.pngbin0 -> 370 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.pngbin341 -> 288 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_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_test_cube.pngbin392 -> 435 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_viewport_texture.pngbin0 -> 227 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_bit_map.svg82
-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_environment.svg82
-rw-r--r--tools/editor/icons/source/icon_fixed_spatial_material.svg147
-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_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_packed_data_container.svg138
-rw-r--r--tools/editor/icons/source/icon_particles_shader.svg159
-rw-r--r--tools/editor/icons/source/icon_polygon_path_finder.svg77
-rw-r--r--tools/editor/icons/source/icon_reflection_probe.svg82
-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.svg29
-rw-r--r--tools/editor/icons/source/icon_shader.svg130
-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_sprite_frames.svg119
-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_test_cube.svg20
-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_viewport_texture.svg80
-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/io_plugins/editor_bitmask_import_plugin.cpp2
-rw-r--r--tools/editor/io_plugins/editor_font_import_plugin.cpp12
-rw-r--r--tools/editor/io_plugins/editor_import_collada.cpp104
-rw-r--r--tools/editor/io_plugins/editor_mesh_import_plugin.cpp2
-rw-r--r--tools/editor/io_plugins/editor_sample_import_plugin.cpp24
-rw-r--r--tools/editor/io_plugins/editor_sample_import_plugin.h2
-rw-r--r--tools/editor/io_plugins/editor_scene_import_plugin.cpp8
-rw-r--r--tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp32
-rw-r--r--tools/editor/io_plugins/editor_texture_import_plugin.cpp8
-rw-r--r--tools/editor/io_plugins/editor_translation_import_plugin.cpp2
-rw-r--r--tools/editor/pane_drag.cpp4
-rw-r--r--tools/editor/pane_drag.h2
-rw-r--r--tools/editor/plugins/animation_player_editor_plugin.cpp10
-rw-r--r--tools/editor/plugins/animation_player_editor_plugin.h2
-rw-r--r--tools/editor/plugins/animation_tree_editor_plugin.cpp14
-rw-r--r--tools/editor/plugins/animation_tree_editor_plugin.h2
-rw-r--r--tools/editor/plugins/baked_light_baker.cpp40
-rw-r--r--tools/editor/plugins/baked_light_baker.h4
-rw-r--r--tools/editor/plugins/baked_light_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/baked_light_editor_plugin.h6
-rw-r--r--tools/editor/plugins/canvas_item_editor_plugin.cpp43
-rw-r--r--tools/editor/plugins/canvas_item_editor_plugin.h5
-rw-r--r--tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/collision_polygon_2d_editor_plugin.h4
-rw-r--r--tools/editor/plugins/collision_polygon_editor_plugin.cpp8
-rw-r--r--tools/editor/plugins/collision_polygon_editor_plugin.h4
-rw-r--r--tools/editor/plugins/collision_shape_2d_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/collision_shape_2d_editor_plugin.h4
-rw-r--r--tools/editor/plugins/color_ramp_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/cube_grid_theme_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/editor_preview_plugins.cpp26
-rw-r--r--tools/editor/plugins/item_list_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/light_occluder_2d_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/light_occluder_2d_editor_plugin.h4
-rw-r--r--tools/editor/plugins/material_editor_plugin.cpp22
-rw-r--r--tools/editor/plugins/material_editor_plugin.h2
-rw-r--r--tools/editor/plugins/mesh_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/mesh_editor_plugin.h2
-rw-r--r--tools/editor/plugins/mesh_instance_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/multimesh_editor_plugin.cpp14
-rw-r--r--tools/editor/plugins/navigation_polygon_editor_plugin.cpp22
-rw-r--r--tools/editor/plugins/navigation_polygon_editor_plugin.h6
-rw-r--r--tools/editor/plugins/particles_2d_editor_plugin.cpp14
-rw-r--r--tools/editor/plugins/particles_editor_plugin.cpp10
-rw-r--r--tools/editor/plugins/particles_editor_plugin.h2
-rw-r--r--tools/editor/plugins/path_2d_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/path_2d_editor_plugin.h4
-rw-r--r--tools/editor/plugins/path_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/path_editor_plugin.h4
-rw-r--r--tools/editor/plugins/polygon_2d_editor_plugin.cpp39
-rw-r--r--tools/editor/plugins/polygon_2d_editor_plugin.h6
-rw-r--r--tools/editor/plugins/resource_preloader_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/resource_preloader_editor_plugin.h2
-rw-r--r--tools/editor/plugins/rich_text_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/sample_editor_plugin.cpp14
-rw-r--r--tools/editor/plugins/sample_editor_plugin.h2
-rw-r--r--tools/editor/plugins/sample_library_editor_plugin.cpp8
-rw-r--r--tools/editor/plugins/sample_library_editor_plugin.h4
-rw-r--r--tools/editor/plugins/script_editor_plugin.cpp16
-rw-r--r--tools/editor/plugins/script_text_editor.cpp31
-rw-r--r--tools/editor/plugins/script_text_editor.h2
-rw-r--r--tools/editor/plugins/shader_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/shader_graph_editor_plugin.cpp44
-rw-r--r--tools/editor/plugins/shader_graph_editor_plugin.h4
-rw-r--r--tools/editor/plugins/spatial_editor_plugin.cpp76
-rw-r--r--tools/editor/plugins/spatial_editor_plugin.h2
-rw-r--r--tools/editor/plugins/sprite_frames_editor_plugin.cpp8
-rw-r--r--tools/editor/plugins/sprite_frames_editor_plugin.h4
-rw-r--r--tools/editor/plugins/texture_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/texture_editor_plugin.h2
-rw-r--r--tools/editor/plugins/texture_region_editor_plugin.cpp7
-rw-r--r--tools/editor/plugins/theme_editor_plugin.cpp8
-rw-r--r--tools/editor/plugins/tile_map_editor_plugin.cpp32
-rw-r--r--tools/editor/plugins/tile_map_editor_plugin.h12
-rw-r--r--tools/editor/plugins/tile_set_editor_plugin.cpp2
-rw-r--r--tools/editor/project_export.cpp12
-rw-r--r--tools/editor/project_manager.cpp4
-rw-r--r--tools/editor/project_settings.cpp34
-rw-r--r--tools/editor/property_editor.cpp49
-rw-r--r--tools/editor/property_editor.h1
-rw-r--r--tools/editor/property_selector.cpp10
-rw-r--r--tools/editor/quick_open.cpp6
-rw-r--r--tools/editor/reparent_dialog.cpp2
-rw-r--r--tools/editor/resources_dock.cpp4
-rw-r--r--tools/editor/run_settings_dialog.cpp2
-rw-r--r--tools/editor/scene_tree_dock.cpp8
-rw-r--r--tools/editor/scene_tree_editor.cpp6
-rw-r--r--tools/editor/script_create_dialog.cpp2
-rw-r--r--tools/editor/settings_config_dialog.cpp4
-rw-r--r--tools/editor/spatial_editor_gizmos.cpp32
-rw-r--r--tools/translations/ar.po98
-rw-r--r--tools/translations/bg.po99
-rw-r--r--tools/translations/bn.po2948
-rw-r--r--tools/translations/ca.po106
-rw-r--r--tools/translations/cs.po104
-rw-r--r--tools/translations/da.po103
-rw-r--r--tools/translations/de.po266
-rw-r--r--tools/translations/de_CH.po97
-rw-r--r--tools/translations/es.po189
-rw-r--r--tools/translations/es_AR.po176
-rw-r--r--tools/translations/fa.po106
-rw-r--r--tools/translations/fr.po142
-rw-r--r--tools/translations/hu.po97
-rw-r--r--tools/translations/id.po104
-rw-r--r--tools/translations/is.po6705
-rw-r--r--tools/translations/it.po174
-rw-r--r--tools/translations/ja.po99
-rw-r--r--tools/translations/ko.po207
-rw-r--r--tools/translations/nb.po97
-rw-r--r--tools/translations/pl.po162
-rw-r--r--tools/translations/pr.po97
-rw-r--r--tools/translations/pt_BR.po133
-rw-r--r--tools/translations/pt_PT.po97
-rw-r--r--tools/translations/ro.po6705
-rw-r--r--tools/translations/ru.po182
-rw-r--r--tools/translations/sk.po99
-rw-r--r--tools/translations/sl.po97
-rw-r--r--tools/translations/tools.pot97
-rw-r--r--tools/translations/tr.po3005
-rw-r--r--tools/translations/ur_PK.po99
-rw-r--r--tools/translations/zh_CN.po308
-rw-r--r--tools/translations/zh_HK.po103
-rw-r--r--tools/translations/zh_TW.po98
659 files changed, 14660 insertions, 26145 deletions
diff --git a/ISSUE_TEMPLATE b/ISSUE_TEMPLATE
deleted file mode 100644
index ee78c6c4f6..0000000000
--- a/ISSUE_TEMPLATE
+++ /dev/null
@@ -1,10 +0,0 @@
-**Operating system or device - Godot version:**
-
-
-**Issue description** (what happened, and what was expected):
-
-
-**Steps to reproduce:**
-
-
-**Link to minimal example project** (optional but very welcome):
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000000..fcaaca6278
--- /dev/null
+++ b/ISSUE_TEMPLATE.md
@@ -0,0 +1,19 @@
+vvv Remove me vvv
+
+*NOTE:* If you using the current master branch / 3.0-alpha version, do not that
+breakage is *expected*. Projects from Godot 2.x are expected not to work. Please
+wait for the upcoming stabilisation period to report bugs regarding recent changes.
+
+^^^ Remove me ^^^
+
+
+**Operating system or device - Godot version:**
+
+
+**Issue description** (what happened, and what was expected):
+
+
+**Steps to reproduce:**
+
+
+**Link to minimal example project** (optional but very welcome):
diff --git a/SConstruct b/SConstruct
index 45d8b10206..a1af763031 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1,3 +1,4 @@
+
#!/usr/bin/env python
EnsureSConsVersion(0, 14)
@@ -347,7 +348,7 @@ if selected_platform in platform_list:
if (env['verbose'] == 'no'):
methods.no_verbose(sys, env)
-
+
if (True): # FIXME: detect GLES3
env.Append( BUILDERS = { 'GLES3_GLSL' : env.Builder(action = methods.build_gles3_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
@@ -360,7 +361,6 @@ if selected_platform in platform_list:
SConscript("scene/SCsub")
SConscript("tools/SCsub")
SConscript("drivers/SCsub")
- SConscript("bin/SCsub")
SConscript("modules/SCsub")
SConscript("main/SCsub")
diff --git a/bin/SCsub b/bin/SCsub
deleted file mode 100644
index 52f7e3bb39..0000000000
--- a/bin/SCsub
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/python
-
-Import('env')
-Export('env')
-
-SConscript('tests/SCsub')
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index 1ac8c76c7c..4b23761e4e 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -69,11 +69,11 @@ RES _ResourceLoader::load(const String &p_path,const String& p_type_hint, bool p
return ret;
}
-DVector<String> _ResourceLoader::get_recognized_extensions_for_type(const String& p_type) {
+PoolVector<String> _ResourceLoader::get_recognized_extensions_for_type(const String& p_type) {
List<String> exts;
ResourceLoader::get_recognized_extensions_for_type(p_type,&exts);
- DVector<String> ret;
+ PoolVector<String> ret;
for(List<String>::Element *E=exts.front();E;E=E->next()) {
ret.push_back(E->get());
@@ -135,12 +135,12 @@ Error _ResourceSaver::save(const String &p_path,const RES& p_resource, uint32_t
return ResourceSaver::save(p_path,p_resource, p_flags);
}
-DVector<String> _ResourceSaver::get_recognized_extensions(const RES& p_resource) {
+PoolVector<String> _ResourceSaver::get_recognized_extensions(const RES& p_resource) {
- ERR_FAIL_COND_V(p_resource.is_null(),DVector<String>());
+ ERR_FAIL_COND_V(p_resource.is_null(),PoolVector<String>());
List<String> exts;
ResourceSaver::get_recognized_extensions(p_resource,&exts);
- DVector<String> ret;
+ PoolVector<String> ret;
for(List<String>::Element *E=exts.front();E;E=E->next()) {
ret.push_back(E->get());
@@ -1245,16 +1245,16 @@ _Geometry *_Geometry::get_singleton() {
return singleton;
}
-DVector<Plane> _Geometry::build_box_planes(const Vector3& p_extents) {
+PoolVector<Plane> _Geometry::build_box_planes(const Vector3& p_extents) {
return Geometry::build_box_planes(p_extents);
}
-DVector<Plane> _Geometry::build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis) {
+PoolVector<Plane> _Geometry::build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis) {
return Geometry::build_cylinder_planes(p_radius,p_height,p_sides,p_axis);
}
-DVector<Plane> _Geometry::build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis) {
+PoolVector<Plane> _Geometry::build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis) {
return Geometry::build_capsule_planes(p_radius,p_height,p_sides,p_lats,p_axis);
}
@@ -1275,22 +1275,22 @@ Variant _Geometry::segment_intersects_segment_2d(const Vector2& p_from_a,const V
};
};
-DVector<Vector2> _Geometry::get_closest_points_between_segments_2d( const Vector2& p1,const Vector2& q1, const Vector2& p2,const Vector2& q2) {
+PoolVector<Vector2> _Geometry::get_closest_points_between_segments_2d( const Vector2& p1,const Vector2& q1, const Vector2& p2,const Vector2& q2) {
Vector2 r1, r2;
Geometry::get_closest_points_between_segments(p1,q1,p2,q2,r1,r2);
- DVector<Vector2> r;
+ PoolVector<Vector2> r;
r.resize(2);
r.set(0,r1);
r.set(1,r2);
return r;
}
-DVector<Vector3> _Geometry::get_closest_points_between_segments(const Vector3& p1,const Vector3& p2,const Vector3& q1,const Vector3& q2) {
+PoolVector<Vector3> _Geometry::get_closest_points_between_segments(const Vector3& p1,const Vector3& p2,const Vector3& q1,const Vector3& q2) {
Vector3 r1, r2;
Geometry::get_closest_points_between_segments(p1,p2,q1,q2,r1,r2);
- DVector<Vector3> r;
+ PoolVector<Vector3> r;
r.resize(2);
r.set(0,r1);
r.set(1,r2);
@@ -1327,9 +1327,9 @@ bool _Geometry::point_is_inside_triangle(const Vector2& s, const Vector2& a, con
return Geometry::is_point_in_triangle(s,a,b,c);
}
-DVector<Vector3> _Geometry::segment_intersects_sphere( const Vector3& p_from, const Vector3& p_to, const Vector3& p_sphere_pos,real_t p_sphere_radius) {
+PoolVector<Vector3> _Geometry::segment_intersects_sphere( const Vector3& p_from, const Vector3& p_to, const Vector3& p_sphere_pos,real_t p_sphere_radius) {
- DVector<Vector3> r;
+ PoolVector<Vector3> r;
Vector3 res,norm;
if (!Geometry::segment_intersects_sphere(p_from,p_to,p_sphere_pos,p_sphere_radius,&res,&norm))
return r;
@@ -1339,9 +1339,9 @@ DVector<Vector3> _Geometry::segment_intersects_sphere( const Vector3& p_from, co
r.set(1,norm);
return r;
}
-DVector<Vector3> _Geometry::segment_intersects_cylinder( const Vector3& p_from, const Vector3& p_to, float p_height,float p_radius) {
+PoolVector<Vector3> _Geometry::segment_intersects_cylinder( const Vector3& p_from, const Vector3& p_to, float p_height,float p_radius) {
- DVector<Vector3> r;
+ PoolVector<Vector3> r;
Vector3 res,norm;
if (!Geometry::segment_intersects_cylinder(p_from,p_to,p_height,p_radius,&res,&norm))
return r;
@@ -1352,9 +1352,9 @@ DVector<Vector3> _Geometry::segment_intersects_cylinder( const Vector3& p_from,
return r;
}
-DVector<Vector3> _Geometry::segment_intersects_convex(const Vector3& p_from, const Vector3& p_to,const Vector<Plane>& p_planes) {
+PoolVector<Vector3> _Geometry::segment_intersects_convex(const Vector3& p_from, const Vector3& p_to,const Vector<Plane>& p_planes) {
- DVector<Vector3> r;
+ PoolVector<Vector3> r;
Vector3 res,norm;
if (!Geometry::segment_intersects_convex(p_from,p_to,p_planes.ptr(),p_planes.size(),&res,&norm))
return r;
@@ -1579,9 +1579,9 @@ real_t _File::get_real() const{
return f->get_real();
}
-DVector<uint8_t> _File::get_buffer(int p_length) const{
+PoolVector<uint8_t> _File::get_buffer(int p_length) const{
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
ERR_FAIL_COND_V(!f,data);
ERR_FAIL_COND_V(p_length<0,data);
@@ -1589,11 +1589,11 @@ DVector<uint8_t> _File::get_buffer(int p_length) const{
return data;
Error err = data.resize(p_length);
ERR_FAIL_COND_V(err!=OK,data);
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
int len = f->get_buffer(&w[0],p_length);
- ERR_FAIL_COND_V( len < 0 , DVector<uint8_t>());
+ ERR_FAIL_COND_V( len < 0 , PoolVector<uint8_t>());
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
if (len < p_length)
data.resize(p_length);
@@ -1748,7 +1748,7 @@ void _File::store_line(const String& p_string){
f->store_line(p_string);
}
-void _File::store_buffer(const DVector<uint8_t>& p_buffer){
+void _File::store_buffer(const PoolVector<uint8_t>& p_buffer){
ERR_FAIL_COND(!f);
@@ -1756,7 +1756,7 @@ void _File::store_buffer(const DVector<uint8_t>& p_buffer){
if (len==0)
return;
- DVector<uint8_t>::Read r = p_buffer.read();
+ PoolVector<uint8_t>::Read r = p_buffer.read();
f->store_buffer(&r[0],len);
}
@@ -1775,13 +1775,13 @@ void _File::store_var(const Variant& p_var) {
Error err = encode_variant(p_var,NULL,len);
ERR_FAIL_COND( err != OK );
- DVector<uint8_t> buff;
+ PoolVector<uint8_t> buff;
buff.resize(len);
- DVector<uint8_t>::Write w = buff.write();
+ PoolVector<uint8_t>::Write w = buff.write();
err = encode_variant(p_var,&w[0],len);
ERR_FAIL_COND( err != OK );
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
store_32(len);
store_buffer(buff);
@@ -1791,10 +1791,10 @@ Variant _File::get_var() const {
ERR_FAIL_COND_V(!f,Variant());
uint32_t len = get_32();
- DVector<uint8_t> buff = get_buffer(len);
+ PoolVector<uint8_t> buff = get_buffer(len);
ERR_FAIL_COND_V(buff.size() != len, Variant());
- DVector<uint8_t>::Read r = buff.read();
+ PoolVector<uint8_t>::Read r = buff.read();
Variant v;
Error err = decode_variant(v,&r[0],len);
@@ -2069,17 +2069,17 @@ String _Marshalls::variant_to_base64(const Variant& p_var) {
Error err = encode_variant(p_var,NULL,len);
ERR_FAIL_COND_V( err != OK, "" );
- DVector<uint8_t> buff;
+ PoolVector<uint8_t> buff;
buff.resize(len);
- DVector<uint8_t>::Write w = buff.write();
+ PoolVector<uint8_t>::Write w = buff.write();
err = encode_variant(p_var,&w[0],len);
ERR_FAIL_COND_V( err != OK, "" );
int b64len = len / 3 * 4 + 4 + 1;
- DVector<uint8_t> b64buff;
+ PoolVector<uint8_t> b64buff;
b64buff.resize(b64len);
- DVector<uint8_t>::Write w64 = b64buff.write();
+ PoolVector<uint8_t>::Write w64 = b64buff.write();
int strlen = base64_encode((char*)(&w64[0]), (char*)(&w[0]), len);
//OS::get_singleton()->print("len is %i, vector size is %i\n", b64len, strlen);
@@ -2094,9 +2094,9 @@ Variant _Marshalls::base64_to_variant(const String& p_str) {
int strlen = p_str.length();
CharString cstr = p_str.ascii();
- DVector<uint8_t> buf;
+ PoolVector<uint8_t> buf;
buf.resize(strlen / 4 * 3 + 1);
- DVector<uint8_t>::Write w = buf.write();
+ PoolVector<uint8_t>::Write w = buf.write();
int len = base64_decode((char*)(&w[0]), (char*)cstr.get_data(), strlen);
@@ -2107,15 +2107,15 @@ Variant _Marshalls::base64_to_variant(const String& p_str) {
return v;
};
-String _Marshalls::raw_to_base64(const DVector<uint8_t> &p_arr) {
+String _Marshalls::raw_to_base64(const PoolVector<uint8_t> &p_arr) {
int len = p_arr.size();
- DVector<uint8_t>::Read r = p_arr.read();
+ PoolVector<uint8_t>::Read r = p_arr.read();
int b64len = len / 3 * 4 + 4 + 1;
- DVector<uint8_t> b64buff;
+ PoolVector<uint8_t> b64buff;
b64buff.resize(b64len);
- DVector<uint8_t>::Write w64 = b64buff.write();
+ PoolVector<uint8_t>::Write w64 = b64buff.write();
int strlen = base64_encode((char*)(&w64[0]), (char*)(&r[0]), len);
w64[strlen] = 0;
@@ -2124,22 +2124,22 @@ String _Marshalls::raw_to_base64(const DVector<uint8_t> &p_arr) {
return ret;
};
-DVector<uint8_t> _Marshalls::base64_to_raw(const String &p_str) {
+PoolVector<uint8_t> _Marshalls::base64_to_raw(const String &p_str) {
int strlen = p_str.length();
CharString cstr = p_str.ascii();
int arr_len;
- DVector<uint8_t> buf;
+ PoolVector<uint8_t> buf;
{
buf.resize(strlen / 4 * 3 + 1);
- DVector<uint8_t>::Write w = buf.write();
+ PoolVector<uint8_t>::Write w = buf.write();
arr_len = base64_decode((char*)(&w[0]), (char*)cstr.get_data(), strlen);
};
buf.resize(arr_len);
- // conversion from DVector<uint8_t> to raw array?
+ // conversion from PoolVector<uint8_t> to raw array?
return buf;
};
@@ -2149,9 +2149,9 @@ String _Marshalls::utf8_to_base64(const String& p_str) {
int len = cstr.length();
int b64len = len / 3 * 4 + 4 + 1;
- DVector<uint8_t> b64buff;
+ PoolVector<uint8_t> b64buff;
b64buff.resize(b64len);
- DVector<uint8_t>::Write w64 = b64buff.write();
+ PoolVector<uint8_t>::Write w64 = b64buff.write();
int strlen = base64_encode((char*)(&w64[0]), (char*)cstr.get_data(), len);
@@ -2166,9 +2166,9 @@ String _Marshalls::base64_to_utf8(const String& p_str) {
int strlen = p_str.length();
CharString cstr = p_str.ascii();
- DVector<uint8_t> buf;
+ PoolVector<uint8_t> buf;
buf.resize(strlen / 4 * 3 + 1 + 1);
- DVector<uint8_t>::Write w = buf.write();
+ PoolVector<uint8_t>::Write w = buf.write();
int len = base64_decode((char*)(&w[0]), (char*)cstr.get_data(), strlen);
diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h
index a6ccf47652..59f243a0ee 100644
--- a/core/bind/core_bind.h
+++ b/core/bind/core_bind.h
@@ -50,7 +50,7 @@ public:
static _ResourceLoader *get_singleton() { return singleton; }
Ref<ResourceInteractiveLoader> load_interactive(const String& p_path,const String& p_type_hint="");
RES load(const String &p_path,const String& p_type_hint="", bool p_no_cache = false);
- DVector<String> get_recognized_extensions_for_type(const String& p_type);
+ PoolVector<String> get_recognized_extensions_for_type(const String& p_type);
void set_abort_on_missing_resources(bool p_abort);
StringArray get_dependencies(const String& p_path);
bool has(const String& p_path);
@@ -81,7 +81,7 @@ public:
static _ResourceSaver *get_singleton() { return singleton; }
Error save(const String &p_path,const RES& p_resource, uint32_t p_flags);
- DVector<String> get_recognized_extensions(const RES& p_resource);
+ PoolVector<String> get_recognized_extensions(const RES& p_resource);
_ResourceSaver();
@@ -345,20 +345,20 @@ protected:
public:
static _Geometry *get_singleton();
- DVector<Plane> build_box_planes(const Vector3& p_extents);
- DVector<Plane> build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis=Vector3::AXIS_Z);
- DVector<Plane> build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis=Vector3::AXIS_Z);
+ PoolVector<Plane> build_box_planes(const Vector3& p_extents);
+ PoolVector<Plane> build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis=Vector3::AXIS_Z);
+ PoolVector<Plane> build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis=Vector3::AXIS_Z);
Variant segment_intersects_segment_2d(const Vector2& p_from_a,const Vector2& p_to_a,const Vector2& p_from_b,const Vector2& p_to_b);
- DVector<Vector2> get_closest_points_between_segments_2d( const Vector2& p1,const Vector2& q1, const Vector2& p2,const Vector2& q2);
- DVector<Vector3> get_closest_points_between_segments(const Vector3& p1,const Vector3& p2,const Vector3& q1,const Vector3& q2);
+ PoolVector<Vector2> get_closest_points_between_segments_2d( const Vector2& p1,const Vector2& q1, const Vector2& p2,const Vector2& q2);
+ PoolVector<Vector3> get_closest_points_between_segments(const Vector3& p1,const Vector3& p2,const Vector3& q1,const Vector3& q2);
Vector3 get_closest_point_to_segment(const Vector3& p_point, const Vector3& p_a,const Vector3& p_b);
Variant ray_intersects_triangle( const Vector3& p_from, const Vector3& p_dir, const Vector3& p_v0,const Vector3& p_v1,const Vector3& p_v2);
Variant segment_intersects_triangle( const Vector3& p_from, const Vector3& p_to, const Vector3& p_v0,const Vector3& p_v1,const Vector3& p_v2);
bool point_is_inside_triangle(const Vector2& s, const Vector2& a, const Vector2& b, const Vector2& c) const;
- DVector<Vector3> segment_intersects_sphere( const Vector3& p_from, const Vector3& p_to, const Vector3& p_sphere_pos,real_t p_sphere_radius);
- DVector<Vector3> segment_intersects_cylinder( const Vector3& p_from, const Vector3& p_to, float p_height,float p_radius);
- DVector<Vector3> segment_intersects_convex(const Vector3& p_from, const Vector3& p_to,const Vector<Plane>& p_planes);
+ PoolVector<Vector3> segment_intersects_sphere( const Vector3& p_from, const Vector3& p_to, const Vector3& p_sphere_pos,real_t p_sphere_radius);
+ PoolVector<Vector3> segment_intersects_cylinder( const Vector3& p_from, const Vector3& p_to, float p_height,float p_radius);
+ PoolVector<Vector3> segment_intersects_convex(const Vector3& p_from, const Vector3& p_to,const Vector<Plane>& p_planes);
real_t segment_intersects_circle(const Vector2& p_from, const Vector2& p_to, const Vector2& p_circle_pos, real_t p_circle_radius);
int get_uv84_normal_bit(const Vector3& p_vector);
@@ -416,7 +416,7 @@ public:
Variant get_var() const;
- DVector<uint8_t> get_buffer(int p_length) const; ///< get an array of bytes
+ PoolVector<uint8_t> get_buffer(int p_length) const; ///< get an array of bytes
String get_line() const;
String get_as_text() const;
String get_md5(const String& p_path) const;
@@ -450,7 +450,7 @@ public:
Vector<String> get_csv_line(String delim=",") const;
- void store_buffer(const DVector<uint8_t>& p_buffer); ///< store an array of bytes
+ void store_buffer(const PoolVector<uint8_t>& p_buffer); ///< store an array of bytes
void store_var(const Variant& p_var);
@@ -520,8 +520,8 @@ public:
String variant_to_base64(const Variant& p_var);
Variant base64_to_variant(const String& p_str);
- String raw_to_base64(const DVector<uint8_t>& p_arr);
- DVector<uint8_t> base64_to_raw(const String& p_str);
+ String raw_to_base64(const PoolVector<uint8_t>& p_arr);
+ PoolVector<uint8_t> base64_to_raw(const String& p_str);
String utf8_to_base64(const String& p_str);
String base64_to_utf8(const String& p_str);
diff --git a/core/compressed_translation.cpp b/core/compressed_translation.cpp
index 9b39eeb2c1..f8aa3915d4 100644
--- a/core/compressed_translation.cpp
+++ b/core/compressed_translation.cpp
@@ -356,8 +356,8 @@ void PHashTranslation::generate(const Ref<Translation> &p_from) {
hash_table.resize(size);
bucket_table.resize(bucket_table_size);
- DVector<int>::Write htwb = hash_table.write();
- DVector<int>::Write btwb = bucket_table.write();
+ PoolVector<int>::Write htwb = hash_table.write();
+ PoolVector<int>::Write btwb = bucket_table.write();
uint32_t *htw = (uint32_t*)&htwb[0];
uint32_t *btw = (uint32_t*)&btwb[0];
@@ -392,7 +392,7 @@ void PHashTranslation::generate(const Ref<Translation> &p_from) {
print_line("total collisions: "+itos(collisions));
strings.resize(total_compression_size);
- DVector<uint8_t>::Write cw = strings.write();
+ PoolVector<uint8_t>::Write cw = strings.write();
for(int i=0;i<compressed.size();i++) {
memcpy(&cw[compressed[i].offset],compressed[i].compressed.get_data(),compressed[i].compressed.size());
@@ -454,11 +454,11 @@ StringName PHashTranslation::get_message(const StringName& p_src_text) const {
uint32_t h = hash(0,str.get_data());
- DVector<int>::Read htr = hash_table.read();
+ PoolVector<int>::Read htr = hash_table.read();
const uint32_t *htptr = (const uint32_t*)&htr[0];
- DVector<int>::Read btr = bucket_table.read();
+ PoolVector<int>::Read btr = bucket_table.read();
const uint32_t *btptr = (const uint32_t*)&btr[0];
- DVector<uint8_t>::Read sr = strings.read();
+ PoolVector<uint8_t>::Read sr = strings.read();
const char *sptr= (const char*)&sr[0];
uint32_t p = htptr[ h % htsize];
diff --git a/core/compressed_translation.h b/core/compressed_translation.h
index 218a59c05d..cb1e084051 100644
--- a/core/compressed_translation.h
+++ b/core/compressed_translation.h
@@ -42,9 +42,9 @@ class PHashTranslation : public Translation {
//of catching untranslated strings
//load/store friendly types
- DVector<int> hash_table;
- DVector<int> bucket_table;
- DVector<uint8_t> strings;
+ PoolVector<int> hash_table;
+ PoolVector<int> bucket_table;
+ PoolVector<uint8_t> strings;
struct Bucket {
diff --git a/core/dictionary.cpp b/core/dictionary.cpp
index 62e5d6bc3c..d5d29ca0fc 100644
--- a/core/dictionary.cpp
+++ b/core/dictionary.cpp
@@ -29,7 +29,6 @@
#include "dictionary.h"
#include "safe_refcount.h"
#include "variant.h"
-#include "io/json.h"
struct _DictionaryVariantHash {
@@ -37,18 +36,47 @@ struct _DictionaryVariantHash {
};
+
+
+
struct DictionaryPrivate {
+ struct Data {
+ Variant variant;
+ int order;
+ };
+
SafeRefCount refcount;
- HashMap<Variant,Variant,_DictionaryVariantHash> variant_map;
+ HashMap<Variant,Data,_DictionaryVariantHash> variant_map;
+ int counter;
bool shared;
};
+struct DictionaryPrivateSort {
+
+ bool operator()(const HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair *A,const HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair *B) const {
+
+ return A->data.order < B->data.order;
+ }
+};
void Dictionary::get_key_list( List<Variant> *p_keys) const {
- _p->variant_map.get_key_list(p_keys);
+ if (_p->variant_map.empty())
+ return;
+
+ int count = _p->variant_map.size();
+ const HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair **pairs = (const HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair**)alloca( count * sizeof(HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair *) );
+ _p->variant_map.get_key_value_ptr_array(pairs);
+
+ SortArray<const HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair*,DictionaryPrivateSort> sort;
+ sort.sort(pairs,count);
+
+ for(int i=0;i<count;i++) {
+ p_keys->push_back(pairs[i]->key);
+ }
+
}
void Dictionary::_copy_on_write() const {
@@ -69,30 +97,52 @@ Variant& Dictionary::operator[](const Variant& p_key) {
_copy_on_write();
- return _p->variant_map[p_key];
+ DictionaryPrivate::Data *v =_p->variant_map.getptr(p_key);
+
+ if (!v) {
+
+ DictionaryPrivate::Data d;
+ d.order=_p->counter++;
+ _p->variant_map[p_key]=d;
+ v =_p->variant_map.getptr(p_key);
+
+ }
+ return v->variant;
}
const Variant& Dictionary::operator[](const Variant& p_key) const {
- return _p->variant_map[p_key];
+ return _p->variant_map[p_key].variant;
}
const Variant* Dictionary::getptr(const Variant& p_key) const {
- return _p->variant_map.getptr(p_key);
+ const DictionaryPrivate::Data *v =_p->variant_map.getptr(p_key);
+ if (!v)
+ return NULL;
+ else
+ return &v->variant;
}
+
Variant* Dictionary::getptr(const Variant& p_key) {
- _copy_on_write();
- return _p->variant_map.getptr(p_key);
+ _copy_on_write();
+ DictionaryPrivate::Data *v =_p->variant_map.getptr(p_key);
+ if (!v)
+ return NULL;
+ else
+ return &v->variant;
+
+
}
Variant Dictionary::get_valid(const Variant& p_key) const {
- const Variant *v = getptr(p_key);
+ DictionaryPrivate::Data *v =_p->variant_map.getptr(p_key);
if (!v)
return Variant();
- return *v;
+ else
+ return v->variant;
}
@@ -151,6 +201,7 @@ void Dictionary::clear() {
_copy_on_write();
_p->variant_map.clear();
+ _p->counter=0;
}
bool Dictionary::is_shared() const {
@@ -203,11 +254,20 @@ Array Dictionary::values() const {
Array varr;
varr.resize(size());
- const Variant *key=NULL;
- int i=0;
- while((key=next(key))){
- varr[i++] = _p->variant_map[*key];
+ if (_p->variant_map.empty())
+ return varr;
+
+ int count = _p->variant_map.size();
+ const HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair **pairs = (const HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair**)alloca( count * sizeof(HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair *) );
+ _p->variant_map.get_key_value_ptr_array(pairs);
+
+ SortArray<const HashMap<Variant,DictionaryPrivate::Data,_DictionaryVariantHash>::Pair*,DictionaryPrivateSort> sort;
+ sort.sort(pairs,count);
+
+ for(int i=0;i<count;i++) {
+ varr[i]=pairs[i]->data.variant;
}
+
return varr;
}
@@ -216,22 +276,6 @@ const Variant* Dictionary::next(const Variant* p_key) const {
return _p->variant_map.next(p_key);
}
-
-Error Dictionary::parse_json(const String& p_json) {
-
- String errstr;
- int errline=0;
- if (p_json != ""){
- Error err = JSON::parse(p_json,*this,errstr,errline);
- if (err!=OK) {
- ERR_EXPLAIN("Error parsing JSON: "+errstr+" at line: "+itos(errline));
- ERR_FAIL_COND_V(err!=OK,err);
- }
- }
-
- return OK;
-}
-
Dictionary Dictionary::copy() const {
Dictionary n(is_shared());
@@ -246,11 +290,6 @@ Dictionary Dictionary::copy() const {
return n;
}
-String Dictionary::to_json() const {
-
- return JSON::print(*this);
-}
-
void Dictionary::operator=(const Dictionary& p_dictionary) {
@@ -269,6 +308,7 @@ Dictionary::Dictionary(bool p_shared) {
_p=memnew( DictionaryPrivate );
_p->refcount.init();
+ _p->counter=0;
_p->shared=p_shared;
}
diff --git a/core/dictionary.h b/core/dictionary.h
index d074db8588..9fab653470 100644
--- a/core/dictionary.h
+++ b/core/dictionary.h
@@ -63,9 +63,6 @@ public:
void clear();
- Error parse_json(const String& p_json);
- String to_json() const;
-
bool is_shared() const;
bool has(const Variant& p_key) const;
diff --git a/core/dvector.cpp b/core/dvector.cpp
index 7caa198c4c..f6b5a5fcbf 100644
--- a/core/dvector.cpp
+++ b/core/dvector.cpp
@@ -30,3 +30,44 @@
Mutex* dvector_lock=NULL;
+PoolAllocator *MemoryPool::memory_pool=NULL;
+uint8_t *MemoryPool::pool_memory=NULL;
+size_t *MemoryPool::pool_size=NULL;
+
+
+MemoryPool::Alloc *MemoryPool::allocs=NULL;
+MemoryPool::Alloc *MemoryPool::free_list=NULL;
+uint32_t MemoryPool::alloc_count=0;
+uint32_t MemoryPool::allocs_used=0;
+Mutex *MemoryPool::alloc_mutex=NULL;
+
+size_t MemoryPool::total_memory=0;
+size_t MemoryPool::max_memory=0;
+
+
+void MemoryPool::setup(uint32_t p_max_allocs) {
+
+ allocs = memnew_arr( Alloc, p_max_allocs);
+ alloc_count = p_max_allocs;
+ allocs_used=0;
+
+ for(uint32_t i=0;i<alloc_count-1;i++) {
+
+ allocs[i].free_list=&allocs[i+1];
+ }
+
+ free_list=&allocs[0];
+
+ alloc_mutex = Mutex::create();
+
+}
+
+void MemoryPool::cleanup() {
+
+ memdelete_arr(allocs);
+ memdelete(alloc_mutex);
+
+ ERR_EXPLAINC("There are still MemoryPool allocs in use at exit!");
+ ERR_FAIL_COND(allocs_used>0);
+
+}
diff --git a/core/dvector.h b/core/dvector.h
index 9e0090fb7c..cac9e8ef85 100644
--- a/core/dvector.h
+++ b/core/dvector.h
@@ -30,6 +30,46 @@
#define DVECTOR_H
#include "os/memory.h"
+#include "os/copymem.h"
+#include "pool_allocator.h"
+#include "safe_refcount.h"
+#include "os/rw_lock.h"
+
+struct MemoryPool {
+
+ //avoid accessing these directly, must be public for template access
+
+ static PoolAllocator *memory_pool;
+ static uint8_t *pool_memory;
+ static size_t *pool_size;
+
+
+ struct Alloc {
+
+ SafeRefCount refcount;
+ uint32_t lock;
+ void *mem;
+ PoolAllocator::ID pool_id;
+ size_t size;
+
+ Alloc *free_list;
+
+ Alloc() { mem=NULL; lock=0; pool_id=POOL_ALLOCATOR_INVALID_ID; size=0; free_list=NULL; }
+ };
+
+
+ static Alloc *allocs;
+ static Alloc *free_list;
+ static uint32_t alloc_count;
+ static uint32_t allocs_used;
+ static Mutex *alloc_mutex;
+ static size_t total_memory;
+ static size_t max_memory;
+
+
+ static void setup(uint32_t p_max_allocs=(1<<16));
+ static void cleanup();
+};
/**
@@ -37,182 +77,302 @@
*/
-extern Mutex* dvector_lock;
-
template<class T>
-class DVector {
+class PoolVector {
+
+ MemoryPool::Alloc *alloc;
- mutable MID mem;
+ void _copy_on_write() {
- void copy_on_write() {
- if (!mem.is_valid())
+ if (!alloc)
return;
- if (dvector_lock)
- dvector_lock->lock();
+ ERR_FAIL_COND(alloc->lock>0);
- MID_Lock lock( mem );
+ if (alloc->refcount.get()==1)
+ return; //nothing to do
- if ( *(int*)lock.data() == 1 ) {
- // one reference, means no refcount changes
- if (dvector_lock)
- dvector_lock->unlock();
- return;
+ //must allocate something
+
+ MemoryPool::alloc_mutex->lock();
+ if (MemoryPool::allocs_used==MemoryPool::alloc_count) {
+ MemoryPool::alloc_mutex->unlock();
+ ERR_EXPLAINC("All memory pool allocations are in use, can't COW.");
+ ERR_FAIL();
}
- MID new_mem= dynalloc( mem.get_size() );
+ MemoryPool::Alloc *old_alloc = alloc;
- if (!new_mem.is_valid()) {
+ //take one from the free list
+ alloc = MemoryPool::free_list;
+ MemoryPool::free_list = alloc->free_list;
+ //increment the used counter
+ MemoryPool::allocs_used++;
- if (dvector_lock)
- dvector_lock->unlock();
- ERR_FAIL_COND( new_mem.is_valid() ); // out of memory
+ //copy the alloc data
+ alloc->size=old_alloc->size;
+ alloc->refcount.init();
+ alloc->pool_id=POOL_ALLOCATOR_INVALID_ID;
+ alloc->lock=0;
+
+#ifdef DEBUG_ENABLED
+ MemoryPool::total_memory+=alloc->size;
+ if (MemoryPool::total_memory>MemoryPool::max_memory) {
+ MemoryPool::max_memory=MemoryPool::total_memory;
}
+#endif
- MID_Lock dst_lock( new_mem );
+ MemoryPool::alloc_mutex->unlock();
- int *rc = (int*)dst_lock.data();
- *rc=1;
+ if (MemoryPool::memory_pool) {
- T * dst = (T*)(rc + 1 );
- T * src =(T*) ((int*)lock.data() + 1 );
+ } else {
+ alloc->mem = memalloc( alloc->size );
+ }
- int count = (mem.get_size() - sizeof(int)) / sizeof(T);
+ {
+ Write w;
+ w._ref(alloc);
+ Read r;
+ r._ref(old_alloc);
+
+ int cur_elements = alloc->size/sizeof(T);
+ T*dst = (T*)w.ptr();
+ const T*src = (const T*)r.ptr();
+ for(int i=0;i<cur_elements;i++) {
+ memnew_placement(&dst[i],T(src[i]));
+ }
+ }
- for (int i=0;i<count;i++) {
- memnew_placement( &dst[i], T(src[i]) );
- }
+ if (old_alloc->refcount.unref()==true) {
+ //this should never happen but..
- (*(int*)lock.data())--;
+#ifdef DEBUG_ENABLED
+ MemoryPool::alloc_mutex->lock();
+ MemoryPool::total_memory-=old_alloc->size;
+ MemoryPool::alloc_mutex->unlock();
+#endif
- // unlock all
- dst_lock=MID_Lock();
- lock=MID_Lock();
+ {
+ Write w;
+ w._ref(old_alloc);
- mem=new_mem;
+ int cur_elements = old_alloc->size/sizeof(T);
+ T*elems = (T*)w.ptr();
+ for(int i=0;i<cur_elements;i++) {
+ elems[i].~T();
+ }
- if (dvector_lock)
- dvector_lock->unlock();
+ }
- }
+ if (MemoryPool::memory_pool) {
+ //resize memory pool
+ //if none, create
+ //if some resize
+ } else {
- void reference( const DVector& p_dvector ) {
- unreference();
+ memfree( old_alloc->mem );
+ old_alloc->mem=NULL;
+ old_alloc->size=0;
- if (dvector_lock)
- dvector_lock->lock();
- if (!p_dvector.mem.is_valid()) {
+ MemoryPool::alloc_mutex->lock();
+ old_alloc->free_list=MemoryPool::free_list;
+ MemoryPool::free_list=old_alloc;
+ MemoryPool::allocs_used--;
+ MemoryPool::alloc_mutex->unlock();
+ }
- if (dvector_lock)
- dvector_lock->unlock();
- return;
}
- MID_Lock lock(p_dvector.mem);
+ }
- int * rc = (int*)lock.data();
- (*rc)++;
+ void _reference( const PoolVector& p_dvector ) {
- lock = MID_Lock();
- mem=p_dvector.mem;
+ if (alloc==p_dvector.alloc)
+ return;
- if (dvector_lock)
- dvector_lock->unlock();
+ _unreference();
- }
+ if (!p_dvector.alloc) {
+ return;
+ }
+ if (p_dvector.alloc->refcount.ref()) {
+ alloc=p_dvector.alloc;
+ }
- void unreference() {
+ }
- if (dvector_lock)
- dvector_lock->lock();
- if (!mem.is_valid()) {
+ void _unreference() {
- if (dvector_lock)
- dvector_lock->unlock();
+ if (!alloc)
return;
- }
- MID_Lock lock(mem);
-
- int * rc = (int*)lock.data();
- (*rc)--;
+ if (alloc->refcount.unref()==false) {
+ alloc=NULL;
+ return;
+ }
- if (*rc==0) {
- // no one else using it, destruct
+ //must be disposed!
- T * t= (T*)(rc+1);
- int count = (mem.get_size() - sizeof(int)) / sizeof(T);
+ {
+ int cur_elements = alloc->size/sizeof(T);
+ Write w = write();
- for (int i=0;i<count;i++) {
+ for (int i=0;i<cur_elements;i++) {
- t[i].~T();
+ w[i].~T();
}
}
+#ifdef DEBUG_ENABLED
+ MemoryPool::alloc_mutex->lock();
+ MemoryPool::total_memory-=alloc->size;
+ MemoryPool::alloc_mutex->unlock();
+#endif
+
+
+ if (MemoryPool::memory_pool) {
+ //resize memory pool
+ //if none, create
+ //if some resize
+ } else {
+
+ memfree( alloc->mem );
+ alloc->mem=NULL;
+ alloc->size=0;
- lock = MID_Lock();
- mem = MID ();
+ MemoryPool::alloc_mutex->lock();
+ alloc->free_list=MemoryPool::free_list;
+ MemoryPool::free_list=alloc;
+ MemoryPool::allocs_used--;
+ MemoryPool::alloc_mutex->unlock();
- if (dvector_lock)
- dvector_lock->unlock();
+ }
+ alloc=NULL;
}
public:
- class Read {
- friend class DVector;
- MID_Lock lock;
- const T * mem;
+ class Access {
+ friend class PoolVector;
+ protected:
+ MemoryPool::Alloc *alloc;
+ T * mem;
+
+ _FORCE_INLINE_ void _ref(MemoryPool::Alloc *p_alloc) {
+ alloc=p_alloc;
+ if (alloc) {
+ if (atomic_increment(&alloc->lock)==1) {
+ if (MemoryPool::memory_pool) {
+ //lock it and get mem
+ }
+ }
+
+ mem = (T*)alloc->mem;
+ }
+ }
+
+ _FORCE_INLINE_ void _unref() {
+
+
+ if (alloc) {
+ if (atomic_decrement(&alloc->lock)==0) {
+ if (MemoryPool::memory_pool) {
+ //put mem back
+ }
+ }
+
+ mem = NULL;
+ alloc=NULL;
+ }
+
+
+ }
+
+ Access() {
+ alloc=NULL;
+ mem=NULL;
+ }
+
+
+ public:
+ virtual ~Access() {
+ _unref();
+ }
+ };
+
+ class Read : public Access {
public:
- _FORCE_INLINE_ const T& operator[](int p_index) const { return mem[p_index]; }
- _FORCE_INLINE_ const T *ptr() const { return mem; }
+ _FORCE_INLINE_ const T& operator[](int p_index) const { return this->mem[p_index]; }
+ _FORCE_INLINE_ const T *ptr() const { return this->mem; }
+
+ void operator=(const Read& p_read) {
+ if (this->alloc==p_read.alloc)
+ return;
+ this->_unref();
+ this->_ref(p_read.alloc);
+ }
+
+ Read(const Read& p_read) {
+ this->_ref(p_read.alloc);
+ }
+
+ Read() {}
+
- Read() { mem=NULL; }
};
- class Write {
- friend class DVector;
- MID_Lock lock;
- T * mem;
+ class Write : public Access {
public:
- _FORCE_INLINE_ T& operator[](int p_index) { return mem[p_index]; }
- _FORCE_INLINE_ T *ptr() { return mem; }
+ _FORCE_INLINE_ T& operator[](int p_index) const { return this->mem[p_index]; }
+ _FORCE_INLINE_ T *ptr() const { return this->mem; }
+
+ void operator=(const Write& p_read) {
+ if (this->alloc==p_read.alloc)
+ return;
+ this->_unref();
+ this->_ref(p_read.alloc);
+ }
+
+ Write(const Write& p_read) {
+ this->_ref(p_read.alloc);
+ }
+
+ Write() {}
- Write() { mem=NULL; }
};
Read read() const {
Read r;
- if (mem.is_valid()) {
- r.lock = MID_Lock( mem );
- r.mem = (const T*)((int*)r.lock.data()+1);
+ if (alloc) {
+ r._ref(alloc);
}
return r;
+
}
Write write() {
Write w;
- if (mem.is_valid()) {
- copy_on_write();
- w.lock = MID_Lock( mem );
- w.mem = (T*)((int*)w.lock.data()+1);
+ if (alloc) {
+ _copy_on_write(); //make sure there is only one being acessed
+ w._ref(alloc);
}
return w;
}
@@ -250,7 +410,7 @@ public:
void set(int p_index, const T& p_val);
void push_back(const T& p_val);
void append(const T& p_val) { push_back(p_val); }
- void append_array(const DVector<T>& p_arr) {
+ void append_array(const PoolVector<T>& p_arr) {
int ds = p_arr.size();
if (ds==0)
return;
@@ -262,7 +422,7 @@ public:
w[bs+i]=r[i];
}
- DVector<T> subarray(int p_from, int p_to) {
+ PoolVector<T> subarray(int p_from, int p_to) {
if (p_from<0) {
p_from=size()+p_from;
@@ -271,15 +431,15 @@ public:
p_to=size()+p_to;
}
if (p_from<0 || p_from>=size()) {
- DVector<T>& aux=*((DVector<T>*)0); // nullreturn
+ PoolVector<T>& aux=*((PoolVector<T>*)0); // nullreturn
ERR_FAIL_COND_V(p_from<0 || p_from>=size(),aux)
}
if (p_to<0 || p_to>=size()) {
- DVector<T>& aux=*((DVector<T>*)0); // nullreturn
+ PoolVector<T>& aux=*((PoolVector<T>*)0); // nullreturn
ERR_FAIL_COND_V(p_to<0 || p_to>=size(),aux)
}
- DVector<T> slice;
+ PoolVector<T> slice;
int span=1 + p_to - p_from;
slice.resize(span);
Read r = read();
@@ -307,7 +467,7 @@ public:
}
- bool is_locked() const { return mem.is_locked(); }
+ bool is_locked() const { return alloc && alloc->lock>0; }
inline const T operator[](int p_index) const;
@@ -315,27 +475,27 @@ public:
void invert();
- void operator=(const DVector& p_dvector) { reference(p_dvector); }
- DVector() {}
- DVector(const DVector& p_dvector) { reference(p_dvector); }
- ~DVector() { unreference(); }
+ void operator=(const PoolVector& p_dvector) { _reference(p_dvector); }
+ PoolVector() { alloc=NULL; }
+ PoolVector(const PoolVector& p_dvector) { alloc=NULL; _reference(p_dvector); }
+ ~PoolVector() { _unreference(); }
};
template<class T>
-int DVector<T>::size() const {
+int PoolVector<T>::size() const {
- return mem.is_valid() ? ((mem.get_size() - sizeof(int)) / sizeof(T) ) : 0;
+ return alloc ? alloc->size/sizeof(T) : 0;
}
template<class T>
-T DVector<T>::get(int p_index) const {
+T PoolVector<T>::get(int p_index) const {
return operator[](p_index);
}
template<class T>
-void DVector<T>::set(int p_index, const T& p_val) {
+void PoolVector<T>::set(int p_index, const T& p_val) {
if (p_index<0 || p_index>=size()) {
ERR_FAIL_COND(p_index<0 || p_index>=size());
@@ -346,14 +506,14 @@ void DVector<T>::set(int p_index, const T& p_val) {
}
template<class T>
-void DVector<T>::push_back(const T& p_val) {
+void PoolVector<T>::push_back(const T& p_val) {
resize( size() + 1 );
set( size() -1, p_val );
}
template<class T>
-const T DVector<T>::operator[](int p_index) const {
+const T PoolVector<T>::operator[](int p_index) const {
if (p_index<0 || p_index>=size()) {
T& aux=*((T*)0); //nullreturn
@@ -367,86 +527,122 @@ const T DVector<T>::operator[](int p_index) const {
template<class T>
-Error DVector<T>::resize(int p_size) {
+Error PoolVector<T>::resize(int p_size) {
- if (dvector_lock)
- dvector_lock->lock();
- bool same = p_size==size();
+ if (alloc==NULL) {
- if (dvector_lock)
- dvector_lock->unlock();
- // no further locking is necesary because we are supposed to own the only copy of this (using copy on write)
+ if (p_size==0)
+ return OK; //nothing to do here
- if (same)
- return OK;
+ //must allocate something
+ MemoryPool::alloc_mutex->lock();
+ if (MemoryPool::allocs_used==MemoryPool::alloc_count) {
+ MemoryPool::alloc_mutex->unlock();
+ ERR_EXPLAINC("All memory pool allocations are in use.");
+ ERR_FAIL_V(ERR_OUT_OF_MEMORY);
+ }
- if (p_size == 0 ) {
+ //take one from the free list
+ alloc = MemoryPool::free_list;
+ MemoryPool::free_list = alloc->free_list;
+ //increment the used counter
+ MemoryPool::allocs_used++;
- unreference();
- return OK;
+ //cleanup the alloc
+ alloc->size=0;
+ alloc->refcount.init();
+ alloc->pool_id=POOL_ALLOCATOR_INVALID_ID;
+ MemoryPool::alloc_mutex->unlock();
+
+ } else {
+
+ ERR_FAIL_COND_V( alloc->lock>0, ERR_LOCKED ); //can't resize if locked!
}
+ size_t new_size = sizeof(T)*p_size;
- copy_on_write(); // make it unique
+ if (alloc->size==new_size)
+ return OK; //nothing to do
- ERR_FAIL_COND_V( mem.is_locked(), ERR_LOCKED ); // if after copy on write, memory is locked, fail.
+ if (p_size == 0 ) {
+ _unreference();
+ return OK;
+ }
- if (p_size > size() ) {
+ _copy_on_write(); // make it unique
- int oldsize=size();
+#ifdef DEBUG_ENABLED
+ MemoryPool::alloc_mutex->lock();
+ MemoryPool::total_memory-=alloc->size;
+ MemoryPool::total_memory+=new_size;
+ if (MemoryPool::total_memory>MemoryPool::max_memory) {
+ MemoryPool::max_memory=MemoryPool::total_memory;
+ }
+ MemoryPool::alloc_mutex->unlock();
+#endif
- MID_Lock lock;
- if (oldsize==0) {
+ int cur_elements = alloc->size / sizeof(T);
- mem = dynalloc( p_size * sizeof(T) + sizeof(int) );
- lock=MID_Lock(mem);
- int *rc = ((int*)lock.data());
- *rc=1;
+ if (p_size > cur_elements ) {
+ if (MemoryPool::memory_pool) {
+ //resize memory pool
+ //if none, create
+ //if some resize
} else {
- if (dynrealloc( mem, p_size * sizeof(T) + sizeof(int) )!=OK ) {
-
- ERR_FAIL_V(ERR_OUT_OF_MEMORY); // out of memory
+ if (alloc->size==0) {
+ alloc->mem = memalloc( new_size );
+ } else {
+ alloc->mem = memrealloc( alloc->mem, new_size );
}
-
- lock=MID_Lock(mem);
}
+ alloc->size=new_size;
+ Write w = write();
+ for (int i=cur_elements;i<p_size;i++) {
- T *t = (T*)((int*)lock.data() + 1);
-
- for (int i=oldsize;i<p_size;i++) {
-
- memnew_placement(&t[i], T );
+ memnew_placement(&w[i], T );
}
- lock = MID_Lock(); // clear
- } else {
-
- int oldsize=size();
-
- MID_Lock lock(mem);
+ } else {
- T *t = (T*)((int*)lock.data() + 1);
+ {
+ Write w = write();
+ for (int i=p_size;i<cur_elements;i++) {
- for (int i=p_size;i<oldsize;i++) {
+ w[i].~T();
+ }
- t[i].~T();
}
- lock = MID_Lock(); // clear
+ if (MemoryPool::memory_pool) {
+ //resize memory pool
+ //if none, create
+ //if some resize
+ } else {
- if (dynrealloc( mem, p_size * sizeof(T) + sizeof(int) )!=OK ) {
+ if (new_size==0) {
+ memfree( alloc->mem );
+ alloc->mem=NULL;
+ alloc->size=0;
- ERR_FAIL_V(ERR_OUT_OF_MEMORY); // wtf error
- }
+ MemoryPool::alloc_mutex->lock();
+ alloc->free_list=MemoryPool::free_list;
+ MemoryPool::free_list=alloc;
+ MemoryPool::allocs_used--;
+ MemoryPool::alloc_mutex->unlock();
+ } else {
+ alloc->mem = memrealloc( alloc->mem, new_size );
+ alloc->size=new_size;
+ }
+ }
}
@@ -454,7 +650,7 @@ Error DVector<T>::resize(int p_size) {
}
template<class T>
-void DVector<T>::invert() {
+void PoolVector<T>::invert() {
T temp;
Write w = write();
int s = size();
diff --git a/core/global_constants.cpp b/core/global_constants.cpp
index c5c2081b5c..320f649400 100644
--- a/core/global_constants.cpp
+++ b/core/global_constants.cpp
@@ -329,7 +329,7 @@ static _GlobalConstant _global_constants[]={
BIND_GLOBAL_CONSTANT( BUTTON_MASK_RIGHT ),
BIND_GLOBAL_CONSTANT( BUTTON_MASK_MIDDLE ),
- //joysticks
+ //joypads
BIND_GLOBAL_CONSTANT( JOY_BUTTON_0 ),
BIND_GLOBAL_CONSTANT( JOY_BUTTON_1 ),
BIND_GLOBAL_CONSTANT( JOY_BUTTON_2 ),
diff --git a/core/globals.cpp b/core/globals.cpp
index 6609b47147..0b5fe4a82e 100644
--- a/core/globals.cpp
+++ b/core/globals.cpp
@@ -616,7 +616,7 @@ static Variant _decode_variant(const String& p_string) {
ERR_FAIL_COND_V(params.size()!=2,Variant());
InputEvent ie;
- ie.type=InputEvent::JOYSTICK_BUTTON;
+ ie.type=InputEvent::JOYPAD_BUTTON;
ie.device=params[0].to_int();
ie.joy_button.button_index=params[1].to_int();
@@ -628,7 +628,7 @@ static Variant _decode_variant(const String& p_string) {
ERR_FAIL_COND_V(params.size()!=2,Variant());
InputEvent ie;
- ie.type=InputEvent::JOYSTICK_MOTION;
+ ie.type=InputEvent::JOYPAD_MOTION;
ie.device=params[0].to_int();
int axis = params[1].to_int();;
ie.joy_motion.axis=axis>>1;
@@ -691,9 +691,9 @@ static Variant _decode_variant(const String& p_string) {
String data=params[4];
int datasize=data.length()/2;
- DVector<uint8_t> pixels;
+ PoolVector<uint8_t> pixels;
pixels.resize(datasize);
- DVector<uint8_t>::Write wb = pixels.write();
+ PoolVector<uint8_t>::Write wb = pixels.write();
const CharType *cptr=data.c_str();
int idx=0;
@@ -720,7 +720,7 @@ static Variant _decode_variant(const String& p_string) {
}
- wb = DVector<uint8_t>::Write();
+ wb = PoolVector<uint8_t>::Write();
return Image(w,h,mipmaps,imgformat,pixels);
}
@@ -992,9 +992,9 @@ static String _encode_variant(const Variant& p_variant) {
str+=itos(img.has_mipmaps())+", ";
str+=itos(img.get_width())+", ";
str+=itos(img.get_height())+", ";
- DVector<uint8_t> data = img.get_data();
+ PoolVector<uint8_t> data = img.get_data();
int ds=data.size();
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
for(int i=0;i<ds;i++) {
uint8_t byte = r[i];
const char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
@@ -1031,11 +1031,11 @@ static String _encode_variant(const Variant& p_variant) {
return "mbutton("+itos(ev.device)+", "+itos(ev.mouse_button.button_index)+")";
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
return "jbutton("+itos(ev.device)+", "+itos(ev.joy_button.button_index)+")";
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
return "jaxis("+itos(ev.device)+", "+itos(ev.joy_motion.axis * 2 + (ev.joy_motion.axis_value<0?0:1))+")";
} break;
@@ -1463,7 +1463,7 @@ GlobalConfig::GlobalConfig() {
InputEvent key;
key.type=InputEvent::KEY;
InputEvent joyb;
- joyb.type=InputEvent::JOYSTICK_BUTTON;
+ joyb.type=InputEvent::JOYPAD_BUTTON;
GLOBAL_DEF("application/name","" );
diff --git a/core/hash_map.h b/core/hash_map.h
index 523a4a6214..fba12b55ec 100644
--- a/core/hash_map.h
+++ b/core/hash_map.h
@@ -596,6 +596,20 @@ public:
hash_table_power=0;
}
+ void get_key_value_ptr_array(const Pair **p_pairs) const {
+ if (!hash_table)
+ return;
+ for(int i=0;i<(1<<hash_table_power);i++) {
+
+ Entry *e=hash_table[i];
+ while(e) {
+ *p_pairs=&e->pair;
+ p_pairs++;
+ e=e->next;
+ }
+ }
+ }
+
void get_key_list(List<TKey> *p_keys) const {
if (!hash_table)
return;
diff --git a/core/image.cpp b/core/image.cpp
index e949cd9b38..174c840c23 100644
--- a/core/image.cpp
+++ b/core/image.cpp
@@ -365,8 +365,8 @@ void Image::convert( Format p_new_format ){
// int len=data.size();
- DVector<uint8_t>::Read r = data.read();
- DVector<uint8_t>::Write w = new_img.data.write();
+ PoolVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Write w = new_img.data.write();
const uint8_t *rptr = r.ptr();
uint8_t *wptr = w.ptr();
@@ -409,8 +409,8 @@ void Image::convert( Format p_new_format ){
}
- r = DVector<uint8_t>::Read();
- w = DVector<uint8_t>::Write();
+ r = PoolVector<uint8_t>::Read();
+ w = PoolVector<uint8_t>::Write();
bool gen_mipmaps=mipmaps;
@@ -651,10 +651,10 @@ void Image::resize( int p_width, int p_height, Interpolation p_interpolation ) {
Image dst( p_width, p_height, 0, format );
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
const unsigned char*r_ptr=r.ptr();
- DVector<uint8_t>::Write w = dst.data.write();
+ PoolVector<uint8_t>::Write w = dst.data.write();
unsigned char*w_ptr=w.ptr();
@@ -693,8 +693,8 @@ void Image::resize( int p_width, int p_height, Interpolation p_interpolation ) {
}
- r = DVector<uint8_t>::Read();
- w = DVector<uint8_t>::Write();
+ r = PoolVector<uint8_t>::Read();
+ w = PoolVector<uint8_t>::Write();
if (mipmaps>0)
dst.generate_mipmaps();
@@ -725,8 +725,8 @@ void Image::crop( int p_width, int p_height ) {
Image dst( p_width, p_height,0, format );
{
- DVector<uint8_t>::Read r = data.read();
- DVector<uint8_t>::Write w = dst.data.write();
+ PoolVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Write w = dst.data.write();
for (int y=0;y<p_height;y++) {
@@ -767,7 +767,7 @@ void Image::flip_y() {
{
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
uint8_t up[16];
uint8_t down[16];
uint32_t pixel_size = get_format_pixel_size(format);
@@ -806,7 +806,7 @@ void Image::flip_x() {
{
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
uint8_t up[16];
uint8_t down[16];
uint32_t pixel_size = get_format_pixel_size(format);
@@ -925,12 +925,12 @@ void Image::expand_x2_hq2x() {
if (current!=FORMAT_RGBA8)
convert(FORMAT_RGBA8);
- DVector<uint8_t> dest;
+ PoolVector<uint8_t> dest;
dest.resize(width*2*height*2*4);
{
- DVector<uint8_t>::Read r = data.read();
- DVector<uint8_t>::Write w = dest.write();
+ PoolVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Write w = dest.write();
hq2x_resize((const uint32_t*)r.ptr(),width,height,(uint32_t*)w.ptr());
@@ -959,7 +959,7 @@ void Image::shrink_x2() {
if (mipmaps) {
//just use the lower mipmap as base and copy all
- DVector<uint8_t> new_img;
+ PoolVector<uint8_t> new_img;
int ofs = get_mipmap_offset(1);
@@ -968,8 +968,8 @@ void Image::shrink_x2() {
{
- DVector<uint8_t>::Write w=new_img.write();
- DVector<uint8_t>::Read r=data.read();
+ PoolVector<uint8_t>::Write w=new_img.write();
+ PoolVector<uint8_t>::Read r=data.read();
copymem(w.ptr(),&r[ofs],new_size);
}
@@ -980,15 +980,15 @@ void Image::shrink_x2() {
} else {
- DVector<uint8_t> new_img;
+ PoolVector<uint8_t> new_img;
ERR_FAIL_COND( !_can_modify(format) );
int ps = get_format_pixel_size(format);
new_img.resize((width/2)*(height/2)*ps);
{
- DVector<uint8_t>::Write w=new_img.write();
- DVector<uint8_t>::Read r=data.read();
+ PoolVector<uint8_t>::Write w=new_img.write();
+ PoolVector<uint8_t>::Read r=data.read();
switch(format) {
@@ -1027,7 +1027,7 @@ Error Image::generate_mipmaps(bool p_keep_existing) {
data.resize(size);
- DVector<uint8_t>::Write wp=data.write();
+ PoolVector<uint8_t>::Write wp=data.write();
if (nearest_power_of_2(width)==uint32_t(width) && nearest_power_of_2(height)==uint32_t(height)) {
//use fast code for powers of 2
@@ -1122,7 +1122,7 @@ bool Image::empty() const {
return (data.size()==0);
}
-DVector<uint8_t> Image::get_data() const {
+PoolVector<uint8_t> Image::get_data() const {
return data;
}
@@ -1134,7 +1134,7 @@ void Image::create(int p_width, int p_height, bool p_use_mipmaps,Format p_format
int size = _get_dst_image_size(p_width,p_height,p_format,mm,p_use_mipmaps?-1:0);
data.resize( size );
{
- DVector<uint8_t>::Write w= data.write();
+ PoolVector<uint8_t>::Write w= data.write();
zeromem(w.ptr(),size);
}
@@ -1146,7 +1146,7 @@ void Image::create(int p_width, int p_height, bool p_use_mipmaps,Format p_format
}
-void Image::create(int p_width, int p_height, bool p_use_mipmaps, Format p_format, const DVector<uint8_t>& p_data) {
+void Image::create(int p_width, int p_height, bool p_use_mipmaps, Format p_format, const PoolVector<uint8_t>& p_data) {
ERR_FAIL_INDEX(p_width-1,MAX_WIDTH);
ERR_FAIL_INDEX(p_height-1,MAX_HEIGHT);
@@ -1188,7 +1188,7 @@ void Image::create( const char ** p_xpm ) {
HashMap<String,Color> colormap;
int colormap_size;
uint32_t pixel_size;
- DVector<uint8_t>::Write w;
+ PoolVector<uint8_t>::Write w;
while (status!=DONE) {
@@ -1355,7 +1355,7 @@ bool Image::is_invisible() const {
int w,h;
_get_mipmap_offset_and_size(1,len,w,h);
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
const unsigned char *data_ptr=r.ptr();
bool detected=false;
@@ -1401,7 +1401,7 @@ Image::AlphaMode Image::detect_alpha() const {
int w,h;
_get_mipmap_offset_and_size(1,len,w,h);
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
const unsigned char *data_ptr=r.ptr();
bool bit=false;
@@ -1459,8 +1459,8 @@ bool Image::operator==(const Image& p_image) const {
if (data.size() == 0 && p_image.data.size() == 0)
return true;
- DVector<uint8_t>::Read r = data.read();
- DVector<uint8_t>::Read pr = p_image.data.read();
+ PoolVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read pr = p_image.data.read();
return r.ptr() == pr.ptr();
}
@@ -1502,11 +1502,11 @@ Error Image::_decompress_bc() {
int mm;
int size = _get_dst_image_size(wd,ht,FORMAT_RGBA8,mm);
- DVector<uint8_t> newdata;
+ PoolVector<uint8_t> newdata;
newdata.resize(size);
- DVector<uint8_t>::Write w = newdata.write();
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Write w = newdata.write();
+ PoolVector<uint8_t>::Read r = data.read();
int rofs=0;
int wofs=0;
@@ -1814,8 +1814,8 @@ Error Image::_decompress_bc() {
}
- w=DVector<uint8_t>::Write();
- r=DVector<uint8_t>::Read();
+ w=PoolVector<uint8_t>::Write();
+ r=PoolVector<uint8_t>::Read();
data=newdata;
format=FORMAT_RGBA8;
@@ -1927,7 +1927,7 @@ Image::Image(int p_width, int p_height,bool p_use_mipmaps, Format p_format) {
}
-Image::Image(int p_width, int p_height, bool p_mipmaps, Format p_format, const DVector<uint8_t>& p_data) {
+Image::Image(int p_width, int p_height, bool p_mipmaps, Format p_format, const PoolVector<uint8_t>& p_data) {
width=0;
height=0;
@@ -1950,7 +1950,7 @@ Rect2 Image::get_used_rect() const {
return Rect2();
//int data_size = len;
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
const unsigned char *rptr=r.ptr();
int ps = format==FORMAT_LA8?2:4;
@@ -2005,10 +2005,10 @@ void Image::blit_rect(const Image& p_src, const Rect2& p_src_rect,const Point2&
return;
Rect2i src_rect( p_src_rect.pos + ( local_src_rect.pos - p_dest), local_src_rect.size );
- DVector<uint8_t>::Write wp = data.write();
+ PoolVector<uint8_t>::Write wp = data.write();
uint8_t *dst_data_ptr=wp.ptr();
- DVector<uint8_t>::Read rp = p_src.data.read();
+ PoolVector<uint8_t>::Read rp = p_src.data.read();
const uint8_t *src_data_ptr=rp.ptr();
int pixel_size=get_format_pixel_size(format);
@@ -2049,10 +2049,10 @@ void (*Image::_image_decompress_bc)(Image *)=NULL;
void (*Image::_image_decompress_etc)(Image *)=NULL;
void (*Image::_image_decompress_etc2)(Image *)=NULL;
-DVector<uint8_t> (*Image::lossy_packer)(const Image& ,float )=NULL;
-Image (*Image::lossy_unpacker)(const DVector<uint8_t>& )=NULL;
-DVector<uint8_t> (*Image::lossless_packer)(const Image& )=NULL;
-Image (*Image::lossless_unpacker)(const DVector<uint8_t>& )=NULL;
+PoolVector<uint8_t> (*Image::lossy_packer)(const Image& ,float )=NULL;
+Image (*Image::lossy_unpacker)(const PoolVector<uint8_t>& )=NULL;
+PoolVector<uint8_t> (*Image::lossless_packer)(const Image& )=NULL;
+Image (*Image::lossless_unpacker)(const PoolVector<uint8_t>& )=NULL;
void Image::set_compress_bc_func(void (*p_compress_func)(Image *)) {
@@ -2067,7 +2067,7 @@ void Image::normalmap_to_xy() {
{
int len = data.size()/4;
- DVector<uint8_t>::Write wp = data.write();
+ PoolVector<uint8_t>::Write wp = data.write();
unsigned char *data_ptr=wp.ptr();
for(int i=0;i<len;i++) {
@@ -2094,7 +2094,7 @@ void Image::srgb_to_linear() {
if (format==FORMAT_RGBA8) {
int len = data.size()/4;
- DVector<uint8_t>::Write wp = data.write();
+ PoolVector<uint8_t>::Write wp = data.write();
unsigned char *data_ptr=wp.ptr();
for(int i=0;i<len;i++) {
@@ -2107,7 +2107,7 @@ void Image::srgb_to_linear() {
} else if (format==FORMAT_RGB8) {
int len = data.size()/3;
- DVector<uint8_t>::Write wp = data.write();
+ PoolVector<uint8_t>::Write wp = data.write();
unsigned char *data_ptr=wp.ptr();
for(int i=0;i<len;i++) {
@@ -2128,7 +2128,7 @@ void Image::premultiply_alpha() {
if (format!=FORMAT_RGBA8)
return; //not needed
- DVector<uint8_t>::Write wp = data.write();
+ PoolVector<uint8_t>::Write wp = data.write();
unsigned char *data_ptr=wp.ptr();
@@ -2152,11 +2152,11 @@ void Image::fix_alpha_edges() {
if (format!=FORMAT_RGBA8)
return; //not needed
- DVector<uint8_t> dcopy = data;
- DVector<uint8_t>::Read rp = data.read();
+ PoolVector<uint8_t> dcopy = data;
+ PoolVector<uint8_t>::Read rp = data.read();
const uint8_t *srcptr=rp.ptr();
- DVector<uint8_t>::Write wp = data.write();
+ PoolVector<uint8_t>::Write wp = data.write();
unsigned char *data_ptr=wp.ptr();
const int max_radius=4;
diff --git a/core/image.h b/core/image.h
index 2c585d74d9..620160147b 100644
--- a/core/image.h
+++ b/core/image.h
@@ -123,14 +123,14 @@ public:
Error _decompress_bc();
- static DVector<uint8_t> (*lossy_packer)(const Image& p_image,float p_quality);
- static Image (*lossy_unpacker)(const DVector<uint8_t>& p_buffer);
- static DVector<uint8_t> (*lossless_packer)(const Image& p_image);
- static Image (*lossless_unpacker)(const DVector<uint8_t>& p_buffer);
+ static PoolVector<uint8_t> (*lossy_packer)(const Image& p_image,float p_quality);
+ static Image (*lossy_unpacker)(const PoolVector<uint8_t>& p_buffer);
+ static PoolVector<uint8_t> (*lossless_packer)(const Image& p_image);
+ static Image (*lossless_unpacker)(const PoolVector<uint8_t>& p_buffer);
private:
Format format;
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
int width,height;
bool mipmaps;
@@ -206,7 +206,7 @@ public:
* Create a new image of a given size and format. Current image will be lost
*/
void create(int p_width, int p_height, bool p_use_mipmaps, Format p_format);
- void create(int p_width, int p_height, bool p_use_mipmaps, Format p_format, const DVector<uint8_t>& p_data);
+ void create(int p_width, int p_height, bool p_use_mipmaps, Format p_format, const PoolVector<uint8_t>& p_data);
void create( const char ** p_xpm );
/**
@@ -214,7 +214,7 @@ public:
*/
bool empty() const;
- DVector<uint8_t> get_data() const;
+ PoolVector<uint8_t> get_data() const;
Error load(const String& p_path);
Error save_png(const String& p_path);
@@ -230,7 +230,7 @@ public:
/**
* import an image of a specific size and format from a pointer
*/
- Image(int p_width, int p_height, bool p_mipmaps, Format p_format, const DVector<uint8_t>& p_data);
+ Image(int p_width, int p_height, bool p_mipmaps, Format p_format, const PoolVector<uint8_t>& p_data);
enum AlphaMode {
ALPHA_NONE,
diff --git a/core/input_map.cpp b/core/input_map.cpp
index 27cd0f5596..0379131dd3 100644
--- a/core/input_map.cpp
+++ b/core/input_map.cpp
@@ -125,7 +125,7 @@ List<InputEvent>::Element *InputMap::_find_event(List<InputEvent> &p_list,const
same=(e.key.scancode==p_event.key.scancode && (p_mod_ignore || e.key.mod == p_event.key.mod));
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
same=(e.joy_button.button_index==p_event.joy_button.button_index);
@@ -135,7 +135,7 @@ List<InputEvent>::Element *InputMap::_find_event(List<InputEvent> &p_list,const
same=(e.mouse_button.button_index==p_event.mouse_button.button_index);
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
same=(e.joy_motion.axis==p_event.joy_motion.axis && (e.joy_motion.axis_value < 0) == (p_event.joy_motion.axis_value < 0));
diff --git a/core/io/file_access_buffered.cpp b/core/io/file_access_buffered.cpp
index 347edc7407..71518de38b 100644
--- a/core/io/file_access_buffered.cpp
+++ b/core/io/file_access_buffered.cpp
@@ -117,7 +117,7 @@ int FileAccessBuffered::get_buffer(uint8_t *p_dest,int p_elements) const {
int size = (cache.buffer.size() - (file.offset - cache.offset));
size = size - (size % 4);
- //DVector<uint8_t>::Read read = cache.buffer.read();
+ //PoolVector<uint8_t>::Read read = cache.buffer.read();
//memcpy(p_dest, read.ptr() + (file.offset - cache.offset), size);
memcpy(p_dest, cache.buffer.ptr() + (file.offset - cache.offset), size);
p_dest += size;
@@ -152,7 +152,7 @@ int FileAccessBuffered::get_buffer(uint8_t *p_dest,int p_elements) const {
};
int r = MIN(left, to_read);
- //DVector<uint8_t>::Read read = cache.buffer.read();
+ //PoolVector<uint8_t>::Read read = cache.buffer.read();
//memcpy(p_dest+total_read, &read.ptr()[file.offset - cache.offset], r);
memcpy(p_dest+total_read, cache.buffer.ptr() + (file.offset - cache.offset), r);
diff --git a/core/io/file_access_buffered_fa.h b/core/io/file_access_buffered_fa.h
index 8a15584b13..884d40a266 100644
--- a/core/io/file_access_buffered_fa.h
+++ b/core/io/file_access_buffered_fa.h
@@ -53,7 +53,7 @@ class FileAccessBufferedFA : public FileAccessBuffered {
cache.buffer.resize(p_size);
// on dvector
- //DVector<uint8_t>::Write write = cache.buffer.write();
+ //PoolVector<uint8_t>::Write write = cache.buffer.write();
//f.get_buffer(write.ptr(), p_size);
// on vector
diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp
index 4051ae302f..b556d46105 100644
--- a/core/io/http_client.cpp
+++ b/core/io/http_client.cpp
@@ -87,7 +87,7 @@ Ref<StreamPeer> HTTPClient::get_connection() const {
return connection;
}
-Error HTTPClient::request_raw( Method p_method, const String& p_url, const Vector<String>& p_headers,const DVector<uint8_t>& p_body) {
+Error HTTPClient::request_raw( Method p_method, const String& p_url, const Vector<String>& p_headers,const PoolVector<uint8_t>& p_body) {
ERR_FAIL_INDEX_V(p_method,METHOD_MAX,ERR_INVALID_PARAMETER);
ERR_FAIL_COND_V(status!=STATUS_CONNECTED,ERR_INVALID_PARAMETER);
@@ -120,7 +120,7 @@ Error HTTPClient::request_raw( Method p_method, const String& p_url, const Vecto
request+="\r\n";
CharString cs=request.utf8();
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
//Maybe this goes faster somehow?
for(int i=0;i<cs.length();i++) {
@@ -128,7 +128,7 @@ Error HTTPClient::request_raw( Method p_method, const String& p_url, const Vecto
}
data.append_array( p_body );
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
Error err = connection->put_data(&r[0], data.size());
if (err) {
diff --git a/core/io/http_client.h b/core/io/http_client.h
index 2e78882303..231475775f 100644
--- a/core/io/http_client.h
+++ b/core/io/http_client.h
@@ -172,7 +172,7 @@ public:
void set_connection(const Ref<StreamPeer>& p_connection);
Ref<StreamPeer> get_connection() const;
- Error request_raw( Method p_method, const String& p_url, const Vector<String>& p_headers,const DVector<uint8_t>& p_body);
+ Error request_raw( Method p_method, const String& p_url, const Vector<String>& p_headers,const PoolVector<uint8_t>& p_body);
Error request( Method p_method, const String& p_url, const Vector<String>& p_headers,const String& p_body=String());
Error send_body_text(const String& p_body);
Error send_body_data(const ByteArray& p_body);
diff --git a/core/io/json.cpp b/core/io/json.cpp
index f42155bc94..3280f94750 100644
--- a/core/io/json.cpp
+++ b/core/io/json.cpp
@@ -92,9 +92,9 @@ String JSON::_print_var(const Variant& p_var) {
}
-String JSON::print(const Dictionary& p_dict) {
+String JSON::print(const Variant& p_var) {
- return _print_var(p_dict);
+ return _print_var(p_var);
}
@@ -450,27 +450,24 @@ Error JSON::_parse_object(Dictionary &object,const CharType *p_str,int &index, i
}
-Error JSON::parse(const String& p_json,Dictionary& r_ret,String &r_err_str,int &r_err_line) {
+Error JSON::parse(const String& p_json, Variant &r_ret, String &r_err_str, int &r_err_line) {
const CharType *str = p_json.ptr();
int idx = 0;
int len = p_json.length();
Token token;
- int line=0;
+ r_err_line=0;
String aux_key;
- Error err = _get_token(str,idx,len,token,line,r_err_str);
+ Error err = _get_token(str,idx,len,token,r_err_line,r_err_str);
if (err)
return err;
- if (token.type!=TK_CURLY_BRACKET_OPEN) {
+ err = _parse_value(r_ret,token,str,idx,len,r_err_line,r_err_str);
- r_err_str="Expected '{'";
- return ERR_PARSE_ERROR;
- }
-
- return _parse_object(r_ret,str,idx,len,r_err_line,r_err_str);
+ return err;
+
}
diff --git a/core/io/json.h b/core/io/json.h
index 52fcac145d..97457d223e 100644
--- a/core/io/json.h
+++ b/core/io/json.h
@@ -74,8 +74,8 @@ class JSON {
static Error _parse_object(Dictionary &object,const CharType *p_str,int &index, int p_len,int &line,String &r_err_str);
public:
- static String print(const Dictionary& p_dict);
- static Error parse(const String& p_json,Dictionary& r_ret,String &r_err_str,int &r_err_line);
+ static String print(const Variant &p_var);
+ static Error parse(const String& p_json,Variant& r_ret,String &r_err_str,int &r_err_line);
};
#endif // JSON_H
diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp
index bc6cc0bb83..0765fc86c7 100644
--- a/core/io/marshalls.cpp
+++ b/core/io/marshalls.cpp
@@ -31,6 +31,10 @@
#include "os/keyboard.h"
#include <stdio.h>
+
+#define ENCODE_MASK 0xFF
+#define ENCODE_FLAG_64 1<<16
+
Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *r_len) {
const uint8_t * buf=p_buffer;
@@ -44,14 +48,14 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
uint32_t type=decode_uint32(buf);
- ERR_FAIL_COND_V(type>=Variant::VARIANT_MAX,ERR_INVALID_DATA);
+ ERR_FAIL_COND_V((type&ENCODE_MASK)>=Variant::VARIANT_MAX,ERR_INVALID_DATA);
buf+=4;
len-=4;
if (r_len)
*r_len=4;
- switch(type) {
+ switch(type&ENCODE_MASK) {
case Variant::NIL: {
@@ -68,19 +72,35 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
case Variant::INT: {
ERR_FAIL_COND_V(len<4,ERR_INVALID_DATA);
- int val = decode_uint32(buf);
- r_variant=val;
- if (r_len)
- (*r_len)+=4;
+ if (type&ENCODE_FLAG_64) {
+ int64_t val = decode_uint64(buf);
+ r_variant=val;
+ if (r_len)
+ (*r_len)+=8;
+
+ } else {
+ int32_t val = decode_uint32(buf);
+ r_variant=val;
+ if (r_len)
+ (*r_len)+=4;
+ }
} break;
case Variant::REAL: {
ERR_FAIL_COND_V(len<(int)4,ERR_INVALID_DATA);
- float val = decode_float(buf);
- r_variant=val;
- if (r_len)
- (*r_len)+=4;
+
+ if (type&ENCODE_FLAG_64) {
+ double val = decode_double(buf);
+ r_variant=val;
+ if (r_len)
+ (*r_len)+=8;
+ } else {
+ float val = decode_float(buf);
+ r_variant=val;
+ if (r_len)
+ (*r_len)+=4;
+ }
} break;
case Variant::STRING: {
@@ -272,11 +292,11 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
if (datalen>0) {
len-=5*4;
ERR_FAIL_COND_V( len < datalen, ERR_INVALID_DATA );
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(datalen);
- DVector<uint8_t>::Write wr = data.write();
+ PoolVector<uint8_t>::Write wr = data.write();
copymem(&wr[0],&buf[20],datalen);
- wr = DVector<uint8_t>::Write();
+ wr = PoolVector<uint8_t>::Write();
@@ -423,7 +443,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
(*r_len)+=4;
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
ie.joy_button.button_index=decode_uint32(&buf[12]);
if (r_len)
@@ -435,7 +455,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
if (r_len)
(*r_len)+=4;
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
ie.joy_motion.axis=decode_uint32(&buf[12]);
ie.joy_motion.axis_value=decode_float(&buf[16]);
@@ -537,17 +557,17 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
ERR_FAIL_COND_V((int)count>len,ERR_INVALID_DATA);
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
if (count) {
data.resize(count);
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
for(int i=0;i<count;i++) {
w[i]=buf[i];
}
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
}
r_variant=data;
@@ -569,18 +589,18 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
len-=4;
ERR_FAIL_COND_V((int)count*4>len,ERR_INVALID_DATA);
- DVector<int> data;
+ PoolVector<int> data;
if (count) {
//const int*rbuf=(const int*)buf;
data.resize(count);
- DVector<int>::Write w = data.write();
+ PoolVector<int>::Write w = data.write();
for(int i=0;i<count;i++) {
w[i]=decode_uint32(&buf[i*4]);
}
- w = DVector<int>::Write();
+ w = PoolVector<int>::Write();
}
r_variant=Variant(data);
if (r_len) {
@@ -596,18 +616,18 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
len-=4;
ERR_FAIL_COND_V((int)count*4>len,ERR_INVALID_DATA);
- DVector<float> data;
+ PoolVector<float> data;
if (count) {
//const float*rbuf=(const float*)buf;
data.resize(count);
- DVector<float>::Write w = data.write();
+ PoolVector<float>::Write w = data.write();
for(int i=0;i<count;i++) {
w[i]=decode_float(&buf[i*4]);
}
- w = DVector<float>::Write();
+ w = PoolVector<float>::Write();
}
r_variant=data;
@@ -623,7 +643,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
uint32_t count = decode_uint32(buf);
ERR_FAIL_COND_V(count<0,ERR_INVALID_DATA);
- DVector<String> strings;
+ PoolVector<String> strings;
buf+=4;
len-=4;
@@ -676,7 +696,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
len-=4;
ERR_FAIL_COND_V((int)count*4*2>len,ERR_INVALID_DATA);
- DVector<Vector2> varray;
+ PoolVector<Vector2> varray;
if (r_len) {
(*r_len)+=4;
@@ -684,7 +704,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
if (count) {
varray.resize(count);
- DVector<Vector2>::Write w = varray.write();
+ PoolVector<Vector2>::Write w = varray.write();
for(int i=0;i<(int)count;i++) {
@@ -714,7 +734,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
len-=4;
ERR_FAIL_COND_V((int)count*4*3>len,ERR_INVALID_DATA);
- DVector<Vector3> varray;
+ PoolVector<Vector3> varray;
if (r_len) {
(*r_len)+=4;
@@ -722,7 +742,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
if (count) {
varray.resize(count);
- DVector<Vector3>::Write w = varray.write();
+ PoolVector<Vector3>::Write w = varray.write();
for(int i=0;i<(int)count;i++) {
@@ -753,7 +773,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
len-=4;
ERR_FAIL_COND_V((int)count*4*4>len,ERR_INVALID_DATA);
- DVector<Color> carray;
+ PoolVector<Color> carray;
if (r_len) {
(*r_len)+=4;
@@ -761,7 +781,7 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
if (count) {
carray.resize(count);
- DVector<Color>::Write w = carray.write();
+ PoolVector<Color>::Write w = carray.write();
for(int i=0;i<(int)count;i++) {
@@ -796,8 +816,28 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
r_len=0;
+ uint32_t flags=0;
+
+ switch(p_variant.get_type()) {
+
+ case Variant::INT: {
+ int64_t val = p_variant;
+ if (val>0x7FFFFFFF || val < -0x80000000) {
+ flags|=ENCODE_FLAG_64;
+ }
+ } break;
+ case Variant::REAL: {
+
+ double d = p_variant;
+ float f = d;
+ if (double(f)!=d) {
+ flags|=ENCODE_FLAG_64; //always encode real as double
+ }
+ } break;
+ }
+
if (buf) {
- encode_uint32(p_variant.get_type(),buf);
+ encode_uint32(p_variant.get_type()|flags,buf);
buf+=4;
}
r_len+=4;
@@ -819,20 +859,42 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
} break;
case Variant::INT: {
- if (buf) {
- encode_uint32(p_variant.operator int(),buf);
- }
+ int64_t val = p_variant;
+ if (val>0x7FFFFFFF || val < -0x80000000) {
+ //64 bits
+ if (buf) {
+ encode_uint64(val,buf);
+ }
- r_len+=4;
+ r_len+=8;
+ } else {
+ if (buf) {
+ encode_uint32(int32_t(val),buf);
+ }
+ r_len+=4;
+ }
} break;
case Variant::REAL: {
- if (buf) {
- encode_float(p_variant.operator float(),buf);
+ double d = p_variant;
+ float f = d;
+ if (double(f)!=d) {
+ if (buf) {
+ encode_double(p_variant.operator double(),buf);
+ }
+
+ r_len+=8;
+
+ } else {
+
+ if (buf) {
+ encode_double(p_variant.operator float(),buf);
+ }
+
+ r_len+=4;
}
- r_len+=4;
} break;
case Variant::NODE_PATH: {
@@ -1055,7 +1117,7 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
case Variant::IMAGE: {
Image image = p_variant;
- DVector<uint8_t> data=image.get_data();
+ PoolVector<uint8_t> data=image.get_data();
if (buf) {
@@ -1065,7 +1127,7 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
encode_uint32(image.get_height(),&buf[12]);
int ds=data.size();
encode_uint32(ds,&buf[16]);
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
copymem(&buf[20],&r[0],ds);
}
@@ -1130,7 +1192,7 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
}
llen+=4;
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
if (buf) {
@@ -1146,7 +1208,7 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
}
llen+=4;
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
if (buf) {
@@ -1234,14 +1296,14 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
// arrays
case Variant::RAW_ARRAY: {
- DVector<uint8_t> data = p_variant;
+ PoolVector<uint8_t> data = p_variant;
int datalen=data.size();
int datasize=sizeof(uint8_t);
if (buf) {
encode_uint32(datalen,buf);
buf+=4;
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
copymem(buf,&r[0],datalen*datasize);
}
@@ -1253,14 +1315,14 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
} break;
case Variant::INT_ARRAY: {
- DVector<int> data = p_variant;
+ PoolVector<int> data = p_variant;
int datalen=data.size();
int datasize=sizeof(int32_t);
if (buf) {
encode_uint32(datalen,buf);
buf+=4;
- DVector<int>::Read r = data.read();
+ PoolVector<int>::Read r = data.read();
for(int i=0;i<datalen;i++)
encode_uint32(r[i],&buf[i*datasize]);
@@ -1271,14 +1333,14 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
} break;
case Variant::REAL_ARRAY: {
- DVector<real_t> data = p_variant;
+ PoolVector<real_t> data = p_variant;
int datalen=data.size();
int datasize=sizeof(real_t);
if (buf) {
encode_uint32(datalen,buf);
buf+=4;
- DVector<real_t>::Read r = data.read();
+ PoolVector<real_t>::Read r = data.read();
for(int i=0;i<datalen;i++)
encode_float(r[i],&buf[i*datasize]);
@@ -1290,7 +1352,7 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
case Variant::STRING_ARRAY: {
- DVector<String> data = p_variant;
+ PoolVector<String> data = p_variant;
int len=data.size();
if (buf) {
@@ -1323,7 +1385,7 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
} break;
case Variant::VECTOR2_ARRAY: {
- DVector<Vector2> data = p_variant;
+ PoolVector<Vector2> data = p_variant;
int len=data.size();
if (buf) {
@@ -1351,7 +1413,7 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
} break;
case Variant::VECTOR3_ARRAY: {
- DVector<Vector3> data = p_variant;
+ PoolVector<Vector3> data = p_variant;
int len=data.size();
if (buf) {
@@ -1380,7 +1442,7 @@ Error encode_variant(const Variant& p_variant, uint8_t *r_buffer, int &r_len) {
} break;
case Variant::COLOR_ARRAY: {
- DVector<Color> data = p_variant;
+ PoolVector<Color> data = p_variant;
int len=data.size();
if (buf) {
diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp
index 720e912e71..5ff09f9fb0 100644
--- a/core/io/packet_peer.cpp
+++ b/core/io/packet_peer.cpp
@@ -39,7 +39,7 @@ PacketPeer::PacketPeer() {
last_get_error=OK;
}
-Error PacketPeer::get_packet_buffer(DVector<uint8_t> &r_buffer) const {
+Error PacketPeer::get_packet_buffer(PoolVector<uint8_t> &r_buffer) const {
const uint8_t *buffer;
int buffer_size;
@@ -51,7 +51,7 @@ Error PacketPeer::get_packet_buffer(DVector<uint8_t> &r_buffer) const {
if (buffer_size==0)
return OK;
- DVector<uint8_t>::Write w = r_buffer.write();
+ PoolVector<uint8_t>::Write w = r_buffer.write();
for(int i=0;i<buffer_size;i++)
w[i]=buffer[i];
@@ -59,13 +59,13 @@ Error PacketPeer::get_packet_buffer(DVector<uint8_t> &r_buffer) const {
}
-Error PacketPeer::put_packet_buffer(const DVector<uint8_t> &p_buffer) {
+Error PacketPeer::put_packet_buffer(const PoolVector<uint8_t> &p_buffer) {
int len = p_buffer.size();
if (len==0)
return OK;
- DVector<uint8_t>::Read r = p_buffer.read();
+ PoolVector<uint8_t>::Read r = p_buffer.read();
return put_packet(&r[0],len);
}
@@ -108,12 +108,12 @@ Variant PacketPeer::_bnd_get_var() const {
return var;
};
-Error PacketPeer::_put_packet(const DVector<uint8_t> &p_buffer) {
+Error PacketPeer::_put_packet(const PoolVector<uint8_t> &p_buffer) {
return put_packet_buffer(p_buffer);
}
-DVector<uint8_t> PacketPeer::_get_packet() const {
+PoolVector<uint8_t> PacketPeer::_get_packet() const {
- DVector<uint8_t> raw;
+ PoolVector<uint8_t> raw;
last_get_error=get_packet_buffer(raw);
return raw;
}
diff --git a/core/io/packet_peer.h b/core/io/packet_peer.h
index c67cfb943e..bacd5214f1 100644
--- a/core/io/packet_peer.h
+++ b/core/io/packet_peer.h
@@ -42,8 +42,8 @@ class PacketPeer : public Reference {
static void _bind_methods();
- Error _put_packet(const DVector<uint8_t> &p_buffer);
- DVector<uint8_t> _get_packet() const;
+ Error _put_packet(const PoolVector<uint8_t> &p_buffer);
+ PoolVector<uint8_t> _get_packet() const;
Error _get_packet_error() const;
@@ -59,8 +59,8 @@ public:
/* helpers / binders */
- virtual Error get_packet_buffer(DVector<uint8_t> &r_buffer) const;
- virtual Error put_packet_buffer(const DVector<uint8_t> &p_buffer);
+ virtual Error get_packet_buffer(PoolVector<uint8_t> &r_buffer) const;
+ virtual Error put_packet_buffer(const PoolVector<uint8_t> &p_buffer);
virtual Error get_var(Variant &r_variant) const;
virtual Error put_var(const Variant& p_packet);
diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp
index 512031b128..16da74fdf1 100644
--- a/core/io/resource_format_binary.cpp
+++ b/core/io/resource_format_binary.cpp
@@ -68,6 +68,8 @@ enum {
VARIANT_VECTOR3_ARRAY=35,
VARIANT_COLOR_ARRAY=36,
VARIANT_VECTOR2_ARRAY=37,
+ VARIANT_INT64=40,
+ VARIANT_DOUBLE=41,
IMAGE_ENCODING_EMPTY=0,
IMAGE_ENCODING_RAW=1,
@@ -116,10 +118,18 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
r_v=int(f->get_32());
} break;
+ case VARIANT_INT64: {
+
+ r_v=int64_t(f->get_64());
+ } break;
case VARIANT_REAL: {
r_v=f->get_real();
} break;
+ case VARIANT_DOUBLE: {
+
+ r_v=f->get_double();
+ } break;
case VARIANT_STRING: {
r_v=get_unicode_string();
@@ -264,22 +274,22 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
uint32_t datalen = f->get_32();
- DVector<uint8_t> imgdata;
+ PoolVector<uint8_t> imgdata;
imgdata.resize(datalen);
- DVector<uint8_t>::Write w = imgdata.write();
+ PoolVector<uint8_t>::Write w = imgdata.write();
f->get_buffer(w.ptr(),datalen);
_advance_padding(datalen);
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
r_v=Image(width,height,mipmaps,fmt,imgdata);
} else {
//compressed
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(f->get_32());
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
f->get_buffer(w.ptr(),data.size());
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
Image img;
@@ -448,12 +458,12 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
uint32_t len = f->get_32();
- DVector<uint8_t> array;
+ PoolVector<uint8_t> array;
array.resize(len);
- DVector<uint8_t>::Write w = array.write();
+ PoolVector<uint8_t>::Write w = array.write();
f->get_buffer(w.ptr(),len);
_advance_padding(len);
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
r_v=array;
} break;
@@ -461,9 +471,9 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
uint32_t len = f->get_32();
- DVector<int> array;
+ PoolVector<int> array;
array.resize(len);
- DVector<int>::Write w = array.write();
+ PoolVector<int>::Write w = array.write();
f->get_buffer((uint8_t*)w.ptr(),len*4);
#ifdef BIG_ENDIAN_ENABLED
{
@@ -475,16 +485,16 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
}
#endif
- w=DVector<int>::Write();
+ w=PoolVector<int>::Write();
r_v=array;
} break;
case VARIANT_REAL_ARRAY: {
uint32_t len = f->get_32();
- DVector<real_t> array;
+ PoolVector<real_t> array;
array.resize(len);
- DVector<real_t>::Write w = array.write();
+ PoolVector<real_t>::Write w = array.write();
f->get_buffer((uint8_t*)w.ptr(),len*sizeof(real_t));
#ifdef BIG_ENDIAN_ENABLED
{
@@ -497,18 +507,18 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
#endif
- w=DVector<real_t>::Write();
+ w=PoolVector<real_t>::Write();
r_v=array;
} break;
case VARIANT_STRING_ARRAY: {
uint32_t len = f->get_32();
- DVector<String> array;
+ PoolVector<String> array;
array.resize(len);
- DVector<String>::Write w = array.write();
+ PoolVector<String>::Write w = array.write();
for(uint32_t i=0;i<len;i++)
w[i]=get_unicode_string();
- w=DVector<String>::Write();
+ w=PoolVector<String>::Write();
r_v=array;
@@ -517,9 +527,9 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
uint32_t len = f->get_32();
- DVector<Vector2> array;
+ PoolVector<Vector2> array;
array.resize(len);
- DVector<Vector2>::Write w = array.write();
+ PoolVector<Vector2>::Write w = array.write();
if (sizeof(Vector2)==8) {
f->get_buffer((uint8_t*)w.ptr(),len*sizeof(real_t)*2);
#ifdef BIG_ENDIAN_ENABLED
@@ -537,7 +547,7 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
ERR_EXPLAIN("Vector2 size is NOT 8!");
ERR_FAIL_V(ERR_UNAVAILABLE);
}
- w=DVector<Vector2>::Write();
+ w=PoolVector<Vector2>::Write();
r_v=array;
} break;
@@ -545,9 +555,9 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
uint32_t len = f->get_32();
- DVector<Vector3> array;
+ PoolVector<Vector3> array;
array.resize(len);
- DVector<Vector3>::Write w = array.write();
+ PoolVector<Vector3>::Write w = array.write();
if (sizeof(Vector3)==12) {
f->get_buffer((uint8_t*)w.ptr(),len*sizeof(real_t)*3);
#ifdef BIG_ENDIAN_ENABLED
@@ -565,7 +575,7 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
ERR_EXPLAIN("Vector3 size is NOT 12!");
ERR_FAIL_V(ERR_UNAVAILABLE);
}
- w=DVector<Vector3>::Write();
+ w=PoolVector<Vector3>::Write();
r_v=array;
} break;
@@ -573,9 +583,9 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
uint32_t len = f->get_32();
- DVector<Color> array;
+ PoolVector<Color> array;
array.resize(len);
- DVector<Color>::Write w = array.write();
+ PoolVector<Color>::Write w = array.write();
if (sizeof(Color)==16) {
f->get_buffer((uint8_t*)w.ptr(),len*sizeof(real_t)*4);
#ifdef BIG_ENDIAN_ENABLED
@@ -593,7 +603,7 @@ Error ResourceInteractiveLoaderBinary::parse_variant(Variant& r_v) {
ERR_EXPLAIN("Color size is NOT 16!");
ERR_FAIL_V(ERR_UNAVAILABLE);
}
- w=DVector<Color>::Write();
+ w=PoolVector<Color>::Write();
r_v=array;
} break;
@@ -1416,15 +1426,33 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
} break;
case Variant::INT: {
- f->store_32(VARIANT_INT);
- int val=p_property;
- f->store_32(val);
+ int64_t val = p_property;
+ if (val>0x7FFFFFFF || val < -0x80000000) {
+ f->store_32(VARIANT_INT64);
+ f->store_64(val);
+
+ } else {
+ f->store_32(VARIANT_INT);
+ int val=p_property;
+ f->store_32(int32_t(val));
+
+ }
+
} break;
case Variant::REAL: {
- f->store_32(VARIANT_REAL);
- real_t val=p_property;
- f->store_real(val);
+
+ double d = p_property;
+ float fl = d;
+ if (double(fl)!=d) {
+ f->store_32(VARIANT_DOUBLE);
+ f->store_double(d);
+ } else {
+
+ f->store_32(VARIANT_REAL);
+ f->store_real(fl);
+
+ }
} break;
case Variant::STRING: {
@@ -1587,12 +1615,12 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
int dlen = val.get_data().size();
f->store_32(dlen);
- DVector<uint8_t>::Read r = val.get_data().read();
+ PoolVector<uint8_t>::Read r = val.get_data().read();
f->store_buffer(r.ptr(),dlen);
_pad_buffer(dlen);
} else {
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
if (encoding==IMAGE_ENCODING_LOSSY) {
data=Image::lossy_packer(val,quality);
@@ -1604,7 +1632,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
int ds=data.size();
f->store_32(ds);
if (ds>0) {
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
f->store_buffer(r.ptr(),ds);
_pad_buffer(ds);
@@ -1703,10 +1731,10 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
case Variant::RAW_ARRAY: {
f->store_32(VARIANT_RAW_ARRAY);
- DVector<uint8_t> arr = p_property;
+ PoolVector<uint8_t> arr = p_property;
int len=arr.size();
f->store_32(len);
- DVector<uint8_t>::Read r = arr.read();
+ PoolVector<uint8_t>::Read r = arr.read();
f->store_buffer(r.ptr(),len);
_pad_buffer(len);
@@ -1714,10 +1742,10 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
case Variant::INT_ARRAY: {
f->store_32(VARIANT_INT_ARRAY);
- DVector<int> arr = p_property;
+ PoolVector<int> arr = p_property;
int len=arr.size();
f->store_32(len);
- DVector<int>::Read r = arr.read();
+ PoolVector<int>::Read r = arr.read();
for(int i=0;i<len;i++)
f->store_32(r[i]);
@@ -1725,10 +1753,10 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
case Variant::REAL_ARRAY: {
f->store_32(VARIANT_REAL_ARRAY);
- DVector<real_t> arr = p_property;
+ PoolVector<real_t> arr = p_property;
int len=arr.size();
f->store_32(len);
- DVector<real_t>::Read r = arr.read();
+ PoolVector<real_t>::Read r = arr.read();
for(int i=0;i<len;i++) {
f->store_real(r[i]);
}
@@ -1737,10 +1765,10 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
case Variant::STRING_ARRAY: {
f->store_32(VARIANT_STRING_ARRAY);
- DVector<String> arr = p_property;
+ PoolVector<String> arr = p_property;
int len=arr.size();
f->store_32(len);
- DVector<String>::Read r = arr.read();
+ PoolVector<String>::Read r = arr.read();
for(int i=0;i<len;i++) {
save_unicode_string(r[i]);
}
@@ -1749,10 +1777,10 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
case Variant::VECTOR3_ARRAY: {
f->store_32(VARIANT_VECTOR3_ARRAY);
- DVector<Vector3> arr = p_property;
+ PoolVector<Vector3> arr = p_property;
int len=arr.size();
f->store_32(len);
- DVector<Vector3>::Read r = arr.read();
+ PoolVector<Vector3>::Read r = arr.read();
for(int i=0;i<len;i++) {
f->store_real(r[i].x);
f->store_real(r[i].y);
@@ -1763,10 +1791,10 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
case Variant::VECTOR2_ARRAY: {
f->store_32(VARIANT_VECTOR2_ARRAY);
- DVector<Vector2> arr = p_property;
+ PoolVector<Vector2> arr = p_property;
int len=arr.size();
f->store_32(len);
- DVector<Vector2>::Read r = arr.read();
+ PoolVector<Vector2>::Read r = arr.read();
for(int i=0;i<len;i++) {
f->store_real(r[i].x);
f->store_real(r[i].y);
@@ -1776,10 +1804,10 @@ void ResourceFormatSaverBinaryInstance::write_variant(const Variant& p_property,
case Variant::COLOR_ARRAY: {
f->store_32(VARIANT_COLOR_ARRAY);
- DVector<Color> arr = p_property;
+ PoolVector<Color> arr = p_property;
int len=arr.size();
f->store_32(len);
- DVector<Color>::Read r = arr.read();
+ PoolVector<Color>::Read r = arr.read();
for(int i=0;i<len;i++) {
f->store_real(r[i].r);
f->store_real(r[i].g);
diff --git a/core/io/resource_format_xml.cpp b/core/io/resource_format_xml.cpp
deleted file mode 100644
index d4808d4741..0000000000
--- a/core/io/resource_format_xml.cpp
+++ /dev/null
@@ -1,2882 +0,0 @@
-/*************************************************************************/
-/* resource_format_xml.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 "resource_format_xml.h"
-#include "globals.h"
-#include "version.h"
-#include "os/dir_access.h"
-
-
-ResourceInteractiveLoaderXML::Tag* ResourceInteractiveLoaderXML::parse_tag(bool *r_exit, bool p_printerr, List<String> *r_order) {
-
-
- while(get_char()!='<' && !f->eof_reached()) {}
- if (f->eof_reached()) {
- return NULL;
- }
-
- Tag tag;
- bool exit=false;
- if (r_exit)
- *r_exit=false;
-
- bool complete=false;
- while(!f->eof_reached()) {
-
- CharType c=get_char();
- if (c<33 && tag.name.length() && !exit) {
- break;
- } else if (c=='>') {
- complete=true;
- break;
- } else if (c=='/') {
- exit=true;
- } else {
- tag.name+=c;
- }
- }
-
- if (f->eof_reached()) {
-
- return NULL;
- }
-
- if (exit) {
- if (!tag_stack.size()) {
- if (!p_printerr)
- return NULL;
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Unmatched exit tag </"+tag.name+">");
- ERR_FAIL_COND_V(!tag_stack.size(),NULL);
- }
-
- if (tag_stack.back()->get().name!=tag.name) {
- if (!p_printerr)
- return NULL;
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Mismatched exit tag. Got </"+tag.name+">, expected </"+tag_stack.back()->get().name+">");
- ERR_FAIL_COND_V(tag_stack.back()->get().name!=tag.name,NULL);
- }
-
- if (!complete) {
- while(get_char()!='>' && !f->eof_reached()) {}
- if (f->eof_reached())
- return NULL;
- }
-
- if (r_exit)
- *r_exit=true;
-
- tag_stack.pop_back();
- return NULL;
-
- }
-
- if (!complete) {
- String name;
- CharString r_value;
- bool reading_value=false;
-
- while(!f->eof_reached()) {
-
- CharType c=get_char();
- if (c=='>') {
- if (r_value.size()) {
-
- r_value.push_back(0);
- String str;
- str.parse_utf8(r_value.get_data());
- tag.args[name]=str;
- if (r_order)
- r_order->push_back(name);
- }
- break;
-
- } else if ( ((!reading_value && (c<33)) || c=='=' || c=='"' || c=='\'') && tag.name.length()) {
-
- if (!reading_value && name.length()) {
-
- reading_value=true;
- } else if (reading_value && r_value.size()) {
-
- r_value.push_back(0);
- String str;
- str.parse_utf8(r_value.get_data());
- tag.args[name]=str;
- if (r_order)
- r_order->push_back(name);
- name="";
- r_value.clear();
- reading_value=false;
- }
-
- } else if (reading_value) {
-
- r_value.push_back(c);
- } else {
-
- name+=c;
- }
- }
-
- if (f->eof_reached())
- return NULL;
- }
-
- tag_stack.push_back(tag);
-
- return &tag_stack.back()->get();
-}
-
-
-Error ResourceInteractiveLoaderXML::close_tag(const String& p_name) {
-
- int level=0;
- bool inside_tag=false;
-
- while(true) {
-
- if (f->eof_reached()) {
-
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": EOF found while attempting to find </"+p_name+">");
- ERR_FAIL_COND_V( f->eof_reached(), ERR_FILE_CORRUPT );
- }
-
- uint8_t c = get_char();
-
- if (c == '<') {
-
- if (inside_tag) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Malformed XML. Already inside Tag.");
- ERR_FAIL_COND_V(inside_tag,ERR_FILE_CORRUPT);
- }
- inside_tag=true;
- c = get_char();
- if (c == '/') {
-
- --level;
- } else {
-
- ++level;
- };
- } else if (c == '>') {
-
- if (!inside_tag) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Malformed XML. Already outside Tag");
- ERR_FAIL_COND_V(!inside_tag,ERR_FILE_CORRUPT);
- }
- inside_tag=false;
- if (level == -1) {
- tag_stack.pop_back();
- return OK;
- };
- };
- }
-
- return OK;
-}
-
-void ResourceInteractiveLoaderXML::unquote(String& p_str) {
-
-
- p_str=p_str.strip_edges().replace("\"","").xml_unescape();
-
- /*p_str=p_str.strip_edges();
- p_str=p_str.replace("\"","");
- p_str=p_str.replace("&gt;","<");
- p_str=p_str.replace("&lt;",">");
- p_str=p_str.replace("&apos;","'");
- p_str=p_str.replace("&quot;","\"");
- for (int i=1;i<32;i++) {
-
- char chr[2]={i,0};
- p_str=p_str.replace("&#"+String::num(i)+";",chr);
- }
- p_str=p_str.replace("&amp;","&");
-*/
- //p_str.parse_utf8( p_str.ascii(true).get_data() );
-
-}
-
-Error ResourceInteractiveLoaderXML::goto_end_of_tag() {
-
- uint8_t c;
- while(true) {
-
- c=get_char();
- if (c=='>') //closetag
- break;
- if (f->eof_reached()) {
-
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": EOF found while attempting to find close tag.");
- ERR_FAIL_COND_V( f->eof_reached(), ERR_FILE_CORRUPT );
- }
-
- }
- tag_stack.pop_back();
-
- return OK;
-}
-
-
-Error ResourceInteractiveLoaderXML::parse_property_data(String &r_data) {
-
- r_data="";
- CharString cs;
- while(true) {
-
- CharType c=get_char();
- if (c=='<')
- break;
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
- cs.push_back(c);
- }
-
- cs.push_back(0);
-
- r_data.parse_utf8(cs.get_data());
-
- while(get_char()!='>' && !f->eof_reached()) {}
- if (f->eof_reached()) {
-
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Malformed XML.");
- ERR_FAIL_COND_V( f->eof_reached(), ERR_FILE_CORRUPT );
- }
-
- r_data=r_data.strip_edges();
- tag_stack.pop_back();
-
- return OK;
-}
-
-
-Error ResourceInteractiveLoaderXML::_parse_array_element(Vector<char> &buff,bool p_number_only,FileAccess *f,bool *end) {
-
- if (buff.empty())
- buff.resize(32); // optimi
-
- int buff_max=buff.size();
- int buff_size=0;
- *end=false;
- char *buffptr=&buff[0];
- bool found=false;
- bool quoted=false;
-
- while(true) {
-
- char c=get_char();
-
- if (c==0) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": File corrupt (zero found).");
- ERR_FAIL_V(ERR_FILE_CORRUPT);
- } else if (c=='"') {
- quoted=!quoted;
- } else if ((!quoted && ((p_number_only && c<33) || c==',')) || c=='<') {
-
-
- if (c=='<') {
- *end=true;
- break;
- }
- if (c<32 && f->eof_reached()) {
- *end=true;
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": File corrupt (unexpected EOF).");
- ERR_FAIL_V(ERR_FILE_CORRUPT);
- }
-
- if (found)
- break;
-
- } else {
-
- found=true;
- if (buff_size>=buff_max) {
-
- buff_max++;
- buff.resize(buff_max);
- buffptr=buff.ptr();
-
- }
-
- buffptr[buff_size]=c;
- buff_size++;
- }
- }
-
- if (buff_size>=buff_max) {
-
- buff_max++;
- buff.resize(buff_max);
-
- }
-
- buff[buff_size]=0;
- buff_size++;
-
- return OK;
-}
-
-Error ResourceInteractiveLoaderXML::parse_property(Variant& r_v, String &r_name) {
-
- bool exit;
- Tag *tag = parse_tag(&exit);
-
- if (!tag) {
- if (exit) // shouldn't have exited
- return ERR_FILE_EOF;
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": File corrupt (No Property Tag).");
- ERR_FAIL_V(ERR_FILE_CORRUPT);
- }
-
- r_v=Variant();
- r_name="";
-
-
- //ERR_FAIL_COND_V(tag->name!="property",ERR_FILE_CORRUPT);
- //ERR_FAIL_COND_V(!tag->args.has("name"),ERR_FILE_CORRUPT);
-// ERR_FAIL_COND_V(!tag->args.has("type"),ERR_FILE_CORRUPT);
-
- //String name=tag->args["name"];
- //ERR_FAIL_COND_V(name=="",ERR_FILE_CORRUPT);
- String type=tag->name;
- String name=tag->args["name"];
-
- if (type=="") {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": 'type' field is empty.");
- ERR_FAIL_COND_V(type=="",ERR_FILE_CORRUPT);
- }
-
- if (type=="dictionary") {
-
- Dictionary d( tag->args.has("shared") && (String(tag->args["shared"])=="true" || String(tag->args["shared"])=="1"));
-
- while(true) {
-
- Error err;
- String tagname;
- Variant key;
-
- int dictline = get_current_line();
-
-
- err=parse_property(key,tagname);
-
- if (err && err!=ERR_FILE_EOF) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Error parsing dictionary: "+name+" (from line "+itos(dictline)+")");
- ERR_FAIL_COND_V(err && err!=ERR_FILE_EOF,err);
- }
- //ERR_FAIL_COND_V(tagname!="key",ERR_FILE_CORRUPT);
- if (err)
- break;
- Variant value;
- err=parse_property(value,tagname);
- if (err) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Error parsing dictionary: "+name+" (from line "+itos(dictline)+")");
- }
-
- ERR_FAIL_COND_V(err,err);
- //ERR_FAIL_COND_V(tagname!="value",ERR_FILE_CORRUPT);
-
- d[key]=value;
- }
-
-
- //err=parse_property_data(name); // skip the rest
- //ERR_FAIL_COND_V(err,err);
-
- r_name=name;
- r_v=d;
- return OK;
-
- } else if (type=="array") {
-
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Array missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
-
-
- int len=tag->args["len"].to_int();
- bool shared = tag->args.has("shared") && (String(tag->args["shared"])=="true" || String(tag->args["shared"])=="1");
-
- Array array(shared);
- array.resize(len);
-
- Error err;
- Variant v;
- String tagname;
- int idx=0;
- while( (err=parse_property(v,tagname))==OK ) {
-
- ERR_CONTINUE( idx <0 || idx >=len );
-
- array.set(idx,v);
- idx++;
- }
-
- if (idx!=len) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Error loading array (size mismatch): "+name);
- ERR_FAIL_COND_V(idx!=len,err);
- }
-
- if (err!=ERR_FILE_EOF) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Error loading array: "+name);
- ERR_FAIL_COND_V(err!=ERR_FILE_EOF,err);
- }
-
- //err=parse_property_data(name); // skip the rest
- //ERR_FAIL_COND_V(err,err);
-
- r_name=name;
- r_v=array;
- return OK;
-
- } else if (type=="resource") {
-
- if (tag->args.has("path")) {
-
- String path=tag->args["path"];
- String hint;
- if (tag->args.has("resource_type"))
- hint=tag->args["resource_type"];
-
- if (path.begins_with("local://"))
- path=path.replace("local://",local_path+"::");
- else if (path.find("://")==-1 && path.is_rel_path()) {
- // path is relative to file being loaded, so convert to a resource path
- path=GlobalConfig::get_singleton()->localize_path(local_path.get_base_dir().plus_file(path));
-
- }
-
- if (remaps.has(path)) {
- path=remaps[path];
- }
-
- //take advantage of the resource loader cache. The resource is cached on it, even if
- RES res=ResourceLoader::load(path,hint);
-
-
- if (res.is_null()) {
-
- WARN_PRINT(String("Couldn't load resource: "+path).ascii().get_data());
- }
-
- r_v=res.get_ref_ptr();
- } else if (tag->args.has("external")) {
-
- int index = tag->args["external"].to_int();
- if (ext_resources.has(index)) {
- String path=ext_resources[index].path;
- String type=ext_resources[index].type;
-
- //take advantage of the resource loader cache. The resource is cached on it, even if
- RES res=ResourceLoader::load(path,type);
-
- if (res.is_null()) {
-
- WARN_PRINT(String("Couldn't load externalresource: "+path).ascii().get_data());
- }
-
- r_v=res.get_ref_ptr();
- } else {
- WARN_PRINT(String("Invalid external resource index: "+itos(index)).ascii().get_data());
-
- }
- }
-
-
-
-
- Error err=goto_end_of_tag();
- if (err) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Error closing <resource> tag.");
- ERR_FAIL_COND_V(err,err);
- }
-
-
- r_name=name;
-
- return OK;
-
- } else if (type=="image") {
-
- if (!tag->args.has("encoding")) {
- //empty image
- r_v=Image();
- String sdfsdfg;
- Error err=parse_property_data(sdfsdfg);
- return OK;
- }
-
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Image missing 'encoding' field.");
- ERR_FAIL_COND_V( !tag->args.has("encoding"), ERR_FILE_CORRUPT );
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Image missing 'width' field.");
- ERR_FAIL_COND_V( !tag->args.has("width"), ERR_FILE_CORRUPT );
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Image missing 'height' field.");
- ERR_FAIL_COND_V( !tag->args.has("height"), ERR_FILE_CORRUPT );
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Image missing 'format' field.");
- ERR_FAIL_COND_V( !tag->args.has("format"), ERR_FILE_CORRUPT );
-
- String encoding=tag->args["encoding"];
-
- if (encoding=="raw") {
- String width=tag->args["width"];
- String height=tag->args["height"];
- String format=tag->args["format"];
- int mipmaps=tag->args.has("mipmaps")?int(tag->args["mipmaps"].to_int()):int(0);
- int custom_size = tag->args.has("custom_size")?int(tag->args["custom_size"].to_int()):int(0);
-
- r_name=name;
-
- Image::Format imgformat;
-
-/*
- if (format=="grayscale") {
- imgformat=Image::FORMAT_L8;
- } else if (format=="intensity") {
- imgformat=Image::FORMAT_INTENSITY;
- } else if (format=="grayscale_alpha") {
- imgformat=Image::FORMAT_LA8;
- } else if (format=="rgb") {
- imgformat=Image::FORMAT_RGB8;
- } else if (format=="rgba") {
- imgformat=Image::FORMAT_RGBA8;
- } else if (format=="indexed") {
- imgformat=Image::FORMAT_INDEXED;
- } else if (format=="indexed_alpha") {
- imgformat=Image::FORMAT_INDEXED_ALPHA;
- } else if (format=="bc1") {
- imgformat=Image::FORMAT_DXT1;
- } else if (format=="bc2") {
- imgformat=Image::FORMAT_DXT3;
- } else if (format=="bc3") {
- imgformat=Image::FORMAT_DXT5;
- } else if (format=="bc4") {
- imgformat=Image::FORMAT_ATI1;
- } else if (format=="bc5") {
- imgformat=Image::FORMAT_ATI2;
- } else if (format=="pvrtc2") {
- imgformat=Image::FORMAT_PVRTC2;
- } else if (format=="pvrtc2a") {
- imgformat=Image::FORMAT_PVRTC2A;
- } else if (format=="pvrtc4") {
- imgformat=Image::FORMAT_PVRTC4;
- } else if (format=="pvrtc4a") {
- imgformat=Image::FORMAT_PVRTC4A;
- } else if (format=="etc") {
- imgformat=Image::FORMAT_ETC;
- } else if (format=="atc") {
- imgformat=Image::FORMAT_ATC;
- } else if (format=="atcai") {
- imgformat=Image::FORMAT_ATC_ALPHA_INTERPOLATED;
- } else if (format=="atcae") {
- imgformat=Image::FORMAT_ATC_ALPHA_EXPLICIT;
- } else if (format=="custom") {
- imgformat=Image::FORMAT_CUSTOM;
- } else {
-
- ERR_FAIL_V( ERR_FILE_CORRUPT );
- }*/
-
-
- int datasize;
- int w=width.to_int();
- int h=height.to_int();
-
- if (w == 0 && h == 0) {
- //r_v = Image(w, h, imgformat);
- r_v=Image();
- String sdfsdfg;
- Error err=parse_property_data(sdfsdfg);
- return OK;
- };
-
-
- if (datasize==0) {
- //r_v = Image(w, h, imgformat);
- r_v=Image();
- String sdfsdfg;
- Error err=parse_property_data(sdfsdfg);
- return OK;
- };
-
- DVector<uint8_t> pixels;
- pixels.resize(datasize);
- DVector<uint8_t>::Write wb = pixels.write();
-
- int idx=0;
- uint8_t byte;
- while( idx<datasize*2) {
-
- CharType c=get_char();
-
- ERR_FAIL_COND_V(c=='<',ERR_FILE_CORRUPT);
-
- if ( (c>='0' && c<='9') || (c>='A' && c<='F') || (c>='a' && c<='f') ) {
-
- if (idx&1) {
-
- byte|=HEX2CHR(c);
- wb[idx>>1]=byte;
- } else {
-
- byte=HEX2CHR(c)<<4;
- }
-
- idx++;
- }
-
- }
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
-
- wb=DVector<uint8_t>::Write();
-
- r_v=Image(w,h,mipmaps,imgformat,pixels);
- String sdfsdfg;
- Error err=parse_property_data(sdfsdfg);
- ERR_FAIL_COND_V(err,err);
-
- return OK;
- }
-
- ERR_FAIL_V(ERR_FILE_CORRUPT);
-
- } else if (type=="raw_array") {
-
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": RawArray missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
- int len=tag->args["len"].to_int();
-
- DVector<uint8_t> bytes;
- bytes.resize(len);
- DVector<uint8_t>::Write w=bytes.write();
- uint8_t *bytesptr=w.ptr();
- int idx=0;
- uint8_t byte;
-
- while( idx<len*2) {
-
- CharType c=get_char();
- if (c<=32)
- continue;
-
- if (idx&1) {
-
- byte|=HEX2CHR(c);
- bytesptr[idx>>1]=byte;
- //printf("%x\n",int(byte));
- } else {
-
- byte=HEX2CHR(c)<<4;
- }
-
- idx++;
- }
-
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
-
- w=DVector<uint8_t>::Write();
- r_v=bytes;
- String sdfsdfg;
- Error err=parse_property_data(sdfsdfg);
- ERR_FAIL_COND_V(err,err);
- r_name=name;
-
- return OK;
-
- } else if (type=="int_array") {
-
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Array missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
- int len=tag->args["len"].to_int();
-
- DVector<int> ints;
- ints.resize(len);
- DVector<int>::Write w=ints.write();
- int *intsptr=w.ptr();
- int idx=0;
- String str;
-#if 0
- while( idx<len ) {
-
-
- CharType c=get_char();
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
-
- if (c<33 || c==',' || c=='<') {
-
- if (str.length()) {
-
- intsptr[idx]=str.to_int();
- str="";
- idx++;
- }
-
- if (c=='<') {
-
- while(get_char()!='>' && !f->eof_reached()) {}
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
- break;
- }
-
- } else {
-
- str+=c;
- }
- }
-
-#else
-
- Vector<char> tmpdata;
-
- while( idx<len ) {
-
- bool end=false;
- Error err = _parse_array_element(tmpdata,true,f,&end);
- ERR_FAIL_COND_V(err,err);
-
- intsptr[idx]=String::to_int(&tmpdata[0]);
- idx++;
- if (end)
- break;
-
- }
-
-#endif
- w=DVector<int>::Write();
-
- r_v=ints;
- Error err=goto_end_of_tag();
- ERR_FAIL_COND_V(err,err);
- r_name=name;
-
- return OK;
- } else if (type=="real_array") {
-
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Array missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
- int len=tag->args["len"].to_int();;
-
- DVector<real_t> reals;
- reals.resize(len);
- DVector<real_t>::Write w=reals.write();
- real_t *realsptr=w.ptr();
- int idx=0;
- String str;
-
-
-#if 0
- while( idx<len ) {
-
-
- CharType c=get_char();
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
-
-
- if (c<33 || c==',' || c=='<') {
-
- if (str.length()) {
-
- realsptr[idx]=str.to_double();
- str="";
- idx++;
- }
-
- if (c=='<') {
-
- while(get_char()!='>' && !f->eof_reached()) {}
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
- break;
- }
-
- } else {
-
- str+=c;
- }
- }
-
-#else
-
-
-
- Vector<char> tmpdata;
-
- while( idx<len ) {
-
- bool end=false;
- Error err = _parse_array_element(tmpdata,true,f,&end);
- ERR_FAIL_COND_V(err,err);
-
- realsptr[idx]=String::to_double(&tmpdata[0]);
- idx++;
-
- if (end)
- break;
- }
-
-#endif
-
- w=DVector<real_t>::Write();
- r_v=reals;
-
- Error err=goto_end_of_tag();
- ERR_FAIL_COND_V(err,err);
- r_name=name;
-
- return OK;
- } else if (type=="string_array") {
-#if 0
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Array missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
- int len=tag->args["len"].to_int();
-
- DVector<String> strings;
- strings.resize(len);
- DVector<String>::Write w=strings.write();
- String *stringsptr=w.ptr();
- int idx=0;
- String str;
-
- bool inside_str=false;
- CharString cs;
- while( idx<len ) {
-
-
- CharType c=get_char();
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
-
-
- if (c=='"') {
- if (inside_str) {
-
- cs.push_back(0);
- String str;
- str.parse_utf8(cs.get_data());
- unquote(str);
- stringsptr[idx]=str;
- cs.clear();
- idx++;
- inside_str=false;
- } else {
- inside_str=true;
- }
- } else if (c=='<') {
-
- while(get_char()!='>' && !f->eof_reached()) {}
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
- break;
-
-
- } else if (inside_str){
-
- cs.push_back(c);
- }
- }
- w=DVector<String>::Write();
- r_v=strings;
- String sdfsdfg;
- Error err=parse_property_data(sdfsdfg);
- ERR_FAIL_COND_V(err,err);
-
- r_name=name;
-
- return OK;
-#endif
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": String Array missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
-
-
- int len=tag->args["len"].to_int();
-
- StringArray array;
- array.resize(len);
- DVector<String>::Write w = array.write();
-
- Error err;
- Variant v;
- String tagname;
- int idx=0;
-
-
- while( (err=parse_property(v,tagname))==OK ) {
-
- ERR_CONTINUE( idx <0 || idx >=len );
- String str = v; //convert back to string
- w[idx]=str;
- idx++;
- }
-
- if (idx!=len) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Error loading array (size mismatch): "+name);
- ERR_FAIL_COND_V(idx!=len,err);
- }
-
- if (err!=ERR_FILE_EOF) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Error loading array: "+name);
- ERR_FAIL_COND_V(err!=ERR_FILE_EOF,err);
- }
-
- //err=parse_property_data(name); // skip the rest
- //ERR_FAIL_COND_V(err,err);
-
- r_name=name;
- r_v=array;
- return OK;
-
- } else if (type=="vector3_array") {
-
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Array missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
- int len=tag->args["len"].to_int();;
-
- DVector<Vector3> vectors;
- vectors.resize(len);
- DVector<Vector3>::Write w=vectors.write();
- Vector3 *vectorsptr=w.ptr();
- int idx=0;
- int subidx=0;
- Vector3 auxvec;
- String str;
-
-// uint64_t tbegin = OS::get_singleton()->get_ticks_usec();
-#if 0
- while( idx<len ) {
-
-
- CharType c=get_char();
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
-
-
- if (c<33 || c==',' || c=='<') {
-
- if (str.length()) {
-
- auxvec[subidx]=str.to_double();
- subidx++;
- str="";
- if (subidx==3) {
- vectorsptr[idx]=auxvec;
-
- idx++;
- subidx=0;
- }
- }
-
- if (c=='<') {
-
- while(get_char()!='>' && !f->eof_reached()) {}
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
- break;
- }
-
- } else {
-
- str+=c;
- }
- }
-#else
-
- Vector<char> tmpdata;
-
- while( idx<len ) {
-
- bool end=false;
- Error err = _parse_array_element(tmpdata,true,f,&end);
- ERR_FAIL_COND_V(err,err);
-
-
- auxvec[subidx]=String::to_double(&tmpdata[0]);
- subidx++;
- if (subidx==3) {
- vectorsptr[idx]=auxvec;
-
- idx++;
- subidx=0;
- }
-
- if (end)
- break;
- }
-
-
-
-#endif
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Premature end of vector3 array");
- ERR_FAIL_COND_V(idx<len,ERR_FILE_CORRUPT);
-// double time_taken = (OS::get_singleton()->get_ticks_usec() - tbegin)/1000000.0;
-
-
- w=DVector<Vector3>::Write();
- r_v=vectors;
- String sdfsdfg;
- Error err=goto_end_of_tag();
- ERR_FAIL_COND_V(err,err);
- r_name=name;
-
- return OK;
-
- } else if (type=="vector2_array") {
-
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Array missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
- int len=tag->args["len"].to_int();;
-
- DVector<Vector2> vectors;
- vectors.resize(len);
- DVector<Vector2>::Write w=vectors.write();
- Vector2 *vectorsptr=w.ptr();
- int idx=0;
- int subidx=0;
- Vector2 auxvec;
- String str;
-
-// uint64_t tbegin = OS::get_singleton()->get_ticks_usec();
-#if 0
- while( idx<len ) {
-
-
- CharType c=get_char();
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
-
-
- if (c<22 || c==',' || c=='<') {
-
- if (str.length()) {
-
- auxvec[subidx]=str.to_double();
- subidx++;
- str="";
- if (subidx==2) {
- vectorsptr[idx]=auxvec;
-
- idx++;
- subidx=0;
- }
- }
-
- if (c=='<') {
-
- while(get_char()!='>' && !f->eof_reached()) {}
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
- break;
- }
-
- } else {
-
- str+=c;
- }
- }
-#else
-
- Vector<char> tmpdata;
-
- while( idx<len ) {
-
- bool end=false;
- Error err = _parse_array_element(tmpdata,true,f,&end);
- ERR_FAIL_COND_V(err,err);
-
-
- auxvec[subidx]=String::to_double(&tmpdata[0]);
- subidx++;
- if (subidx==2) {
- vectorsptr[idx]=auxvec;
-
- idx++;
- subidx=0;
- }
-
- if (end)
- break;
- }
-
-
-
-#endif
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Premature end of vector2 array");
- ERR_FAIL_COND_V(idx<len,ERR_FILE_CORRUPT);
-// double time_taken = (OS::get_singleton()->get_ticks_usec() - tbegin)/1000000.0;
-
-
- w=DVector<Vector2>::Write();
- r_v=vectors;
- String sdfsdfg;
- Error err=goto_end_of_tag();
- ERR_FAIL_COND_V(err,err);
- r_name=name;
-
- return OK;
-
- } else if (type=="color_array") {
-
- if (!tag->args.has("len")) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Array missing 'len' field: "+name);
- ERR_FAIL_COND_V(!tag->args.has("len"),ERR_FILE_CORRUPT);
- }
- int len=tag->args["len"].to_int();;
-
- DVector<Color> colors;
- colors.resize(len);
- DVector<Color>::Write w=colors.write();
- Color *colorsptr=w.ptr();
- int idx=0;
- int subidx=0;
- Color auxcol;
- String str;
-
- while( idx<len ) {
-
-
- CharType c=get_char();
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
-
-
- if (c<33 || c==',' || c=='<') {
-
- if (str.length()) {
-
- auxcol[subidx]=str.to_double();
- subidx++;
- str="";
- if (subidx==4) {
- colorsptr[idx]=auxcol;
- idx++;
- subidx=0;
- }
- }
-
- if (c=='<') {
-
- while(get_char()!='>' && !f->eof_reached()) {}
- ERR_FAIL_COND_V(f->eof_reached(),ERR_FILE_CORRUPT);
- break;
- }
-
- } else {
-
- str+=c;
- }
- }
- w=DVector<Color>::Write();
- r_v=colors;
- String sdfsdfg;
- Error err=parse_property_data(sdfsdfg);
- ERR_FAIL_COND_V(err,err);
- r_name=name;
-
- return OK;
- }
-
-
- String data;
- Error err = parse_property_data(data);
- ERR_FAIL_COND_V(err!=OK,err);
-
- if (type=="nil") {
- // uh do nothing
-
- } else if (type=="bool") {
- // uh do nothing
- if (data.nocasecmp_to("true")==0 || data.to_int()!=0)
- r_v=true;
- else
- r_v=false;
- } else if (type=="int") {
-
- r_v=data.to_int();
- } else if (type=="real") {
-
- r_v=data.to_double();
- } else if (type=="string") {
-
- String str=data;
- unquote(str);
- r_v=str;
- } else if (type=="vector3") {
-
-
- r_v=Vector3(
- data.get_slicec(',',0).to_double(),
- data.get_slicec(',',1).to_double(),
- data.get_slicec(',',2).to_double()
- );
-
- } else if (type=="vector2") {
-
-
- r_v=Vector2(
- data.get_slicec(',',0).to_double(),
- data.get_slicec(',',1).to_double()
- );
-
- } else if (type=="plane") {
-
- r_v=Plane(
- data.get_slicec(',',0).to_double(),
- data.get_slicec(',',1).to_double(),
- data.get_slicec(',',2).to_double(),
- data.get_slicec(',',3).to_double()
- );
-
- } else if (type=="quaternion") {
-
- r_v=Quat(
- data.get_slicec(',',0).to_double(),
- data.get_slicec(',',1).to_double(),
- data.get_slicec(',',2).to_double(),
- data.get_slicec(',',3).to_double()
- );
-
- } else if (type=="rect2") {
-
- r_v=Rect2(
- Vector2(
- data.get_slicec(',',0).to_double(),
- data.get_slicec(',',1).to_double()
- ),
- Vector2(
- data.get_slicec(',',2).to_double(),
- data.get_slicec(',',3).to_double()
- )
- );
-
-
- } else if (type=="aabb") {
-
- r_v=AABB(
- Vector3(
- data.get_slicec(',',0).to_double(),
- data.get_slicec(',',1).to_double(),
- data.get_slicec(',',2).to_double()
- ),
- Vector3(
- data.get_slicec(',',3).to_double(),
- data.get_slicec(',',4).to_double(),
- data.get_slicec(',',5).to_double()
- )
- );
-
- } else if (type=="matrix32") {
-
- Matrix32 m3;
- for (int i=0;i<3;i++) {
- for (int j=0;j<2;j++) {
- m3.elements[i][j]=data.get_slicec(',',i*2+j).to_double();
- }
- }
- r_v=m3;
-
- } else if (type=="matrix3") {
-
- Matrix3 m3;
- for (int i=0;i<3;i++) {
- for (int j=0;j<3;j++) {
- m3.elements[i][j]=data.get_slicec(',',i*3+j).to_double();
- }
- }
- r_v=m3;
-
- } else if (type=="transform") {
-
- Transform tr;
- for (int i=0;i<3;i++) {
- for (int j=0;j<3;j++) {
- tr.basis.elements[i][j]=data.get_slicec(',',i*3+j).to_double();
- }
-
- }
- tr.origin=Vector3(
- data.get_slicec(',',9).to_double(),
- data.get_slicec(',',10).to_double(),
- data.get_slicec(',',11).to_double()
- );
- r_v=tr;
-
- } else if (type=="color") {
-
- r_v=Color(
- data.get_slicec(',',0).to_double(),
- data.get_slicec(',',1).to_double(),
- data.get_slicec(',',2).to_double(),
- data.get_slicec(',',3).to_double()
- );
-
- } else if (type=="node_path") {
-
- String str=data;
- unquote(str);
- r_v=NodePath( str );
- } else if (type=="input_event") {
-
- // ?
- } else {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Unrecognized tag in file: "+type);
- ERR_FAIL_V(ERR_FILE_CORRUPT);
- }
- r_name=name;
- return OK;
-}
-
-
-
-int ResourceInteractiveLoaderXML::get_current_line() const {
-
- return lines;
-}
-
-
-uint8_t ResourceInteractiveLoaderXML::get_char() const {
-
- uint8_t c = f->get_8();
- if (c=='\n')
- lines++;
- return c;
-
-}
-
-
-
-
-///
-
-void ResourceInteractiveLoaderXML::set_local_path(const String& p_local_path) {
-
- res_path=p_local_path;
-}
-
-Ref<Resource> ResourceInteractiveLoaderXML::get_resource() {
-
- return resource;
-}
-Error ResourceInteractiveLoaderXML::poll() {
-
- if (error!=OK)
- return error;
-
- bool exit;
- Tag *tag = parse_tag(&exit);
-
-
- if (!tag) {
- error=ERR_FILE_CORRUPT;
- if (!exit) // shouldn't have exited
- ERR_FAIL_V(error);
- error=ERR_FILE_EOF;
- return error;
- }
-
- RES res;
- //Object *obj=NULL;
-
- bool main;
-
- if (tag->name=="ext_resource") {
-
- error=ERR_FILE_CORRUPT;
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": <ext_resource> missing 'path' field.");
- ERR_FAIL_COND_V(!tag->args.has("path"),ERR_FILE_CORRUPT);
-
- String type="Resource";
- if (tag->args.has("type"))
- type=tag->args["type"];
-
- String path = tag->args["path"];
-
-
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": <ext_resource> can't use a local path, this is a bug?.");
- ERR_FAIL_COND_V(path.begins_with("local://"),ERR_FILE_CORRUPT);
-
- if (path.find("://")==-1 && path.is_rel_path()) {
- // path is relative to file being loaded, so convert to a resource path
- path=GlobalConfig::get_singleton()->localize_path(local_path.get_base_dir().plus_file(path));
- }
-
- if (remaps.has(path)) {
- path=remaps[path];
- }
-
- RES res = ResourceLoader::load(path,type);
-
- if (res.is_null()) {
-
- if (ResourceLoader::get_abort_on_missing_resources()) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": <ext_resource> referenced nonexistent resource at: "+path);
- ERR_FAIL_V(error);
- } else {
- ResourceLoader::notify_dependency_error(local_path,path,type);
- }
- } else {
-
- resource_cache.push_back(res);
- }
-
- if (tag->args.has("index")) {
- ExtResource er;
- er.path=path;
- er.type=type;
- ext_resources[tag->args["index"].to_int()]=er;
- }
-
-
- Error err = close_tag("ext_resource");
- if (err)
- return error;
-
-
- error=OK;
- resource_current++;
- return error;
-
- } else if (tag->name=="resource") {
-
- main=false;
- } else if (tag->name=="main_resource") {
- main=true;
- } else {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": unexpected main tag: "+tag->name);
- error=ERR_FILE_CORRUPT;
- ERR_FAIL_V(error);
- }
-
-
- String type;
- String path;
- int subres=0;
-
- if (!main) {
- //loading resource
-
- error=ERR_FILE_CORRUPT;
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": <resource> missing 'len' field.");
- ERR_FAIL_COND_V(!tag->args.has("path"),ERR_FILE_CORRUPT);
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": <resource> missing 'type' field.");
- ERR_FAIL_COND_V(!tag->args.has("type"),ERR_FILE_CORRUPT);
- path=tag->args["path"];
-
- error=OK;
-
- if (path.begins_with("local://")) {
- //built-in resource (but really external)
-
- path=path.replace("local://","");
- subres=path.to_int();
- path=local_path+"::"+path;
- }
-
-
- if (ResourceCache::has(path)) {
- Error err = close_tag(tag->name);
- if (err) {
- error=ERR_FILE_CORRUPT;
- }
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Unable to close <resource> tag.");
- ERR_FAIL_COND_V( err, err );
- resource_current++;
- error=OK;
- return OK;
- }
-
- type = tag->args["type"];
- } else {
- type=resource_type;
- }
-
- Object *obj = ClassDB::instance(type);
- if (!obj) {
- error=ERR_FILE_CORRUPT;
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Object of unrecognized type in file: "+type);
- }
- ERR_FAIL_COND_V(!obj,ERR_FILE_CORRUPT);
-
- Resource *r = obj->cast_to<Resource>();
- if (!r) {
- error=ERR_FILE_CORRUPT;
- memdelete(obj); //bye
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": Object type in resource field not a resource, type is: "+obj->get_class());
- ERR_FAIL_COND_V(!r,ERR_FILE_CORRUPT);
- }
-
- res = RES( r );
- if (path!="")
- r->set_path(path);
- r->set_subindex(subres);
-
- //load properties
-
- while(true) {
-
- String name;
- Variant v;
- Error err;
- err = parse_property(v,name);
- if (err==ERR_FILE_EOF) //tag closed
- break;
- if (err!=OK) {
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": XML Parsing aborted.");
- ERR_FAIL_COND_V(err!=OK,ERR_FILE_CORRUPT);
- }
-
- obj->set(name,v);
- }
-#ifdef TOOLS_ENABLED
- res->set_edited(false);
-#endif
- resource_cache.push_back(res); //keep it in mem until finished loading
- resource_current++;
- if (main) {
- f->close();
- resource=res;
- if (!ResourceCache::has(res_path)) {
- resource->set_path(res_path);
- }
- error=ERR_FILE_EOF;
- return error;
-
- }
- error=OK;
- return OK;
-}
-
-int ResourceInteractiveLoaderXML::get_stage() const {
-
- return resource_current;
-}
-int ResourceInteractiveLoaderXML::get_stage_count() const {
-
- return resources_total;//+ext_resources;
-}
-
-ResourceInteractiveLoaderXML::~ResourceInteractiveLoaderXML() {
-
- memdelete(f);
-}
-
-void ResourceInteractiveLoaderXML::get_dependencies(FileAccess *f,List<String> *p_dependencies,bool p_add_types) {
-
-
- open(f);
- ERR_FAIL_COND(error!=OK);
-
- while(true) {
- bool exit;
- Tag *tag = parse_tag(&exit);
-
-
- if (!tag) {
- error=ERR_FILE_CORRUPT;
- ERR_FAIL_COND(!exit);
- error=ERR_FILE_EOF;
- return;
- }
-
- if (tag->name!="ext_resource") {
-
- return;
- }
-
- error=ERR_FILE_CORRUPT;
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": <ext_resource> missing 'path' field.");
- ERR_FAIL_COND(!tag->args.has("path"));
-
- String path = tag->args["path"];
-
- ERR_EXPLAIN(local_path+":"+itos(get_current_line())+": <ext_resource> can't use a local path, this is a bug?.");
- ERR_FAIL_COND(path.begins_with("local://"));
-
- if (path.find("://")==-1 && path.is_rel_path()) {
- // path is relative to file being loaded, so convert to a resource path
- path=GlobalConfig::get_singleton()->localize_path(local_path.get_base_dir().plus_file(path));
- }
-
- if (path.ends_with("*")) {
- ERR_FAIL_COND(!tag->args.has("type"));
- String type = tag->args["type"];
- path = ResourceLoader::guess_full_filename(path,type);
- }
-
- if (p_add_types && tag->args.has("type")) {
- path+="::"+tag->args["type"];
- }
-
- p_dependencies->push_back(path);
-
- Error err = close_tag("ext_resource");
- if (err)
- return;
-
- error=OK;
- }
-
-}
-
-Error ResourceInteractiveLoaderXML::rename_dependencies(FileAccess *p_f, const String &p_path,const Map<String,String>& p_map) {
-
- open(p_f);
- ERR_FAIL_COND_V(error!=OK,error);
-
- //FileAccess
-
- bool old_format=false;
-
- FileAccess *fw = NULL;
-
- String base_path=local_path.get_base_dir();
-
- while(true) {
- bool exit;
- List<String> order;
-
- Tag *tag = parse_tag(&exit,true,&order);
-
- bool done=false;
-
- if (!tag) {
- if (fw) {
- memdelete(fw);
- }
- error=ERR_FILE_CORRUPT;
- ERR_FAIL_COND_V(!exit,error);
- error=ERR_FILE_EOF;
-
- return error;
- }
-
- if (tag->name=="ext_resource") {
-
- if (!tag->args.has("index") || !tag->args.has("path") || !tag->args.has("type")) {
- old_format=true;
- break;
- }
-
- if (!fw) {
-
- fw=FileAccess::open(p_path+".depren",FileAccess::WRITE);
- fw->store_line("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"); //no escape
- fw->store_line("<resource_file type=\""+resource_type+"\" subresource_count=\""+itos(resources_total)+"\" version=\""+itos(VERSION_MAJOR)+"."+itos(VERSION_MINOR)+"\" version_name=\""+VERSION_FULL_NAME+"\">");
-
- }
-
- String path = tag->args["path"];
- String index = tag->args["index"];
- String type = tag->args["type"];
-
-
- bool relative=false;
- if (!path.begins_with("res://")) {
- path=base_path.plus_file(path).simplify_path();
- relative=true;
- }
-
-
- if (p_map.has(path)) {
- String np=p_map[path];
- path=np;
- }
-
- if (relative) {
- //restore relative
- path=base_path.path_to_file(path);
- }
-
- tag->args["path"]=path;
- tag->args["index"]=index;
- tag->args["type"]=type;
-
- } else {
-
- done=true;
- }
-
- String tagt="\t<";
- if (exit)
- tagt+="/";
- tagt+=tag->name;
-
- for(List<String>::Element *E=order.front();E;E=E->next()) {
- tagt+=" "+E->get()+"=\""+tag->args[E->get()]+"\"";
- }
- tagt+=">";
- fw->store_line(tagt);
- if (done)
- break;
- close_tag("ext_resource");
- fw->store_line("\t</ext_resource>");
-
- }
-
-
- if (old_format) {
- if (fw)
- memdelete(fw);
-
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
- da->remove(p_path+".depren");
- memdelete(da);
- //fuck it, use the old approach;
-
- WARN_PRINT(("This file is old, so it can't refactor dependencies, opening and resaving: "+p_path).utf8().get_data());
-
- Error err;
- FileAccess *f2 = FileAccess::open(p_path,FileAccess::READ,&err);
- if (err!=OK) {
- ERR_FAIL_COND_V(err!=OK,ERR_FILE_CANT_OPEN);
- }
-
- Ref<ResourceInteractiveLoaderXML> ria = memnew( ResourceInteractiveLoaderXML );
- ria->local_path=GlobalConfig::get_singleton()->localize_path(p_path);
- ria->res_path=ria->local_path;
- ria->remaps=p_map;
- // ria->set_local_path( Globals::get_singleton()->localize_path(p_path) );
- ria->open(f2);
-
- err = ria->poll();
-
- while(err==OK) {
- err=ria->poll();
- }
-
- ERR_FAIL_COND_V(err!=ERR_FILE_EOF,ERR_FILE_CORRUPT);
- RES res = ria->get_resource();
- ERR_FAIL_COND_V(!res.is_valid(),ERR_FILE_CORRUPT);
-
- return ResourceFormatSaverXML::singleton->save(p_path,res);
- }
-
- if (!fw) {
-
- return OK; //nothing to rename, do nothing
- }
-
- uint8_t c=f->get_8();
- while(!f->eof_reached()) {
- fw->store_8(c);
- c=f->get_8();
- }
- f->close();
-
- bool all_ok = fw->get_error()==OK;
-
- memdelete(fw);
-
- if (!all_ok) {
- return ERR_CANT_CREATE;
- }
-
- DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
- da->remove(p_path);
- da->rename(p_path+".depren",p_path);
- memdelete(da);
-
- return OK;
-
-}
-
-
-void ResourceInteractiveLoaderXML::open(FileAccess *p_f) {
-
- error=OK;
-
- lines=1;
- f=p_f;
-
-
- ResourceInteractiveLoaderXML::Tag *tag = parse_tag();
- if (!tag || tag->name!="?xml" || !tag->args.has("version") || !tag->args.has("encoding") || tag->args["encoding"]!="UTF-8") {
-
- error=ERR_FILE_CORRUPT;
- ResourceLoader::notify_load_error("XML is invalid (missing header tags)");
- ERR_EXPLAIN("Not a XML:UTF-8 File: "+local_path);
- ERR_FAIL();
- }
-
- tag_stack.clear();
-
- tag = parse_tag();
-
-
- if (!tag || tag->name!="resource_file" || !tag->args.has("type") || !tag->args.has("version")) {
-
- ResourceLoader::notify_load_error(local_path+": XML is not a valid resource file.");
- error=ERR_FILE_CORRUPT;
- ERR_EXPLAIN("Unrecognized XML File: "+local_path);
- ERR_FAIL();
- }
-
-
- if (tag->args.has("subresource_count"))
- resources_total=tag->args["subresource_count"].to_int();
- resource_current=0;
- resource_type=tag->args["type"];
-
- String version = tag->args["version"];
- if (version.get_slice_count(".")!=2) {
-
- error=ERR_FILE_CORRUPT;
- ResourceLoader::notify_load_error(local_path+":XML version string is invalid: "+version);
- ERR_EXPLAIN("Invalid Version String '"+version+"'' in file: "+local_path);
- ERR_FAIL();
- }
-
- int major = version.get_slicec('.',0).to_int();
- if (major>VERSION_MAJOR) {
-
- error=ERR_FILE_UNRECOGNIZED;
- ResourceLoader::notify_load_error(local_path+": File Format '"+version+"' is too new. Please upgrade to a newer engine version.");
- ERR_EXPLAIN("File Format '"+version+"' is too new! Please upgrade to a a new engine version: "+local_path);
- ERR_FAIL();
-
- }
-
- /*
- String preload_depts = "deps/"+local_path.md5_text();
- if (Globals::get_singleton()->has(preload_depts)) {
- ext_resources.clear();
- //ignore external resources and use these
- NodePath depts=Globals::get_singleton()->get(preload_depts);
-
- for(int i=0;i<depts.get_name_count();i++) {
- ext_resources.push_back(depts.get_name(i));
- }
- print_line(local_path+" - EXTERNAL RESOURCES: "+itos(ext_resources.size()));
- }
-*/
-
-}
-
-String ResourceInteractiveLoaderXML::recognize(FileAccess *p_f) {
-
- error=OK;
-
- lines=1;
- f=p_f;
-
- ResourceInteractiveLoaderXML::Tag *tag = parse_tag();
- if (!tag || tag->name!="?xml" || !tag->args.has("version") || !tag->args.has("encoding") || tag->args["encoding"]!="UTF-8") {
-
-
- return ""; //unrecognized
- }
-
- tag_stack.clear();
-
- tag = parse_tag();
-
- if (!tag || tag->name!="resource_file" || !tag->args.has("type") || !tag->args.has("version")) {
-
- return ""; //unrecognized
- }
-
- return tag->args["type"];
-
-}
-
-/////////////////////
-
-Ref<ResourceInteractiveLoader> ResourceFormatLoaderXML::load_interactive(const String &p_path, Error *r_error) {
-
- if (r_error)
- *r_error=ERR_CANT_OPEN;
-
- Error err;
- FileAccess *f = FileAccess::open(p_path,FileAccess::READ,&err);
-
-
- if (err!=OK) {
-
- ERR_FAIL_COND_V(err!=OK,Ref<ResourceInteractiveLoader>());
- }
-
- Ref<ResourceInteractiveLoaderXML> ria = memnew( ResourceInteractiveLoaderXML );
- ria->local_path=GlobalConfig::get_singleton()->localize_path(p_path);
- ria->res_path=ria->local_path;
-// ria->set_local_path( Globals::get_singleton()->localize_path(p_path) );
- ria->open(f);
-
- return ria;
-}
-
-void ResourceFormatLoaderXML::get_recognized_extensions_for_type(const String& p_type,List<String> *p_extensions) const {
-
- if (p_type=="") {
- get_recognized_extensions(p_extensions);
- return;
- }
-
- List<String> extensions;
- ClassDB::get_extensions_for_type(p_type,&extensions);
-
- extensions.sort();
-
- for(List<String>::Element *E=extensions.front();E;E=E->next()) {
- String ext = E->get().to_lower();
- if (ext=="res")
- continue;
- p_extensions->push_back("x"+ext);
- }
-
- p_extensions->push_back("xml");
-
-
-}
-void ResourceFormatLoaderXML::get_recognized_extensions(List<String> *p_extensions) const{
-
- List<String> extensions;
- ClassDB::get_resource_base_extensions(&extensions);
- extensions.sort();
-
- for(List<String>::Element *E=extensions.front();E;E=E->next()) {
- String ext = E->get().to_lower();
- if (ext=="res")
- continue;
- p_extensions->push_back("x"+ext);
- }
-
- p_extensions->push_back("xml");
-}
-
-bool ResourceFormatLoaderXML::handles_type(const String& p_type) const{
-
- return true;
-}
-String ResourceFormatLoaderXML::get_resource_type(const String &p_path) const{
-
-
- String ext=p_path.extension().to_lower();
- if (!ext.begins_with("x")) //a lie but..
- return "";
-
- FileAccess *f = FileAccess::open(p_path,FileAccess::READ);
- if (!f) {
-
- return ""; //could not rwead
- }
-
- Ref<ResourceInteractiveLoaderXML> ria = memnew( ResourceInteractiveLoaderXML );
- ria->local_path=GlobalConfig::get_singleton()->localize_path(p_path);
- ria->res_path=ria->local_path;
-// ria->set_local_path( Globals::get_singleton()->localize_path(p_path) );
- String r = ria->recognize(f);
- return r;
-}
-
-
-void ResourceFormatLoaderXML::get_dependencies(const String& p_path,List<String> *p_dependencies,bool p_add_types) {
-
- FileAccess *f = FileAccess::open(p_path,FileAccess::READ);
- if (!f) {
-
- ERR_FAIL();
- }
-
- Ref<ResourceInteractiveLoaderXML> ria = memnew( ResourceInteractiveLoaderXML );
- ria->local_path=GlobalConfig::get_singleton()->localize_path(p_path);
- ria->res_path=ria->local_path;
-// ria->set_local_path( Globals::get_singleton()->localize_path(p_path) );
- ria->get_dependencies(f,p_dependencies,p_add_types);
-
-
-}
-
-Error ResourceFormatLoaderXML::rename_dependencies(const String &p_path,const Map<String,String>& p_map) {
-
- FileAccess *f = FileAccess::open(p_path,FileAccess::READ);
- if (!f) {
-
- ERR_FAIL_V(ERR_CANT_OPEN);
- }
-
- Ref<ResourceInteractiveLoaderXML> ria = memnew( ResourceInteractiveLoaderXML );
- ria->local_path=GlobalConfig::get_singleton()->localize_path(p_path);
- ria->res_path=ria->local_path;
-// ria->set_local_path( Globals::get_singleton()->localize_path(p_path) );
- return ria->rename_dependencies(f,p_path,p_map);
-}
-
-
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-/****************************************************************************************/
-
-
-
-void ResourceFormatSaverXMLInstance::escape(String& p_str) {
-
- p_str=p_str.replace("&","&amp;");
- p_str=p_str.replace("<","&lt;");
- p_str=p_str.replace(">","&gt;");
- p_str=p_str.replace("'","&apos;");
- p_str=p_str.replace("\"","&quot;");
- for (char i=1;i<32;i++) {
-
- char chr[2]={i,0};
- const char hexn[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
- const char hex[8]={'&','#','0','0',hexn[i>>4],hexn[i&0xf],';',0};
-
- p_str=p_str.replace(chr,hex);
- }
-
-
-}
-void ResourceFormatSaverXMLInstance::write_tabs(int p_diff) {
-
- for (int i=0;i<depth+p_diff;i++) {
-
- f->store_8('\t');
- }
-}
-
-void ResourceFormatSaverXMLInstance::write_string(String p_str,bool p_escape) {
-
- /* write an UTF8 string */
- if (p_escape)
- escape(p_str);
-
- f->store_string(p_str);;
- /*
- CharString cs=p_str.utf8();
- const char *data=cs.get_data();
-
- while (*data) {
- f->store_8(*data);
- data++;
- }*/
-
-
-}
-
-void ResourceFormatSaverXMLInstance::enter_tag(const char* p_tag,const String& p_args) {
-
- f->store_8('<');
- int cc = 0;
- const char *c=p_tag;
- while(*c) {
- cc++;
- c++;
- }
- f->store_buffer((const uint8_t*)p_tag,cc);
- if (p_args.length()) {
- f->store_8(' ');
- f->store_string(p_args);
- }
- f->store_8('>');
- depth++;
-
-}
-void ResourceFormatSaverXMLInstance::exit_tag(const char* p_tag) {
-
- depth--;
- f->store_8('<');
- f->store_8('/');
- int cc = 0;
- const char *c=p_tag;
- while(*c) {
- cc++;
- c++;
- }
- f->store_buffer((const uint8_t*)p_tag,cc);
- f->store_8('>');
-
-}
-
-/*
-static bool _check_type(const Variant& p_property) {
-
- if (p_property.get_type()==Variant::_RID)
- return false;
- if (p_property.get_type()==Variant::OBJECT) {
- RES res = p_property;
- if (res.is_null())
- return false;
- }
-
- return true;
-}*/
-
-void ResourceFormatSaverXMLInstance::write_property(const String& p_name,const Variant& p_property,bool *r_ok) {
-
- if (r_ok)
- *r_ok=false;
-
- const char* type;
- String params;
- bool oneliner=true;
-
- switch( p_property.get_type() ) {
-
- case Variant::NIL: type="nil"; break;
- case Variant::BOOL: type="bool"; break;
- case Variant::INT: type="int"; break;
- case Variant::REAL: type="real"; break;
- case Variant::STRING: type="string"; break;
- case Variant::VECTOR2: type="vector2"; break;
- case Variant::RECT2: type="rect2"; break;
- case Variant::VECTOR3: type="vector3"; break;
- case Variant::PLANE: type="plane"; break;
- case Variant::_AABB: type="aabb"; break;
- case Variant::QUAT: type="quaternion"; break;
- case Variant::MATRIX32: type="matrix32"; break;
- case Variant::MATRIX3: type="matrix3"; break;
- case Variant::TRANSFORM: type="transform"; break;
- case Variant::COLOR: type="color"; break;
- case Variant::IMAGE: {
- type="image";
- Image img=p_property;
- if (img.empty()) {
- write_tabs();
- enter_tag(type,"name=\""+p_name+"\"");
- exit_tag(type);
- if (r_ok)
- *r_ok=true;
- return;
- }
- params+="encoding=\"raw\"";
- params+=" width=\""+itos(img.get_width())+"\"";
- params+=" height=\""+itos(img.get_height())+"\"";
- params+=" mipmaps=\""+itos(img.has_mipmaps())+"\"";
-/*
- switch(img.get_format()) {
-
- case Image::FORMAT_L8: params+=" format=\"grayscale\""; break;
- case Image::FORMAT_INTENSITY: params+=" format=\"intensity\""; break;
- case Image::FORMAT_LA8: params+=" format=\"grayscale_alpha\""; break;
- case Image::FORMAT_RGB8: params+=" format=\"rgb\""; break;
- case Image::FORMAT_RGBA8: params+=" format=\"rgba\""; break;
- case Image::FORMAT_INDEXED : params+=" format=\"indexed\""; break;
- case Image::FORMAT_INDEXED_ALPHA: params+=" format=\"indexed_alpha\""; break;
- case Image::FORMAT_DXT1: params+=" format=\"bc1\""; break;
- case Image::FORMAT_DXT3: params+=" format=\"bc2\""; break;
- case Image::FORMAT_DXT5: params+=" format=\"bc3\""; break;
- case Image::FORMAT_ATI1: params+=" format=\"bc4\""; break;
- case Image::FORMAT_ATI2: params+=" format=\"bc5\""; break;
- case Image::FORMAT_PVRTC2: params+=" format=\"pvrtc2\""; break;
- case Image::FORMAT_PVRTC2A: params+=" format=\"pvrtc2a\""; break;
- case Image::FORMAT_PVRTC4: params+=" format=\"pvrtc4\""; break;
- case Image::FORMAT_PVRTC4A: params+=" format=\"pvrtc4a\""; break;
- case Image::FORMAT_ETC: params+=" format=\"etc\""; break;
- case Image::FORMAT_ATC: params+=" format=\"atc\""; break;
- case Image::FORMAT_ATC_ALPHA_EXPLICIT: params+=" format=\"atcae\""; break;
- case Image::FORMAT_ATC_ALPHA_INTERPOLATED: params+=" format=\"atcai\""; break;
- case Image::FORMAT_CUSTOM: params+=" format=\"custom\" custom_size=\""+itos(img.get_data().size())+"\""; break;
- default: {}
- }*/
- } break;
- case Variant::NODE_PATH: type="node_path"; break;
- case Variant::OBJECT: {
- type="resource";
- RES res = p_property;
- if (res.is_null()) {
- write_tabs();
- enter_tag(type,"name=\""+p_name+"\"");
- exit_tag(type);
- if (r_ok)
- *r_ok=true;
-
- return; // don't save it
- }
-
- if (external_resources.has(res)) {
-
- params="external=\""+itos(external_resources[res])+"\"";
- } else {
- params="resource_type=\""+res->get_save_class()+"\"";
-
-
- if (res->get_path().length() && res->get_path().find("::")==-1) {
- //external resource
- String path=relative_paths?local_path.path_to_file(res->get_path()):res->get_path();
- escape(path);
- params+=" path=\""+path+"\"";
- } else {
-
- //internal resource
- ERR_EXPLAIN("Resource was not pre cached for the resource section, bug?");
- ERR_FAIL_COND(!resource_set.has(res));
-
- params+=" path=\"local://"+itos(res->get_subindex())+"\"";
- }
- }
-
- } break;
- case Variant::INPUT_EVENT: type="input_event"; break;
- case Variant::DICTIONARY: type="dictionary"; params="shared=\""+String(p_property.is_shared()?"true":"false")+"\""; oneliner=false; break;
- case Variant::ARRAY: type="array"; params="len=\""+itos(p_property.operator Array().size())+"\" shared=\""+String(p_property.is_shared()?"true":"false")+"\""; oneliner=false; break;
-
- case Variant::RAW_ARRAY: type="raw_array"; params="len=\""+itos(p_property.operator DVector < uint8_t >().size())+"\""; break;
- case Variant::INT_ARRAY: type="int_array"; params="len=\""+itos(p_property.operator DVector < int >().size())+"\""; break;
- case Variant::REAL_ARRAY: type="real_array"; params="len=\""+itos(p_property.operator DVector < real_t >().size())+"\""; break;
- case Variant::STRING_ARRAY: oneliner=false; type="string_array"; params="len=\""+itos(p_property.operator DVector < String >().size())+"\""; break;
- case Variant::VECTOR2_ARRAY: type="vector2_array"; params="len=\""+itos(p_property.operator DVector < Vector2 >().size())+"\""; break;
- case Variant::VECTOR3_ARRAY: type="vector3_array"; params="len=\""+itos(p_property.operator DVector < Vector3 >().size())+"\""; break;
- case Variant::COLOR_ARRAY: type="color_array"; params="len=\""+itos(p_property.operator DVector < Color >().size())+"\""; break;
- default: {
-
- ERR_PRINT("Unknown Variant type.");
- ERR_FAIL();
- }
-
- }
-
- write_tabs();
-
- if (p_name!="") {
- if (params.length())
- enter_tag(type,"name=\""+p_name+"\" "+params);
- else
- enter_tag(type,"name=\""+p_name+"\"");
- } else {
- if (params.length())
- enter_tag(type," "+params);
- else
- enter_tag(type,String());
- }
-
- if (!oneliner)
- f->store_8('\n');
- else
- f->store_8(' ');
-
-
- switch( p_property.get_type() ) {
-
- case Variant::NIL: {
-
- } break;
- case Variant::BOOL: {
-
- write_string( p_property.operator bool() ? "True":"False" );
- } break;
- case Variant::INT: {
-
- write_string( itos(p_property.operator int()) );
- } break;
- case Variant::REAL: {
-
- write_string( rtos(p_property.operator real_t()) );
- } break;
- case Variant::STRING: {
-
- String str=p_property;
- escape(str);
- str="\""+str+"\"";
- write_string( str,false );
- } break;
- case Variant::VECTOR2: {
-
- Vector2 v = p_property;
- write_string( rtoss(v.x) +", "+rtoss(v.y) );
- } break;
- case Variant::RECT2: {
-
- Rect2 aabb = p_property;
- write_string( rtoss(aabb.pos.x) +", "+rtoss(aabb.pos.y) +", "+rtoss(aabb.size.x) +", "+rtoss(aabb.size.y) );
-
- } break;
- case Variant::VECTOR3: {
-
- Vector3 v = p_property;
- write_string( rtoss(v.x) +", "+rtoss(v.y)+", "+rtoss(v.z) );
- } break;
- case Variant::PLANE: {
-
- Plane p = p_property;
- write_string( rtoss(p.normal.x) +", "+rtoss(p.normal.y)+", "+rtoss(p.normal.z)+", "+rtoss(p.d) );
-
- } break;
- case Variant::_AABB: {
-
- AABB aabb = p_property;
- write_string( rtoss(aabb.pos.x) +", "+rtoss(aabb.pos.y) +", "+rtoss(aabb.pos.z) +", "+rtoss(aabb.size.x) +", "+rtoss(aabb.size.y) +", "+rtoss(aabb.size.z) );
-
- } break;
- case Variant::QUAT: {
-
- Quat quat = p_property;
- write_string( rtoss(quat.x)+", "+rtoss(quat.y)+", "+rtoss(quat.z)+", "+rtoss(quat.w)+", ");
-
- } break;
- case Variant::MATRIX32: {
-
- String s;
- Matrix32 m3 = p_property;
- for (int i=0;i<3;i++) {
- for (int j=0;j<2;j++) {
-
- if (i!=0 || j!=0)
- s+=", ";
- s+=rtoss( m3.elements[i][j] );
- }
- }
-
- write_string(s);
-
- } break;
- case Variant::MATRIX3: {
-
- String s;
- Matrix3 m3 = p_property;
- for (int i=0;i<3;i++) {
- for (int j=0;j<3;j++) {
-
- if (i!=0 || j!=0)
- s+=", ";
- s+=rtoss( m3.elements[i][j] );
- }
- }
-
- write_string(s);
-
- } break;
- case Variant::TRANSFORM: {
-
- String s;
- Transform t = p_property;
- Matrix3 &m3 = t.basis;
- for (int i=0;i<3;i++) {
- for (int j=0;j<3;j++) {
-
- if (i!=0 || j!=0)
- s+=", ";
- s+=rtoss( m3.elements[i][j] );
- }
- }
-
- s=s+", "+rtoss(t.origin.x) +", "+rtoss(t.origin.y)+", "+rtoss(t.origin.z);
-
- write_string(s);
- } break;
-
- // misc types
- case Variant::COLOR: {
-
- Color c = p_property;
- write_string( rtoss(c.r) +", "+rtoss(c.g)+", "+rtoss(c.b)+", "+rtoss(c.a) );
-
- } break;
- case Variant::IMAGE: {
-
- String s;
- Image img = p_property;
- DVector<uint8_t> data = img.get_data();
- int len = data.size();
- DVector<uint8_t>::Read r = data.read();
- const uint8_t *ptr=r.ptr();;
- for (int i=0;i<len;i++) {
-
- uint8_t byte = ptr[i];
- const char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
- char str[3]={ hex[byte>>4], hex[byte&0xF], 0};
- s+=str;
- }
-
- write_string(s);
- } break;
- case Variant::NODE_PATH: {
-
- String str=p_property;
- escape(str);
- str="\""+str+"\"";
- write_string( str,false);
-
- } break;
-
- case Variant::OBJECT: {
- /* this saver does not save resources in here
- RES res = p_property;
-
- if (!res.is_null()) {
-
- String path=res->get_path();
- if (!res->is_shared() || !path.length()) {
- // if no path, or path is from inside a scene
- write_object( *res );
- }
-
- }
- */
-
- } break;
- case Variant::INPUT_EVENT: {
-
- write_string( p_property.operator String() );
- } break;
- case Variant::DICTIONARY: {
-
- Dictionary dict = p_property;
-
-
- List<Variant> keys;
- dict.get_key_list(&keys);
- keys.sort();
-
- for(List<Variant>::Element *E=keys.front();E;E=E->next()) {
-
- //if (!_check_type(dict[E->get()]))
- // continue;
- bool ok;
- write_property("",E->get(),&ok);
- ERR_CONTINUE(!ok);
-
- write_property("",dict[E->get()],&ok);
- if (!ok)
- write_property("",Variant()); //at least make the file consistent..
- }
-
-
-
-
- } break;
- case Variant::ARRAY: {
-
- Array array = p_property;
- int len=array.size();
- for (int i=0;i<len;i++) {
-
- write_property("",array[i]);
-
- }
-
- } break;
-
- case Variant::RAW_ARRAY: {
-
- String s;
- DVector<uint8_t> data = p_property;
- int len = data.size();
- DVector<uint8_t>::Read r = data.read();
- const uint8_t *ptr=r.ptr();;
- for (int i=0;i<len;i++) {
-
- uint8_t byte = ptr[i];
- const char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
- char str[3]={ hex[byte>>4], hex[byte&0xF], 0};
- s+=str;
- }
-
- write_string(s,false);
-
- } break;
- case Variant::INT_ARRAY: {
-
- DVector<int> data = p_property;
- int len = data.size();
- DVector<int>::Read r = data.read();
- const int *ptr=r.ptr();;
- write_tabs();
-
- for (int i=0;i<len;i++) {
-
- if (i>0)
- write_string(", ",false);
-
- write_string(itos(ptr[i]),false);
- }
-
-
-
- } break;
- case Variant::REAL_ARRAY: {
-
- DVector<real_t> data = p_property;
- int len = data.size();
- DVector<real_t>::Read r = data.read();
- const real_t *ptr=r.ptr();;
- write_tabs();
- String cm=", " ;
-
- for (int i=0;i<len;i++) {
-
- if (i>0)
- write_string(cm,false);
- write_string(rtoss(ptr[i]),false);
- }
-
-
- } break;
- case Variant::STRING_ARRAY: {
-
- DVector<String> data = p_property;
- int len = data.size();
- DVector<String>::Read r = data.read();
- const String *ptr=r.ptr();;
- String s;
- //write_string("\n");
-
-
-
- for (int i=0;i<len;i++) {
-
- write_tabs(0);
- String str=ptr[i];
- escape(str);
- write_string("<string> \""+str+"\" </string>\n",false);
- }
- } break;
- case Variant::VECTOR2_ARRAY: {
-
- DVector<Vector2> data = p_property;
- int len = data.size();
- DVector<Vector2>::Read r = data.read();
- const Vector2 *ptr=r.ptr();;
- write_tabs();
-
- for (int i=0;i<len;i++) {
-
- if (i>0)
- write_string(", ",false);
- write_string(rtoss(ptr[i].x),false);
- write_string(", "+rtoss(ptr[i].y),false);
-
- }
-
-
- } break;
- case Variant::VECTOR3_ARRAY: {
-
- DVector<Vector3> data = p_property;
- int len = data.size();
- DVector<Vector3>::Read r = data.read();
- const Vector3 *ptr=r.ptr();;
- write_tabs();
-
- for (int i=0;i<len;i++) {
-
- if (i>0)
- write_string(", ",false);
- write_string(rtoss(ptr[i].x),false);
- write_string(", "+rtoss(ptr[i].y),false);
- write_string(", "+rtoss(ptr[i].z),false);
-
- }
-
-
- } break;
- case Variant::COLOR_ARRAY: {
-
- DVector<Color> data = p_property;
- int len = data.size();
- DVector<Color>::Read r = data.read();
- const Color *ptr=r.ptr();;
- write_tabs();
-
- for (int i=0;i<len;i++) {
-
- if (i>0)
- write_string(", ",false);
-
- write_string(rtoss(ptr[i].r),false);
- write_string(", "+rtoss(ptr[i].g),false);
- write_string(", "+rtoss(ptr[i].b),false);
- write_string(", "+rtoss(ptr[i].a),false);
-
- }
-
- } break;
- default: {}
-
- }
- if (oneliner)
- f->store_8(' ');
- else
- write_tabs(-1);
- exit_tag(type);
-
- f->store_8('\n');
-
- if (r_ok)
- *r_ok=true;
-
-}
-
-
-void ResourceFormatSaverXMLInstance::_find_resources(const Variant& p_variant,bool p_main) {
-
-
- switch(p_variant.get_type()) {
- case Variant::OBJECT: {
-
-
- RES res = p_variant.operator RefPtr();
-
- if (res.is_null() || external_resources.has(res))
- return;
-
- if (!p_main && (!bundle_resources ) && res->get_path().length() && res->get_path().find("::") == -1 ) {
- int index = external_resources.size();
- external_resources[res]=index;
- return;
- }
-
- if (resource_set.has(res))
- return;
-
- List<PropertyInfo> property_list;
-
- res->get_property_list( &property_list );
- property_list.sort();
-
- List<PropertyInfo>::Element *I=property_list.front();
-
- while(I) {
-
- PropertyInfo pi=I->get();
-
- if (pi.usage&PROPERTY_USAGE_STORAGE) {
-
- Variant v=res->get(I->get().name);
- _find_resources(v);
- }
-
- I=I->next();
- }
-
- resource_set.insert( res ); //saved after, so the childs it needs are available when loaded
- saved_resources.push_back(res);
-
- } break;
- case Variant::ARRAY: {
-
- Array varray=p_variant;
- int len=varray.size();
- for(int i=0;i<len;i++) {
-
- Variant v=varray.get(i);
- _find_resources(v);
- }
-
- } break;
- case Variant::DICTIONARY: {
-
- Dictionary d=p_variant;
- List<Variant> keys;
- d.get_key_list(&keys);
- for(List<Variant>::Element *E=keys.front();E;E=E->next()) {
-
- Variant v = d[E->get()];
- _find_resources(v);
- }
- } break;
- default: {}
- }
-
-}
-
-
-
-Error ResourceFormatSaverXMLInstance::save(const String &p_path,const RES& p_resource,uint32_t p_flags) {
-
- Error err;
- f = FileAccess::open(p_path, FileAccess::WRITE,&err);
- ERR_FAIL_COND_V( err, ERR_CANT_OPEN );
- FileAccessRef _fref(f);
-
- local_path = GlobalConfig::get_singleton()->localize_path(p_path);
-
- relative_paths=p_flags&ResourceSaver::FLAG_RELATIVE_PATHS;
- skip_editor=p_flags&ResourceSaver::FLAG_OMIT_EDITOR_PROPERTIES;
- bundle_resources=p_flags&ResourceSaver::FLAG_BUNDLE_RESOURCES;
- takeover_paths=p_flags&ResourceSaver::FLAG_REPLACE_SUBRESOURCE_PATHS;
- if (!p_path.begins_with("res://")) {
- takeover_paths=false;
- }
- depth=0;
-
- // save resources
- _find_resources(p_resource,true);
-
- ERR_FAIL_COND_V(err!=OK,err);
-
- write_string("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>",false); //no escape
- write_string("\n",false);
- enter_tag("resource_file","type=\""+p_resource->get_class()+"\" subresource_count=\""+itos(saved_resources.size()+external_resources.size())+"\" version=\""+itos(VERSION_MAJOR)+"."+itos(VERSION_MINOR)+"\" version_name=\""+VERSION_FULL_NAME+"\"");
- write_string("\n",false);
-
- for(Map<RES,int>::Element *E=external_resources.front();E;E=E->next()) {
-
- write_tabs();
- String p = E->key()->get_path();
-
- enter_tag("ext_resource","path=\""+p+"\" type=\""+E->key()->get_save_class()+"\" index=\""+itos(E->get())+"\""); //bundled
- exit_tag("ext_resource"); //bundled
- write_string("\n",false);
- }
-
- Set<int> used_indices;
-
- for(List<RES>::Element *E=saved_resources.front();E;E=E->next()) {
-
- RES res = E->get();
- if (E->next() && (res->get_path()=="" || res->get_path().find("::") != -1 )) {
-
- if (res->get_subindex()!=0) {
- if (used_indices.has(res->get_subindex())) {
- res->set_subindex(0); //repeated
- } else {
- used_indices.insert(res->get_subindex());
- }
- }
- }
- }
-
- for(List<RES>::Element *E=saved_resources.front();E;E=E->next()) {
-
- RES res = E->get();
- ERR_CONTINUE(!resource_set.has(res));
- bool main = (E->next()==NULL);
-
- write_tabs();
-
- if (main)
- enter_tag("main_resource",""); //bundled
- else if (res->get_path().length() && res->get_path().find("::") == -1 )
- enter_tag("resource","type=\""+res->get_class()+"\" path=\""+res->get_path()+"\""); //bundled
- else {
-
- if (res->get_subindex()==0) {
- int new_subindex=1;
- if (used_indices.size()) {
- new_subindex=used_indices.back()->get()+1;
- }
-
- res->set_subindex(new_subindex);
- used_indices.insert(new_subindex);
- }
-
- int idx = res->get_subindex();
- enter_tag("resource","type=\""+res->get_class()+"\" path=\"local://"+itos(idx)+"\"");
- if (takeover_paths) {
- res->set_path(p_path+"::"+itos(idx),true);
- }
-#ifdef TOOLS_ENABLED
- res->set_edited(false);
-#endif
-
-
- }
- write_string("\n",false);
-
-
- List<PropertyInfo> property_list;
- res->get_property_list(&property_list);
-// property_list.sort();
- for(List<PropertyInfo>::Element *PE = property_list.front();PE;PE=PE->next()) {
-
-
- if (skip_editor && PE->get().name.begins_with("__editor"))
- continue;
-
- if (PE->get().usage&PROPERTY_USAGE_STORAGE ) {
-
- String name = PE->get().name;
- Variant value = res->get(name);
-
-
- if ((PE->get().usage&PROPERTY_USAGE_STORE_IF_NONZERO && value.is_zero())||(PE->get().usage&PROPERTY_USAGE_STORE_IF_NONONE && value.is_one()) )
- continue;
-
-
- write_property(name,value);
- }
-
-
- }
-
- write_string("\n",false);
- write_tabs(-1);
- if (main)
- exit_tag("main_resource");
- else
- exit_tag("resource");
-
- write_string("\n",false);
- }
-
- exit_tag("resource_file");
- if (f->get_error()!=OK && f->get_error()!=ERR_FILE_EOF) {
- f->close();
- return ERR_CANT_CREATE;
- }
-
- f->close();
- //memdelete(f);
-
- return OK;
-}
-
-
-
-Error ResourceFormatSaverXML::save(const String &p_path,const RES& p_resource,uint32_t p_flags) {
-
- ResourceFormatSaverXMLInstance saver;
- return saver.save(p_path,p_resource,p_flags);
-
-}
-
-bool ResourceFormatSaverXML::recognize(const RES& p_resource) const {
-
-
- return true; // all recognized!
-}
-void ResourceFormatSaverXML::get_recognized_extensions(const RES& p_resource,List<String> *p_extensions) const {
-
-
- //here comes the sun, lalalala
- String base = p_resource->get_base_extension().to_lower();
- p_extensions->push_back("xml");
- if (base!="res") {
-
- p_extensions->push_back("x"+base);
- }
-
-}
-
-ResourceFormatSaverXML* ResourceFormatSaverXML::singleton=NULL;
-ResourceFormatSaverXML::ResourceFormatSaverXML() {
- singleton=this;
-}
diff --git a/core/io/resource_format_xml.h b/core/io/resource_format_xml.h
deleted file mode 100644
index 097c2e43f8..0000000000
--- a/core/io/resource_format_xml.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*************************************************************************/
-/* resource_format_xml.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 RESOURCE_FORMAT_XML_H
-#define RESOURCE_FORMAT_XML_H
-
-#include "io/resource_loader.h"
-#include "io/resource_saver.h"
-#include "os/file_access.h"
-
-
-
-class ResourceInteractiveLoaderXML : public ResourceInteractiveLoader {
-
- String local_path;
- String res_path;
-
- FileAccess *f;
-
- struct Tag {
-
- String name;
- HashMap<String,String> args;
-
- };
-
- _FORCE_INLINE_ Error _parse_array_element(Vector<char> &buff,bool p_number_only,FileAccess *f,bool *end);
-
-
- struct ExtResource {
- String path;
- String type;
- };
-
-
- Map<String,String> remaps;
-
- Map<int,ExtResource> ext_resources;
-
- int resources_total;
- int resource_current;
- String resource_type;
-
- mutable int lines;
- uint8_t get_char() const;
- int get_current_line() const;
-
-friend class ResourceFormatLoaderXML;
- List<Tag> tag_stack;
-
- List<RES> resource_cache;
- Tag* parse_tag(bool* r_exit=NULL,bool p_printerr=true,List<String> *r_order=NULL);
- Error close_tag(const String& p_name);
- _FORCE_INLINE_ void unquote(String& p_str);
- Error goto_end_of_tag();
- Error parse_property_data(String &r_data);
- Error parse_property(Variant& r_v, String &r_name);
-
- Error error;
-
- RES resource;
-
-public:
-
- virtual void set_local_path(const String& p_local_path);
- virtual Ref<Resource> get_resource();
- virtual Error poll();
- virtual int get_stage() const;
- virtual int get_stage_count() const;
-
- void open(FileAccess *p_f);
- String recognize(FileAccess *p_f);
- void get_dependencies(FileAccess *p_f, List<String> *p_dependencies, bool p_add_types);
- Error rename_dependencies(FileAccess *p_f, const String &p_path,const Map<String,String>& p_map);
-
-
- ~ResourceInteractiveLoaderXML();
-
-};
-
-class ResourceFormatLoaderXML : public ResourceFormatLoader {
-public:
-
- virtual Ref<ResourceInteractiveLoader> load_interactive(const String &p_path,Error *r_error=NULL);
- virtual void get_recognized_extensions_for_type(const String& p_type,List<String> *p_extensions) const;
- virtual void get_recognized_extensions(List<String> *p_extensions) const;
- virtual bool handles_type(const String& p_type) const;
- virtual String get_resource_type(const String &p_path) const;
- virtual void get_dependencies(const String& p_path, List<String> *p_dependencies, bool p_add_types=false);
- virtual Error rename_dependencies(const String &p_path,const Map<String,String>& p_map);
-
-
-};
-
-
-////////////////////////////////////////////////////////////////////////////////////////////
-
-
-class ResourceFormatSaverXMLInstance {
-
- String local_path;
-
-
-
- bool takeover_paths;
- bool relative_paths;
- bool bundle_resources;
- bool skip_editor;
- FileAccess *f;
- int depth;
- Set<RES> resource_set;
- List<RES> saved_resources;
- Map<RES,int> external_resources;
-
- void enter_tag(const char* p_tag,const String& p_args=String());
- void exit_tag(const char* p_tag);
-
- void _find_resources(const Variant& p_variant,bool p_main=false);
- void write_property(const String& p_name,const Variant& p_property,bool *r_ok=NULL);
-
-
- void escape(String& p_str);
- void write_tabs(int p_diff=0);
- void write_string(String p_str,bool p_escape=true);
-
-
-public:
-
- Error save(const String &p_path,const RES& p_resource,uint32_t p_flags=0);
-
-
-};
-
-class ResourceFormatSaverXML : public ResourceFormatSaver {
-public:
- static ResourceFormatSaverXML* singleton;
- virtual Error save(const String &p_path,const RES& p_resource,uint32_t p_flags=0);
- virtual bool recognize(const RES& p_resource) const;
- virtual void get_recognized_extensions(const RES& p_resource,List<String> *p_extensions) const;
-
- ResourceFormatSaverXML();
-};
-
-
-#endif // RESOURCE_FORMAT_XML_H
diff --git a/core/io/stream_peer.cpp b/core/io/stream_peer.cpp
index 218e17278e..a2812edb81 100644
--- a/core/io/stream_peer.cpp
+++ b/core/io/stream_peer.cpp
@@ -29,16 +29,16 @@
#include "stream_peer.h"
#include "io/marshalls.h"
-Error StreamPeer::_put_data(const DVector<uint8_t>& p_data) {
+Error StreamPeer::_put_data(const PoolVector<uint8_t>& p_data) {
int len = p_data.size();
if (len==0)
return OK;
- DVector<uint8_t>::Read r = p_data.read();
+ PoolVector<uint8_t>::Read r = p_data.read();
return put_data(&r[0],len);
}
-Array StreamPeer::_put_partial_data(const DVector<uint8_t>& p_data) {
+Array StreamPeer::_put_partial_data(const PoolVector<uint8_t>& p_data) {
Array ret;
@@ -49,7 +49,7 @@ Array StreamPeer::_put_partial_data(const DVector<uint8_t>& p_data) {
return ret;
}
- DVector<uint8_t>::Read r = p_data.read();
+ PoolVector<uint8_t>::Read r = p_data.read();
int sent;
Error err = put_partial_data(&r[0],len,sent);
@@ -66,18 +66,18 @@ Array StreamPeer::_get_data(int p_bytes) {
Array ret;
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(p_bytes);
if (data.size()!=p_bytes) {
ret.push_back(ERR_OUT_OF_MEMORY);
- ret.push_back(DVector<uint8_t>());
+ ret.push_back(PoolVector<uint8_t>());
return ret;
}
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
Error err = get_data(&w[0],p_bytes);
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
ret.push_back(err);
ret.push_back(data);
return ret;
@@ -88,19 +88,19 @@ Array StreamPeer::_get_partial_data(int p_bytes) {
Array ret;
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(p_bytes);
if (data.size()!=p_bytes) {
ret.push_back(ERR_OUT_OF_MEMORY);
- ret.push_back(DVector<uint8_t>());
+ ret.push_back(PoolVector<uint8_t>());
return ret;
}
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
int received;
Error err = get_partial_data(&w[0],p_bytes,received);
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
if (err!=OK) {
data.resize(0);
@@ -454,7 +454,7 @@ Error StreamPeerBuffer::put_data(const uint8_t* p_data,int p_bytes) {
}
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
copymem(&w[pointer],p_data,p_bytes);
pointer+=p_bytes;
@@ -490,7 +490,7 @@ Error StreamPeerBuffer::get_partial_data(uint8_t* p_buffer, int p_bytes,int &r_r
r_received=p_bytes;
}
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
copymem(p_buffer,r.ptr(),r_received);
}
@@ -520,13 +520,13 @@ void StreamPeerBuffer::resize(int p_size){
data.resize(p_size);
}
-void StreamPeerBuffer::set_data_array(const DVector<uint8_t> & p_data){
+void StreamPeerBuffer::set_data_array(const PoolVector<uint8_t> & p_data){
data=p_data;
pointer=0;
}
-DVector<uint8_t> StreamPeerBuffer::get_data_array() const{
+PoolVector<uint8_t> StreamPeerBuffer::get_data_array() const{
return data;
}
diff --git a/core/io/stream_peer.h b/core/io/stream_peer.h
index 232a908dd7..eb0f90ba50 100644
--- a/core/io/stream_peer.h
+++ b/core/io/stream_peer.h
@@ -38,8 +38,8 @@ protected:
static void _bind_methods();
//bind helpers
- Error _put_data(const DVector<uint8_t>& p_data);
- Array _put_partial_data(const DVector<uint8_t>& p_data);
+ Error _put_data(const PoolVector<uint8_t>& p_data);
+ Array _put_partial_data(const PoolVector<uint8_t>& p_data);
Array _get_data(int p_bytes);
Array _get_partial_data(int p_bytes);
@@ -96,7 +96,7 @@ class StreamPeerBuffer : public StreamPeer {
GDCLASS(StreamPeerBuffer,StreamPeer);
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
int pointer;
protected:
@@ -116,8 +116,8 @@ public:
void resize(int p_size);
- void set_data_array(const DVector<uint8_t> & p_data);
- DVector<uint8_t> get_data_array() const;
+ void set_data_array(const PoolVector<uint8_t> & p_data);
+ PoolVector<uint8_t> get_data_array() const;
void clear();
diff --git a/core/io/tcp_server.cpp b/core/io/tcp_server.cpp
index 751dfbadca..bfa5dce58f 100644
--- a/core/io/tcp_server.cpp
+++ b/core/io/tcp_server.cpp
@@ -44,7 +44,7 @@ TCP_Server* TCP_Server::create() {
return _create();
}
-Error TCP_Server::_listen(uint16_t p_port, DVector<String> p_accepted_hosts) {
+Error TCP_Server::_listen(uint16_t p_port, PoolVector<String> p_accepted_hosts) {
List<String> hosts;
for(int i=0;i<p_accepted_hosts.size();i++)
@@ -62,7 +62,7 @@ void TCP_Server::set_ip_type(IP::Type p_type) {
void TCP_Server::_bind_methods() {
ClassDB::bind_method(_MD("set_ip_type","ip_type"),&TCP_Server::set_ip_type);
- ClassDB::bind_method(_MD("listen","port","accepted_hosts"),&TCP_Server::_listen,DEFVAL(DVector<String>()));
+ ClassDB::bind_method(_MD("listen","port","accepted_hosts"),&TCP_Server::_listen,DEFVAL(PoolVector<String>()));
ClassDB::bind_method(_MD("is_connection_available"),&TCP_Server::is_connection_available);
ClassDB::bind_method(_MD("take_connection"),&TCP_Server::take_connection);
ClassDB::bind_method(_MD("stop"),&TCP_Server::stop);
diff --git a/core/io/tcp_server.h b/core/io/tcp_server.h
index 5fd65575f6..3d7b3ddd8d 100644
--- a/core/io/tcp_server.h
+++ b/core/io/tcp_server.h
@@ -43,7 +43,7 @@ protected:
static TCP_Server* (*_create)();
//bind helper
- Error _listen(uint16_t p_port, DVector<String> p_accepted_hosts=DVector<String>());
+ Error _listen(uint16_t p_port, PoolVector<String> p_accepted_hosts=PoolVector<String>());
static void _bind_methods();
public:
diff --git a/core/math/a_star.cpp b/core/math/a_star.cpp
index 29f61834b4..0d6997183f 100644
--- a/core/math/a_star.cpp
+++ b/core/math/a_star.cpp
@@ -295,10 +295,10 @@ bool AStar::_solve(Point* begin_point, Point* end_point) {
}
-DVector<Vector3> AStar::get_point_path(int p_from_id, int p_to_id) {
+PoolVector<Vector3> AStar::get_point_path(int p_from_id, int p_to_id) {
- ERR_FAIL_COND_V(!points.has(p_from_id),DVector<Vector3>());
- ERR_FAIL_COND_V(!points.has(p_to_id),DVector<Vector3>());
+ ERR_FAIL_COND_V(!points.has(p_from_id),PoolVector<Vector3>());
+ ERR_FAIL_COND_V(!points.has(p_to_id),PoolVector<Vector3>());
pass++;
@@ -307,7 +307,7 @@ DVector<Vector3> AStar::get_point_path(int p_from_id, int p_to_id) {
Point* b = points[p_to_id];
if (a==b) {
- DVector<Vector3> ret;
+ PoolVector<Vector3> ret;
ret.push_back(a->pos);
return ret;
}
@@ -319,7 +319,7 @@ DVector<Vector3> AStar::get_point_path(int p_from_id, int p_to_id) {
bool found_route=_solve(begin_point,end_point);
if (!found_route)
- return DVector<Vector3>();
+ return PoolVector<Vector3>();
//midpoints
Point *p=end_point;
@@ -329,11 +329,11 @@ DVector<Vector3> AStar::get_point_path(int p_from_id, int p_to_id) {
p=p->prev_point;
}
- DVector<Vector3> path;
+ PoolVector<Vector3> path;
path.resize(pc);
{
- DVector<Vector3>::Write w = path.write();
+ PoolVector<Vector3>::Write w = path.write();
Point *p=end_point;
int idx=pc-1;
@@ -351,10 +351,10 @@ DVector<Vector3> AStar::get_point_path(int p_from_id, int p_to_id) {
}
-DVector<int> AStar::get_id_path(int p_from_id, int p_to_id) {
+PoolVector<int> AStar::get_id_path(int p_from_id, int p_to_id) {
- ERR_FAIL_COND_V(!points.has(p_from_id),DVector<int>());
- ERR_FAIL_COND_V(!points.has(p_to_id),DVector<int>());
+ ERR_FAIL_COND_V(!points.has(p_from_id),PoolVector<int>());
+ ERR_FAIL_COND_V(!points.has(p_to_id),PoolVector<int>());
pass++;
@@ -363,7 +363,7 @@ DVector<int> AStar::get_id_path(int p_from_id, int p_to_id) {
Point* b = points[p_to_id];
if (a==b) {
- DVector<int> ret;
+ PoolVector<int> ret;
ret.push_back(a->id);
return ret;
}
@@ -375,7 +375,7 @@ DVector<int> AStar::get_id_path(int p_from_id, int p_to_id) {
bool found_route=_solve(begin_point,end_point);
if (!found_route)
- return DVector<int>();
+ return PoolVector<int>();
//midpoints
Point *p=end_point;
@@ -385,11 +385,11 @@ DVector<int> AStar::get_id_path(int p_from_id, int p_to_id) {
p=p->prev_point;
}
- DVector<int> path;
+ PoolVector<int> path;
path.resize(pc);
{
- DVector<int>::Write w = path.write();
+ PoolVector<int>::Write w = path.write();
p=end_point;
int idx=pc-1;
diff --git a/core/math/a_star.h b/core/math/a_star.h
index 66a983a6ce..35e6ead226 100644
--- a/core/math/a_star.h
+++ b/core/math/a_star.h
@@ -113,8 +113,8 @@ public:
int get_closest_point(const Vector3& p_point) const;
Vector3 get_closest_pos_in_segment(const Vector3& p_point) const;
- DVector<Vector3> get_point_path(int p_from_id, int p_to_id);
- DVector<int> get_id_path(int p_from_id, int p_to_id);
+ PoolVector<Vector3> get_point_path(int p_from_id, int p_to_id);
+ PoolVector<int> get_id_path(int p_from_id, int p_to_id);
AStar();
~AStar();
diff --git a/core/math/bsp_tree.cpp b/core/math/bsp_tree.cpp
index 5242abfa3b..b7194d7ffb 100644
--- a/core/math/bsp_tree.cpp
+++ b/core/math/bsp_tree.cpp
@@ -484,7 +484,7 @@ BSP_Tree::operator Variant() const {
d["planes"]=plane_values;
- DVector<int> dst_nodes;
+ PoolVector<int> dst_nodes;
dst_nodes.resize(nodes.size()*3);
for(int i=0;i<nodes.size();i++) {
@@ -514,19 +514,19 @@ BSP_Tree::BSP_Tree(const Variant& p_variant) {
ERR_FAIL_COND(!d.has("aabb"));
ERR_FAIL_COND(!d.has("error_radius"));
- DVector<int> src_nodes = d["nodes"];
+ PoolVector<int> src_nodes = d["nodes"];
ERR_FAIL_COND(src_nodes.size()%3);
if (d["planes"].get_type()==Variant::REAL_ARRAY) {
- DVector<float> src_planes=d["planes"];
+ PoolVector<float> src_planes=d["planes"];
int plane_count=src_planes.size();
ERR_FAIL_COND(plane_count%4);
planes.resize(plane_count/4);
if (plane_count) {
- DVector<float>::Read r = src_planes.read();
+ PoolVector<float>::Read r = src_planes.read();
for(int i=0;i<plane_count/4;i++) {
planes[i].normal.x=r[i*4+0];
@@ -549,7 +549,7 @@ BSP_Tree::BSP_Tree(const Variant& p_variant) {
// int node_count = src_nodes.size();
nodes.resize(src_nodes.size()/3);
- DVector<int>::Read r = src_nodes.read();
+ PoolVector<int>::Read r = src_nodes.read();
for(int i=0;i<nodes.size();i++) {
@@ -560,12 +560,12 @@ BSP_Tree::BSP_Tree(const Variant& p_variant) {
}
-BSP_Tree::BSP_Tree(const DVector<Face3>& p_faces,float p_error_radius) {
+BSP_Tree::BSP_Tree(const PoolVector<Face3>& p_faces,float p_error_radius) {
// compute aabb
int face_count=p_faces.size();
- DVector<Face3>::Read faces_r=p_faces.read();
+ PoolVector<Face3>::Read faces_r=p_faces.read();
const Face3 *facesptr = faces_r.ptr();
diff --git a/core/math/bsp_tree.h b/core/math/bsp_tree.h
index 3913e3d34a..236b6e5ac2 100644
--- a/core/math/bsp_tree.h
+++ b/core/math/bsp_tree.h
@@ -91,7 +91,7 @@ public:
BSP_Tree();
BSP_Tree(const Variant& p_variant);
- BSP_Tree(const DVector<Face3>& p_faces,float p_error_radius=0);
+ BSP_Tree(const PoolVector<Face3>& p_faces,float p_error_radius=0);
BSP_Tree(const Vector<Node> &p_nodes, const Vector<Plane> &p_planes, const AABB& p_aabb,float p_error_radius=0);
~BSP_Tree();
diff --git a/core/math/geometry.cpp b/core/math/geometry.cpp
index 91f7cf179a..3232d36262 100644
--- a/core/math/geometry.cpp
+++ b/core/math/geometry.cpp
@@ -204,21 +204,21 @@ static bool _group_face(_FaceClassify *p_faces, int len, int p_index,int p_group
}
-DVector< DVector< Face3 > > Geometry::separate_objects( DVector< Face3 > p_array ) {
+PoolVector< PoolVector< Face3 > > Geometry::separate_objects( PoolVector< Face3 > p_array ) {
- DVector< DVector< Face3 > > objects;
+ PoolVector< PoolVector< Face3 > > objects;
int len = p_array.size();
- DVector<Face3>::Read r=p_array.read();
+ PoolVector<Face3>::Read r=p_array.read();
const Face3* arrayptr = r.ptr();
- DVector< _FaceClassify> fc;
+ PoolVector< _FaceClassify> fc;
fc.resize( len );
- DVector< _FaceClassify >::Write fcw=fc.write();
+ PoolVector< _FaceClassify >::Write fcw=fc.write();
_FaceClassify * _fcptr = fcw.ptr();
@@ -231,7 +231,7 @@ DVector< DVector< Face3 > > Geometry::separate_objects( DVector< Face3 > p_array
if (error) {
- ERR_FAIL_COND_V(error, DVector< DVector< Face3 > >() ); // invalid geometry
+ ERR_FAIL_COND_V(error, PoolVector< PoolVector< Face3 > >() ); // invalid geometry
}
/* group connected faces in separate objects */
@@ -257,8 +257,8 @@ DVector< DVector< Face3 > > Geometry::separate_objects( DVector< Face3 > p_array
if (group>=0) {
objects.resize(group);
- DVector< DVector<Face3> >::Write obw=objects.write();
- DVector< Face3 > *group_faces = obw.ptr();
+ PoolVector< PoolVector<Face3> >::Write obw=objects.write();
+ PoolVector< Face3 > *group_faces = obw.ptr();
for (int i=0;i<len;i++) {
if (!_fcptr[i].valid)
@@ -487,7 +487,7 @@ static inline void _mark_outside(uint8_t*** p_cell_status,int x,int y,int z,int
}
}
-static inline void _build_faces(uint8_t*** p_cell_status,int x,int y,int z,int len_x,int len_y,int len_z,DVector<Face3>& p_faces) {
+static inline void _build_faces(uint8_t*** p_cell_status,int x,int y,int z,int len_x,int len_y,int len_z,PoolVector<Face3>& p_faces) {
ERR_FAIL_INDEX(x,len_x);
ERR_FAIL_INDEX(y,len_y);
@@ -580,13 +580,13 @@ static inline void _build_faces(uint8_t*** p_cell_status,int x,int y,int z,int l
}
-DVector< Face3 > Geometry::wrap_geometry( DVector< Face3 > p_array,float *p_error ) {
+PoolVector< Face3 > Geometry::wrap_geometry( PoolVector< Face3 > p_array,float *p_error ) {
#define _MIN_SIZE 1.0
#define _MAX_LENGTH 20
int face_count=p_array.size();
- DVector<Face3>::Read facesr=p_array.read();
+ PoolVector<Face3>::Read facesr=p_array.read();
const Face3 *faces = facesr.ptr();
AABB global_aabb;
@@ -696,7 +696,7 @@ DVector< Face3 > Geometry::wrap_geometry( DVector< Face3 > p_array,float *p_erro
//print_line("Wrapper (3/6): Building Faces");
- DVector<Face3> wrapped_faces;
+ PoolVector<Face3> wrapped_faces;
for (int i=0;i<div_x;i++) {
@@ -714,7 +714,7 @@ DVector< Face3 > Geometry::wrap_geometry( DVector< Face3 > p_array,float *p_erro
// transform face vertices to global coords
int wrapped_faces_count=wrapped_faces.size();
- DVector<Face3>::Write wrapped_facesw=wrapped_faces.write();
+ PoolVector<Face3>::Write wrapped_facesw=wrapped_faces.write();
Face3* wrapped_faces_ptr=wrapped_facesw.ptr();
for(int i=0;i<wrapped_faces_count;i++) {
@@ -748,7 +748,7 @@ DVector< Face3 > Geometry::wrap_geometry( DVector< Face3 > p_array,float *p_erro
return wrapped_faces;
}
-Geometry::MeshData Geometry::build_convex_mesh(const DVector<Plane> &p_planes) {
+Geometry::MeshData Geometry::build_convex_mesh(const PoolVector<Plane> &p_planes) {
MeshData mesh;
@@ -896,9 +896,9 @@ Geometry::MeshData Geometry::build_convex_mesh(const DVector<Plane> &p_planes) {
}
-DVector<Plane> Geometry::build_box_planes(const Vector3& p_extents) {
+PoolVector<Plane> Geometry::build_box_planes(const Vector3& p_extents) {
- DVector<Plane> planes;
+ PoolVector<Plane> planes;
planes.push_back( Plane( Vector3(1,0,0), p_extents.x ) );
planes.push_back( Plane( Vector3(-1,0,0), p_extents.x ) );
@@ -910,9 +910,9 @@ DVector<Plane> Geometry::build_box_planes(const Vector3& p_extents) {
return planes;
}
-DVector<Plane> Geometry::build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis) {
+PoolVector<Plane> Geometry::build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis) {
- DVector<Plane> planes;
+ PoolVector<Plane> planes;
for (int i=0;i<p_sides;i++) {
@@ -933,10 +933,10 @@ DVector<Plane> Geometry::build_cylinder_planes(float p_radius, float p_height, i
}
-DVector<Plane> Geometry::build_sphere_planes(float p_radius, int p_lats,int p_lons, Vector3::Axis p_axis) {
+PoolVector<Plane> Geometry::build_sphere_planes(float p_radius, int p_lats,int p_lons, Vector3::Axis p_axis) {
- DVector<Plane> planes;
+ PoolVector<Plane> planes;
Vector3 axis;
axis[p_axis]=1.0;
@@ -969,9 +969,9 @@ DVector<Plane> Geometry::build_sphere_planes(float p_radius, int p_lats,int p_lo
}
-DVector<Plane> Geometry::build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis) {
+PoolVector<Plane> Geometry::build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis) {
- DVector<Plane> planes;
+ PoolVector<Plane> planes;
Vector3 axis;
axis[p_axis]=1.0;
diff --git a/core/math/geometry.h b/core/math/geometry.h
index dae556cd09..9800e5513c 100644
--- a/core/math/geometry.h
+++ b/core/math/geometry.h
@@ -808,9 +808,9 @@ public:
}
- static DVector< DVector< Face3 > > separate_objects( DVector< Face3 > p_array );
+ static PoolVector< PoolVector< Face3 > > separate_objects( PoolVector< Face3 > p_array );
- static DVector< Face3 > wrap_geometry( DVector< Face3 > p_array, float *p_error=NULL ); ///< create a "wrap" that encloses the given geometry
+ static PoolVector< Face3 > wrap_geometry( PoolVector< Face3 > p_array, float *p_error=NULL ); ///< create a "wrap" that encloses the given geometry
struct MeshData {
@@ -919,11 +919,11 @@ public:
return H;
}
- static MeshData build_convex_mesh(const DVector<Plane> &p_planes);
- static DVector<Plane> build_sphere_planes(float p_radius, int p_lats, int p_lons, Vector3::Axis p_axis=Vector3::AXIS_Z);
- static DVector<Plane> build_box_planes(const Vector3& p_extents);
- static DVector<Plane> build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis=Vector3::AXIS_Z);
- static DVector<Plane> build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis=Vector3::AXIS_Z);
+ static MeshData build_convex_mesh(const PoolVector<Plane> &p_planes);
+ static PoolVector<Plane> build_sphere_planes(float p_radius, int p_lats, int p_lons, Vector3::Axis p_axis=Vector3::AXIS_Z);
+ static PoolVector<Plane> build_box_planes(const Vector3& p_extents);
+ static PoolVector<Plane> build_cylinder_planes(float p_radius, float p_height, int p_sides, Vector3::Axis p_axis=Vector3::AXIS_Z);
+ static PoolVector<Plane> build_capsule_planes(float p_radius, float p_height, int p_sides, int p_lats, Vector3::Axis p_axis=Vector3::AXIS_Z);
static void make_atlas(const Vector<Size2i>& p_rects,Vector<Point2i>& r_result, Size2i& r_size);
diff --git a/core/math/triangle_mesh.cpp b/core/math/triangle_mesh.cpp
index b3daee0c7e..101e164eae 100644
--- a/core/math/triangle_mesh.cpp
+++ b/core/math/triangle_mesh.cpp
@@ -94,7 +94,7 @@ int TriangleMesh::_create_bvh(BVH*p_bvh,BVH** p_bb,int p_from,int p_size,int p_d
}
-void TriangleMesh::create(const DVector<Vector3>& p_faces) {
+void TriangleMesh::create(const PoolVector<Vector3>& p_faces) {
valid=false;
@@ -104,7 +104,7 @@ void TriangleMesh::create(const DVector<Vector3>& p_faces) {
triangles.resize(fc);
bvh.resize(fc*3); //will never be larger than this (todo make better)
- DVector<BVH>::Write bw = bvh.write();
+ PoolVector<BVH>::Write bw = bvh.write();
{
@@ -112,8 +112,8 @@ void TriangleMesh::create(const DVector<Vector3>& p_faces) {
//except for the Set for repeated triangles, everything
//goes in-place.
- DVector<Vector3>::Read r = p_faces.read();
- DVector<Triangle>::Write w = triangles.write();
+ PoolVector<Vector3>::Read r = p_faces.read();
+ PoolVector<Triangle>::Write w = triangles.write();
Map<Vector3,int> db;
for(int i=0;i<fc;i++) {
@@ -149,16 +149,16 @@ void TriangleMesh::create(const DVector<Vector3>& p_faces) {
}
vertices.resize(db.size());
- DVector<Vector3>::Write vw = vertices.write();
+ PoolVector<Vector3>::Write vw = vertices.write();
for (Map<Vector3,int>::Element *E=db.front();E;E=E->next()) {
vw[E->get()]=E->key();
}
}
- DVector<BVH*> bwptrs;
+ PoolVector<BVH*> bwptrs;
bwptrs.resize(fc);
- DVector<BVH*>::Write bwp = bwptrs.write();
+ PoolVector<BVH*>::Write bwp = bwptrs.write();
for(int i=0;i<fc;i++) {
bwp[i]=&bw[i];
@@ -168,7 +168,7 @@ void TriangleMesh::create(const DVector<Vector3>& p_faces) {
int max_alloc=fc;
int max=_create_bvh(bw.ptr(),bwp.ptr(),0,fc,1,max_depth,max_alloc);
- bw=DVector<BVH>::Write(); //clearup
+ bw=PoolVector<BVH>::Write(); //clearup
bvh.resize(max_alloc); //resize back
valid=true;
@@ -197,9 +197,9 @@ Vector3 TriangleMesh::get_area_normal(const AABB& p_aabb) const {
int level=0;
- DVector<Triangle>::Read trianglesr = triangles.read();
- DVector<Vector3>::Read verticesr=vertices.read();
- DVector<BVH>::Read bvhr=bvh.read();
+ PoolVector<Triangle>::Read trianglesr = triangles.read();
+ PoolVector<Vector3>::Read verticesr=vertices.read();
+ PoolVector<BVH>::Read bvhr=bvh.read();
const Triangle *triangleptr=trianglesr.ptr();
int pos=bvh.size()-1;
@@ -299,9 +299,9 @@ bool TriangleMesh::intersect_segment(const Vector3& p_begin,const Vector3& p_end
int level=0;
- DVector<Triangle>::Read trianglesr = triangles.read();
- DVector<Vector3>::Read verticesr=vertices.read();
- DVector<BVH>::Read bvhr=bvh.read();
+ PoolVector<Triangle>::Read trianglesr = triangles.read();
+ PoolVector<Vector3>::Read verticesr=vertices.read();
+ PoolVector<BVH>::Read bvhr=bvh.read();
const Triangle *triangleptr=trianglesr.ptr();
const Vector3 *vertexptr=verticesr.ptr();
@@ -422,9 +422,9 @@ bool TriangleMesh::intersect_ray(const Vector3& p_begin,const Vector3& p_dir,Vec
int level=0;
- DVector<Triangle>::Read trianglesr = triangles.read();
- DVector<Vector3>::Read verticesr=vertices.read();
- DVector<BVH>::Read bvhr=bvh.read();
+ PoolVector<Triangle>::Read trianglesr = triangles.read();
+ PoolVector<Vector3>::Read verticesr=vertices.read();
+ PoolVector<BVH>::Read bvhr=bvh.read();
const Triangle *triangleptr=trianglesr.ptr();
const Vector3 *vertexptr=verticesr.ptr();
@@ -524,18 +524,18 @@ bool TriangleMesh::is_valid() const {
return valid;
}
-DVector<Face3> TriangleMesh::get_faces() const {
+PoolVector<Face3> TriangleMesh::get_faces() const {
if (!valid)
- return DVector<Face3>();
+ return PoolVector<Face3>();
- DVector<Face3> faces;
+ PoolVector<Face3> faces;
int ts = triangles.size();
faces.resize(triangles.size());
- DVector<Face3>::Write w=faces.write();
- DVector<Triangle>::Read r = triangles.read();
- DVector<Vector3>::Read rv = vertices.read();
+ PoolVector<Face3>::Write w=faces.write();
+ PoolVector<Triangle>::Read r = triangles.read();
+ PoolVector<Vector3>::Read rv = vertices.read();
for(int i=0;i<ts;i++) {
for(int j=0;j<3;j++) {
@@ -543,7 +543,7 @@ DVector<Face3> TriangleMesh::get_faces() const {
}
}
- w = DVector<Face3>::Write();
+ w = PoolVector<Face3>::Write();
return faces;
}
diff --git a/core/math/triangle_mesh.h b/core/math/triangle_mesh.h
index d42f9c8dde..37d32bd7ec 100644
--- a/core/math/triangle_mesh.h
+++ b/core/math/triangle_mesh.h
@@ -41,8 +41,8 @@ class TriangleMesh : public Reference {
int indices[3];
};
- DVector<Triangle> triangles;
- DVector<Vector3> vertices;
+ PoolVector<Triangle> triangles;
+ PoolVector<Vector3> vertices;
struct BVH {
@@ -79,7 +79,7 @@ class TriangleMesh : public Reference {
int _create_bvh(BVH*p_bvh,BVH** p_bb,int p_from,int p_size,int p_depth,int&max_depth,int&max_alloc);
- DVector<BVH> bvh;
+ PoolVector<BVH> bvh;
int max_depth;
bool valid;
@@ -89,10 +89,10 @@ public:
bool intersect_segment(const Vector3& p_begin,const Vector3& p_end,Vector3 &r_point, Vector3 &r_normal) const;
bool intersect_ray(const Vector3& p_begin,const Vector3& p_dir,Vector3 &r_point, Vector3 &r_normal) const;
Vector3 get_area_normal(const AABB& p_aabb) const;
- DVector<Face3> get_faces() const;
+ PoolVector<Face3> get_faces() const;
- void create(const DVector<Vector3>& p_faces);
+ void create(const PoolVector<Vector3>& p_faces);
TriangleMesh();
};
diff --git a/core/method_ptrcall.h b/core/method_ptrcall.h
index e38d59fd8f..2e3959c3ab 100644
--- a/core/method_ptrcall.h
+++ b/core/method_ptrcall.h
@@ -133,12 +133,12 @@ struct PtrToArg< const T* > {
template<>\
struct PtrToArg<Vector<m_type> > {\
_FORCE_INLINE_ static Vector<m_type> convert(const void* p_ptr) {\
- const DVector<m_type> *dvs = reinterpret_cast<const DVector<m_type> *>(p_ptr);\
+ const PoolVector<m_type> *dvs = reinterpret_cast<const PoolVector<m_type> *>(p_ptr);\
Vector<m_type> ret;\
int len = dvs->size();\
ret.resize(len);\
{\
- DVector<m_type>::Read r=dvs->read();\
+ PoolVector<m_type>::Read r=dvs->read();\
for(int i=0;i<len;i++) {\
ret[i]=r[i];\
}\
@@ -146,11 +146,11 @@ struct PtrToArg<Vector<m_type> > {\
return ret;\
}\
_FORCE_INLINE_ static void encode(Vector<m_type> p_vec, void* p_ptr) {\
- DVector<m_type> *dv = reinterpret_cast<DVector<m_type> *>(p_ptr);\
+ PoolVector<m_type> *dv = reinterpret_cast<PoolVector<m_type> *>(p_ptr);\
int len=p_vec.size();\
dv->resize(len);\
{\
- DVector<m_type>::Write w=dv->write();\
+ PoolVector<m_type>::Write w=dv->write();\
for(int i=0;i<len;i++) {\
w[i]=p_vec[i];\
}\
@@ -160,12 +160,12 @@ struct PtrToArg<Vector<m_type> > {\
template<>\
struct PtrToArg<const Vector<m_type>& > {\
_FORCE_INLINE_ static Vector<m_type> convert(const void* p_ptr) {\
- const DVector<m_type> *dvs = reinterpret_cast<const DVector<m_type> *>(p_ptr);\
+ const PoolVector<m_type> *dvs = reinterpret_cast<const PoolVector<m_type> *>(p_ptr);\
Vector<m_type> ret;\
int len = dvs->size();\
ret.resize(len);\
{\
- DVector<m_type>::Read r=dvs->read();\
+ PoolVector<m_type>::Read r=dvs->read();\
for(int i=0;i<len;i++) {\
ret[i]=r[i];\
}\
@@ -226,26 +226,26 @@ MAKE_VECARR(Plane);
#define MAKE_DVECARR(m_type) \
template<>\
-struct PtrToArg<DVector<m_type> > {\
- _FORCE_INLINE_ static DVector<m_type> convert(const void* p_ptr) {\
+struct PtrToArg<PoolVector<m_type> > {\
+ _FORCE_INLINE_ static PoolVector<m_type> convert(const void* p_ptr) {\
const Array *arr = reinterpret_cast<const Array *>(p_ptr);\
- DVector<m_type> ret;\
+ PoolVector<m_type> ret;\
int len = arr->size();\
ret.resize(len);\
{\
- DVector<m_type>::Write w=ret.write();\
+ PoolVector<m_type>::Write w=ret.write();\
for(int i=0;i<len;i++) {\
w[i]=(*arr)[i];\
}\
}\
return ret;\
}\
- _FORCE_INLINE_ static void encode(DVector<m_type> p_vec, void* p_ptr) {\
+ _FORCE_INLINE_ static void encode(PoolVector<m_type> p_vec, void* p_ptr) {\
Array *arr = reinterpret_cast<Array *>(p_ptr);\
int len = p_vec.size();\
arr->resize(len);\
{\
- DVector<m_type>::Read r=p_vec.read();\
+ PoolVector<m_type>::Read r=p_vec.read();\
for(int i=0;i<len;i++) {\
(*arr)[i]=r[i];\
}\
@@ -253,14 +253,14 @@ struct PtrToArg<DVector<m_type> > {\
} \
};\
template<>\
-struct PtrToArg<const DVector<m_type>& > {\
- _FORCE_INLINE_ static DVector<m_type> convert(const void* p_ptr) {\
+struct PtrToArg<const PoolVector<m_type>& > {\
+ _FORCE_INLINE_ static PoolVector<m_type> convert(const void* p_ptr) {\
const Array *arr = reinterpret_cast<const Array *>(p_ptr);\
- DVector<m_type> ret;\
+ PoolVector<m_type> ret;\
int len = arr->size();\
ret.resize(len);\
{\
- DVector<m_type>::Write w=ret.write();\
+ PoolVector<m_type>::Write w=ret.write();\
for(int i=0;i<len;i++) {\
w[i]=(*arr)[i];\
}\
@@ -297,15 +297,15 @@ MAKE_STRINGCONV(StringName);
MAKE_STRINGCONV(IP_Address);
template<>
-struct PtrToArg<DVector<Face3> > {
- _FORCE_INLINE_ static DVector<Face3> convert(const void* p_ptr) {
- const DVector<Vector3> *dvs = reinterpret_cast<const DVector<Vector3> *>(p_ptr);
- DVector<Face3> ret;
+struct PtrToArg<PoolVector<Face3> > {
+ _FORCE_INLINE_ static PoolVector<Face3> convert(const void* p_ptr) {
+ const PoolVector<Vector3> *dvs = reinterpret_cast<const PoolVector<Vector3> *>(p_ptr);
+ PoolVector<Face3> ret;
int len = dvs->size()/3;
ret.resize(len);
{
- DVector<Vector3>::Read r=dvs->read();
- DVector<Face3>::Write w=ret.write();
+ PoolVector<Vector3>::Read r=dvs->read();
+ PoolVector<Face3>::Write w=ret.write();
for(int i=0;i<len;i++) {
w[i].vertex[0]=r[i*3+0];
w[i].vertex[1]=r[i*3+1];
@@ -314,13 +314,13 @@ struct PtrToArg<DVector<Face3> > {
}
return ret;
}
- _FORCE_INLINE_ static void encode(DVector<Face3> p_vec, void* p_ptr) {\
- DVector<Vector3> *arr = reinterpret_cast<DVector<Vector3> *>(p_ptr);\
+ _FORCE_INLINE_ static void encode(PoolVector<Face3> p_vec, void* p_ptr) {\
+ PoolVector<Vector3> *arr = reinterpret_cast<PoolVector<Vector3> *>(p_ptr);\
int len = p_vec.size();\
arr->resize(len*3);\
{\
- DVector<Face3>::Read r=p_vec.read();\
- DVector<Vector3>::Write w=arr->write();\
+ PoolVector<Face3>::Read r=p_vec.read();\
+ PoolVector<Vector3>::Write w=arr->write();\
for(int i=0;i<len;i++) {\
w[i*3+0]=r[i].vertex[0];\
w[i*3+1]=r[i].vertex[1];\
@@ -330,15 +330,15 @@ struct PtrToArg<DVector<Face3> > {
} \
};
template<>
-struct PtrToArg<const DVector<Face3>& > {
- _FORCE_INLINE_ static DVector<Face3> convert(const void* p_ptr) {
- const DVector<Vector3> *dvs = reinterpret_cast<const DVector<Vector3> *>(p_ptr);
- DVector<Face3> ret;
+struct PtrToArg<const PoolVector<Face3>& > {
+ _FORCE_INLINE_ static PoolVector<Face3> convert(const void* p_ptr) {
+ const PoolVector<Vector3> *dvs = reinterpret_cast<const PoolVector<Vector3> *>(p_ptr);
+ PoolVector<Face3> ret;
int len = dvs->size()/3;
ret.resize(len);
{
- DVector<Vector3>::Read r=dvs->read();
- DVector<Face3>::Write w=ret.write();
+ PoolVector<Vector3>::Read r=dvs->read();
+ PoolVector<Face3>::Write w=ret.write();
for(int i=0;i<len;i++) {
w[i].vertex[0]=r[i*3+0];
w[i].vertex[1]=r[i*3+1];
diff --git a/core/object.cpp b/core/object.cpp
index 82377013e1..3bb917bd38 100644
--- a/core/object.cpp
+++ b/core/object.cpp
@@ -532,8 +532,6 @@ void Object::get_property_list(List<PropertyInfo> *p_list,bool p_reversed) const
_get_property_listv(p_list,p_reversed);
- if (!_use_builtin_script())
- return;
if (!is_class("Script")) // can still be set, but this is for userfriendlyness
p_list->push_back( PropertyInfo( Variant::OBJECT, "script/script", PROPERTY_HINT_RESOURCE_TYPE, "Script",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_STORE_IF_NONZERO));
@@ -1112,9 +1110,9 @@ Array Object::_get_method_list_bind() const {
}
-DVector<String> Object::_get_meta_list_bind() const {
+PoolVector<String> Object::_get_meta_list_bind() const {
- DVector<String> _metaret;
+ PoolVector<String> _metaret;
List<Variant> keys;
metadata.get_key_list(&keys);
@@ -1942,27 +1940,37 @@ uint32_t ObjectDB::instance_counter=1;
HashMap<Object*,ObjectID,ObjectDB::ObjectPtrHash> ObjectDB::instance_checks;
uint32_t ObjectDB::add_instance(Object *p_object) {
- GLOBAL_LOCK_FUNCTION;
+
ERR_FAIL_COND_V( p_object->get_instance_ID()!=0, 0 );
+
+ rw_lock->write_lock();
instances[++instance_counter]=p_object;
#ifdef DEBUG_ENABLED
instance_checks[p_object]=instance_counter;
#endif
+ rw_lock->write_unlock();
+
return instance_counter;
}
void ObjectDB::remove_instance(Object *p_object) {
- GLOBAL_LOCK_FUNCTION;
+
+ rw_lock->write_lock();
+
instances.erase( p_object->get_instance_ID() );
#ifdef DEBUG_ENABLED
instance_checks.erase(p_object);
#endif
+
+ rw_lock->write_unlock();
}
Object *ObjectDB::get_instance(uint32_t p_instance_ID) {
- GLOBAL_LOCK_FUNCTION;
+ rw_lock->read_lock();
Object**obj=instances.getptr(p_instance_ID);
+ rw_lock->read_unlock();
+
if (!obj)
return NULL;
return *obj;
@@ -1970,13 +1978,16 @@ Object *ObjectDB::get_instance(uint32_t p_instance_ID) {
void ObjectDB::debug_objects(DebugFunc p_func) {
- GLOBAL_LOCK_FUNCTION;
+ rw_lock->read_lock();
const uint32_t *K=NULL;
while((K=instances.next(K))) {
p_func(instances[*K]);
}
+
+ rw_lock->read_unlock();
+
}
@@ -1987,15 +1998,26 @@ void Object::get_argument_options(const StringName& p_function,int p_idx,List<St
int ObjectDB::get_object_count() {
- GLOBAL_LOCK_FUNCTION;
- return instances.size();
+ rw_lock->read_lock();
+ int count =instances.size();
+ rw_lock->read_unlock();
+
+ return count;
+
+}
+
+RWLock *ObjectDB::rw_lock=NULL;
+
+void ObjectDB::setup() {
+
+ rw_lock = RWLock::create();
}
void ObjectDB::cleanup() {
- GLOBAL_LOCK_FUNCTION;
+ rw_lock->write_lock();
if (instances.size()) {
WARN_PRINT("ObjectDB Instances still exist!");
@@ -2014,4 +2036,7 @@ void ObjectDB::cleanup() {
}
instances.clear();
instance_checks.clear();
+ rw_lock->write_unlock();
+
+ memdelete(rw_lock);
}
diff --git a/core/object.h b/core/object.h
index 6dd427bf41..b675486082 100644
--- a/core/object.h
+++ b/core/object.h
@@ -34,6 +34,7 @@
#include "set.h"
#include "map.h"
#include "vmap.h"
+#include "os/rw_lock.h"
#define VARIANT_ARG_LIST const Variant& p_arg1=Variant(),const Variant& p_arg2=Variant(),const Variant& p_arg3=Variant(),const Variant& p_arg4=Variant(),const Variant& p_arg5=Variant()
#define VARIANT_ARG_PASS p_arg1,p_arg2,p_arg3,p_arg4,p_arg5
@@ -431,7 +432,7 @@ friend void postinitialize_handler(Object*);
protected:
- virtual bool _use_builtin_script() const { return false; }
+
virtual void _initialize_classv() { initialize_class(); }
virtual bool _setv(const StringName& p_name,const Variant &p_property) { return false; };
virtual bool _getv(const StringName& p_name,Variant &r_property) const { return false; };
@@ -481,7 +482,7 @@ protected:
return &_class_name;
}
- DVector<String> _get_meta_list_bind() const;
+ PoolVector<String> _get_meta_list_bind() const;
Array _get_property_list_bind() const;
Array _get_method_list_bind() const;
@@ -686,9 +687,14 @@ class ObjectDB {
friend class Object;
friend void unregister_core_types();
+
+ static RWLock *rw_lock;
static void cleanup();
static uint32_t add_instance(Object *p_object);
static void remove_instance(Object *p_object);
+friend void register_core_types();
+ static void setup();
+
public:
typedef void (*DebugFunc)(Object *p_obj);
diff --git a/core/object_type_db.cpp b/core/object_type_db.cpp
index 94cc865b62..7432c09563 100644
--- a/core/object_type_db.cpp
+++ b/core/object_type_db.cpp
@@ -31,11 +31,12 @@
#ifdef NO_THREADS
-#define OBJTYPE_LOCK
+#define OBJTYPE_RLOCK
#else
-#define OBJTYPE_LOCK MutexLock _mutex_lock_(lock);
+#define OBJTYPE_RLOCK RWLockRead _rw_lockr_(lock);
+#define OBJTYPE_WLOCK RWLockWrite _rw_lockw_(lock);
#endif
@@ -215,7 +216,7 @@ ClassDB::ClassInfo::~ClassInfo() {
bool ClassDB::is_parent_class(const StringName &p_class,const StringName& p_inherits) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
StringName inherits=p_class;
@@ -230,7 +231,7 @@ bool ClassDB::is_parent_class(const StringName &p_class,const StringName& p_inhe
}
void ClassDB::get_class_list( List<StringName> *p_classes) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
const StringName *k=NULL;
@@ -245,7 +246,7 @@ void ClassDB::get_class_list( List<StringName> *p_classes) {
void ClassDB::get_inheriters_from_class( const StringName& p_class,List<StringName> *p_classes) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
const StringName *k=NULL;
@@ -259,7 +260,7 @@ void ClassDB::get_inheriters_from_class( const StringName& p_class,List<StringNa
StringName ClassDB::get_parent_class(const StringName& p_class) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
ClassInfo *ti = classes.getptr(p_class);
ERR_FAIL_COND_V(!ti,"");
@@ -268,7 +269,7 @@ StringName ClassDB::get_parent_class(const StringName& p_class) {
ClassDB::APIType ClassDB::get_api_type(const StringName &p_class) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
ClassInfo *ti = classes.getptr(p_class);
ERR_FAIL_COND_V(!ti,API_NONE);
@@ -277,6 +278,7 @@ ClassDB::APIType ClassDB::get_api_type(const StringName &p_class) {
uint64_t ClassDB::get_api_hash(APIType p_api) {
+ OBJTYPE_RLOCK;
#ifdef DEBUG_METHODS_ENABLED
uint64_t hash = hash_djb2_one_64(HashMapHahserDefault::hash(VERSION_FULL_NAME));
@@ -433,12 +435,13 @@ uint64_t ClassDB::get_api_hash(APIType p_api) {
bool ClassDB::class_exists(const StringName &p_class) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
return classes.has(p_class);
}
void ClassDB::add_compatibility_class(const StringName& p_class,const StringName& p_fallback) {
+ OBJTYPE_WLOCK;
compat_classes[p_class]=p_fallback;
}
@@ -446,7 +449,7 @@ Object *ClassDB::instance(const StringName &p_class) {
ClassInfo *ti;
{
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
ti=classes.getptr(p_class);
if (!ti || ti->disabled || !ti->creation_func) {
if (compat_classes.has(p_class)) {
@@ -462,7 +465,7 @@ Object *ClassDB::instance(const StringName &p_class) {
}
bool ClassDB::can_instance(const StringName &p_class) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
ClassInfo *ti = classes.getptr(p_class);
ERR_FAIL_COND_V(!ti,false);
@@ -472,7 +475,7 @@ bool ClassDB::can_instance(const StringName &p_class) {
void ClassDB::_add_class2(const StringName& p_class, const StringName& p_inherits) {
- OBJTYPE_LOCK;
+ OBJTYPE_WLOCK;
StringName name = p_class;
@@ -499,7 +502,7 @@ void ClassDB::_add_class2(const StringName& p_class, const StringName& p_inherit
void ClassDB::get_method_list(StringName p_class,List<MethodInfo> *p_methods,bool p_no_inheritance) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
ClassInfo *type=classes.getptr(p_class);
@@ -572,7 +575,7 @@ void ClassDB::get_method_list(StringName p_class,List<MethodInfo> *p_methods,boo
MethodBind *ClassDB::get_method(StringName p_class, StringName p_name) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
ClassInfo *type=classes.getptr(p_class);
@@ -589,7 +592,7 @@ MethodBind *ClassDB::get_method(StringName p_class, StringName p_name) {
void ClassDB::bind_integer_constant(const StringName& p_class, const StringName &p_name, int p_constant) {
- OBJTYPE_LOCK;
+ OBJTYPE_WLOCK;
ClassInfo *type=classes.getptr(p_class);
if (!type) {
@@ -611,7 +614,7 @@ void ClassDB::bind_integer_constant(const StringName& p_class, const StringName
void ClassDB::get_integer_constant_list(const StringName& p_class, List<String> *p_constants, bool p_no_inheritance) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
ClassInfo *type=classes.getptr(p_class);
@@ -639,7 +642,7 @@ void ClassDB::get_integer_constant_list(const StringName& p_class, List<String>
int ClassDB::get_integer_constant(const StringName& p_class, const StringName &p_name, bool *p_success) {
- OBJTYPE_LOCK;
+ OBJTYPE_RLOCK;
ClassInfo *type=classes.getptr(p_class);
@@ -666,6 +669,8 @@ int ClassDB::get_integer_constant(const StringName& p_class, const StringName &p
void ClassDB::add_signal(StringName p_class,const MethodInfo& p_signal) {
+ OBJTYPE_WLOCK;
+
ClassInfo *type=classes.getptr(p_class);
ERR_FAIL_COND(!type);
@@ -688,6 +693,8 @@ void ClassDB::add_signal(StringName p_class,const MethodInfo& p_signal) {
void ClassDB::get_signal_list(StringName p_class,List<MethodInfo> *p_signals,bool p_no_inheritance) {
+ OBJTYPE_RLOCK;
+
ClassInfo *type=classes.getptr(p_class);
ERR_FAIL_COND(!type);
@@ -712,6 +719,7 @@ void ClassDB::get_signal_list(StringName p_class,List<MethodInfo> *p_signals,boo
bool ClassDB::has_signal(StringName p_class,StringName p_signal) {
+ OBJTYPE_RLOCK;
ClassInfo *type=classes.getptr(p_class);
ClassInfo *check=type;
while(check) {
@@ -725,6 +733,7 @@ bool ClassDB::has_signal(StringName p_class,StringName p_signal) {
bool ClassDB::get_signal(StringName p_class,StringName p_signal,MethodInfo *r_signal) {
+ OBJTYPE_RLOCK;
ClassInfo *type=classes.getptr(p_class);
ClassInfo *check=type;
while(check) {
@@ -743,6 +752,7 @@ bool ClassDB::get_signal(StringName p_class,StringName p_signal,MethodInfo *r_si
void ClassDB::add_property_group(StringName p_class,const String& p_name,const String& p_prefix) {
+ OBJTYPE_WLOCK;
ClassInfo *type=classes.getptr(p_class);
ERR_FAIL_COND(!type);
@@ -752,7 +762,13 @@ void ClassDB::add_property_group(StringName p_class,const String& p_name,const S
void ClassDB::add_property(StringName p_class,const PropertyInfo& p_pinfo, const StringName& p_setter, const StringName& p_getter, int p_index) {
+
+ lock->read_lock();
+
ClassInfo *type=classes.getptr(p_class);
+
+ lock->read_unlock();
+
ERR_FAIL_COND(!type);
MethodBind *mb_set=NULL;
@@ -804,6 +820,9 @@ void ClassDB::add_property(StringName p_class,const PropertyInfo& p_pinfo, const
ERR_FAIL();
}
#endif
+
+ OBJTYPE_WLOCK
+
type->property_list.push_back(p_pinfo);
PropertySetGet psg;
@@ -821,6 +840,8 @@ void ClassDB::add_property(StringName p_class,const PropertyInfo& p_pinfo, const
void ClassDB::get_property_list(StringName p_class, List<PropertyInfo> *p_list, bool p_no_inheritance,const Object *p_validator) {
+ OBJTYPE_RLOCK;
+
ClassInfo *type=classes.getptr(p_class);
ClassInfo *check=type;
while(check) {
@@ -846,6 +867,7 @@ void ClassDB::get_property_list(StringName p_class, List<PropertyInfo> *p_list,
bool ClassDB::set_property(Object* p_object,const StringName& p_property, const Variant& p_value,bool *r_valid) {
+
ClassInfo *type=classes.getptr(p_object->get_class_name());
ClassInfo *check=type;
while(check) {
@@ -1010,6 +1032,7 @@ bool ClassDB::has_property(const StringName& p_class, const StringName& p_proper
void ClassDB::set_method_flags(StringName p_class,StringName p_method,int p_flags) {
+ OBJTYPE_WLOCK;
ClassInfo *type=classes.getptr(p_class);
ClassInfo *check=type;
ERR_FAIL_COND(!check);
@@ -1070,7 +1093,7 @@ MethodBind* ClassDB::bind_methodfi(uint32_t p_flags, MethodBind *p_bind , const
}
- OBJTYPE_LOCK;
+ OBJTYPE_WLOCK;
ERR_FAIL_COND_V(!p_bind,NULL);
p_bind->set_name(mdname);
@@ -1114,6 +1137,8 @@ MethodBind* ClassDB::bind_methodfi(uint32_t p_flags, MethodBind *p_bind , const
void ClassDB::add_virtual_method(const StringName& p_class, const MethodInfo& p_method , bool p_virtual) {
ERR_FAIL_COND(!classes.has(p_class));
+ OBJTYPE_WLOCK;
+
#ifdef DEBUG_METHODS_ENABLED
MethodInfo mi=p_method;
if (p_virtual)
@@ -1149,12 +1174,16 @@ void ClassDB::get_virtual_methods(const StringName& p_class, List<MethodInfo> *
void ClassDB::set_class_enabled(StringName p_class,bool p_enable) {
+ OBJTYPE_WLOCK;
+
ERR_FAIL_COND(!classes.has(p_class));
classes[p_class].disabled=!p_enable;
}
bool ClassDB::is_class_enabled(StringName p_class) {
+ OBJTYPE_RLOCK;
+
ClassInfo *ti=classes.getptr(p_class);
if (!ti || !ti->creation_func) {
if (compat_classes.has(p_class)) {
@@ -1206,23 +1235,19 @@ void ClassDB::get_extensions_for_type(const StringName& p_class,List<String> *p_
}
-Mutex *ClassDB::lock=NULL;
+RWLock *ClassDB::lock=NULL;
void ClassDB::init() {
#ifndef NO_THREADS
- lock = Mutex::create();
+ lock = RWLock::create();
#endif
}
void ClassDB::cleanup() {
-#ifndef NO_THREADS
-
- memdelete(lock);
-#endif
//OBJTYPE_LOCK; hah not here
@@ -1241,6 +1266,12 @@ void ClassDB::cleanup() {
classes.clear();
resource_base_extensions.clear();
compat_classes.clear();
+
+#ifndef NO_THREADS
+
+ memdelete(lock);
+#endif
+
}
//
diff --git a/core/object_type_db.h b/core/object_type_db.h
index 3613d351e4..158a4dae23 100644
--- a/core/object_type_db.h
+++ b/core/object_type_db.h
@@ -156,7 +156,7 @@ public:
return memnew( T );
}
- static Mutex *lock;
+ static RWLock *lock;
static HashMap<StringName,ClassInfo,StringNameHasher> classes;
static HashMap<StringName,StringName,StringNameHasher> resource_base_extensions;
static HashMap<StringName,StringName,StringNameHasher> compat_classes;
diff --git a/core/os/input.cpp b/core/os/input.cpp
index 259108802f..d2bd433ed9 100644
--- a/core/os/input.cpp
+++ b/core/os/input.cpp
@@ -61,7 +61,7 @@ void Input::_bind_methods() {
ClassDB::bind_method(_MD("get_joy_axis","device","axis"),&Input::get_joy_axis);
ClassDB::bind_method(_MD("get_joy_name","device"),&Input::get_joy_name);
ClassDB::bind_method(_MD("get_joy_guid","device"),&Input::get_joy_guid);
- ClassDB::bind_method(_MD("get_connected_joysticks"),&Input::get_connected_joysticks);
+ ClassDB::bind_method(_MD("get_connected_joypads"),&Input::get_connected_joypads);
ClassDB::bind_method(_MD("get_joy_vibration_strength", "device"), &Input::get_joy_vibration_strength);
ClassDB::bind_method(_MD("get_joy_vibration_duration", "device"), &Input::get_joy_vibration_duration);
ClassDB::bind_method(_MD("get_joy_button_string", "button_index"), &Input::get_joy_button_string);
diff --git a/core/os/input.h b/core/os/input.h
index a137820972..c365894f46 100644
--- a/core/os/input.h
+++ b/core/os/input.h
@@ -64,7 +64,7 @@ public:
virtual float get_joy_axis(int p_device,int p_axis) const=0;
virtual String get_joy_name(int p_idx)=0;
- virtual Array get_connected_joysticks()=0;
+ virtual Array get_connected_joypads()=0;
virtual void joy_connection_changed(int p_idx, bool p_connected, String p_name, String p_guid)=0;
virtual void add_joy_mapping(String p_mapping, bool p_update_existing=false)=0;
virtual void remove_joy_mapping(String p_guid)=0;
diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp
index b0008a0481..5c681f1a82 100644
--- a/core/os/input_event.cpp
+++ b/core/os/input_event.cpp
@@ -61,10 +61,10 @@ bool InputEvent::operator==(const InputEvent &p_event) const {
&& mouse_button.button_index == p_event.mouse_button.button_index
&& mouse_button.button_mask == p_event.mouse_button.button_mask
&& key.mod == p_event.key.mod;
- case JOYSTICK_MOTION:
+ case JOYPAD_MOTION:
return joy_motion.axis == p_event.joy_motion.axis
&& joy_motion.axis_value == p_event.joy_motion.axis_value;
- case JOYSTICK_BUTTON:
+ case JOYPAD_BUTTON:
return joy_button.pressed == p_event.joy_button.pressed
&& joy_button.button_index == p_event.joy_button.button_index
&& joy_button.pressure == p_event.joy_button.pressure;
@@ -155,14 +155,14 @@ InputEvent::operator String() const {
return str;
} break;
- case JOYSTICK_MOTION: {
- str+= "Event: JoystickMotion ";
+ case JOYPAD_MOTION: {
+ str+= "Event: JoypadMotion ";
str=str+"Axis: "+itos(joy_motion.axis)+" Value: " +rtos(joy_motion.axis_value);
return str;
} break;
- case JOYSTICK_BUTTON: {
- str+= "Event: JoystickButton ";
+ case JOYPAD_BUTTON: {
+ str+= "Event: JoypadButton ";
str=str+"Pressed: "+itos(joy_button.pressed)+" Index: " +itos(joy_button.button_index)+" pressure "+rtos(joy_button.pressure);
return str;
@@ -203,9 +203,9 @@ bool InputEvent::is_pressed() const {
case KEY: return key.pressed;
case MOUSE_BUTTON: return mouse_button.pressed;
- case JOYSTICK_BUTTON: return joy_button.pressed;
+ case JOYPAD_BUTTON: return joy_button.pressed;
case SCREEN_TOUCH: return screen_touch.pressed;
- case JOYSTICK_MOTION: return ABS(joy_motion.axis_value) > 0.5;
+ case JOYPAD_MOTION: return ABS(joy_motion.axis_value) > 0.5;
case ACTION: return action.pressed;
default: {}
}
diff --git a/core/os/input_event.h b/core/os/input_event.h
index 8fe033aa3c..a557de2bd7 100644
--- a/core/os/input_event.h
+++ b/core/os/input_event.h
@@ -225,13 +225,13 @@ struct InputEventMouseMotion : public InputEventMouse {
float speed_x,speed_y;
};
-struct InputEventJoystickMotion {
+struct InputEventJoypadMotion {
- int axis; ///< Joystick axis
+ int axis; ///< Joypad axis
float axis_value; ///< -1 to 1
};
-struct InputEventJoystickButton {
+struct InputEventJoypadButton {
int button_index;
bool pressed;
@@ -267,8 +267,8 @@ struct InputEvent {
KEY,
MOUSE_MOTION,
MOUSE_BUTTON,
- JOYSTICK_MOTION,
- JOYSTICK_BUTTON,
+ JOYPAD_MOTION,
+ JOYPAD_BUTTON,
SCREEN_TOUCH,
SCREEN_DRAG,
ACTION,
@@ -282,8 +282,8 @@ struct InputEvent {
union {
InputEventMouseMotion mouse_motion;
InputEventMouseButton mouse_button;
- InputEventJoystickMotion joy_motion;
- InputEventJoystickButton joy_button;
+ InputEventJoypadMotion joy_motion;
+ InputEventJoypadButton joy_button;
InputEventKey key;
InputEventScreenTouch screen_touch;
InputEventScreenDrag screen_drag;
diff --git a/core/os/main_loop.h b/core/os/main_loop.h
index 6506a280a3..5251061423 100644
--- a/core/os/main_loop.h
+++ b/core/os/main_loop.h
@@ -54,6 +54,7 @@ public:
NOTIFICATION_WM_QUIT_REQUEST = 7,
NOTIFICATION_WM_UNFOCUS_REQUEST = 8,
NOTIFICATION_OS_MEMORY_WARNING = 9,
+ NOTIFICATION_TRANSLATION_CHANGED = 10,
};
virtual void input_event( const InputEvent& p_event );
diff --git a/core/os/memory.cpp b/core/os/memory.cpp
index cf42c3681a..37a523b763 100644
--- a/core/os/memory.cpp
+++ b/core/os/memory.cpp
@@ -33,61 +33,6 @@
#include <stdlib.h>
-MID::MID(MemoryPoolDynamic::ID p_id) {
-
- data = (Data*)memalloc(sizeof(Data));
- data->refcount.init();
- data->id=p_id;
-}
-
-void MID::unref() {
-
- if (!data)
- return;
- if (data->refcount.unref()) {
-
- if (data->id!=MemoryPoolDynamic::INVALID_ID)
- MemoryPoolDynamic::get_singleton()->free(data->id);
- memfree(data);
- }
-
- data=NULL;
-}
-Error MID::_resize(size_t p_size) {
-
- if (p_size==0 && (!data || data->id==MemoryPoolDynamic::INVALID_ID))
- return OK;
- if (p_size && !data) {
- // create data because we'll need it
- data = (Data*)memalloc(sizeof(Data));
- ERR_FAIL_COND_V( !data,ERR_OUT_OF_MEMORY );
- data->refcount.init();
- data->id=MemoryPoolDynamic::INVALID_ID;
- }
-
- if (p_size==0 && data && data->id==MemoryPoolDynamic::INVALID_ID) {
-
- MemoryPoolDynamic::get_singleton()->free(data->id);
- data->id=MemoryPoolDynamic::INVALID_ID;
- }
-
- if (p_size>0) {
-
- if (data->id==MemoryPoolDynamic::INVALID_ID) {
-
- data->id=MemoryPoolDynamic::get_singleton()->alloc(p_size,"Unnamed MID");
- ERR_FAIL_COND_V( data->id==MemoryPoolDynamic::INVALID_ID, ERR_OUT_OF_MEMORY );
-
- } else {
-
- MemoryPoolDynamic::get_singleton()->realloc(data->id,p_size);
- ERR_FAIL_COND_V( data->id==MemoryPoolDynamic::INVALID_ID, ERR_OUT_OF_MEMORY );
-
- }
- }
-
- return OK;
-}
void * operator new(size_t p_size,const char *p_description) {
@@ -242,34 +187,6 @@ size_t Memory::get_mem_max_usage(){
}
-MID Memory::alloc_dynamic(size_t p_bytes, const char *p_descr) {
-
- MemoryPoolDynamic::ID id = MemoryPoolDynamic::get_singleton()->alloc(p_bytes,p_descr);
-
- return MID(id);
-}
-Error Memory::realloc_dynamic(MID p_mid,size_t p_bytes) {
-
- MemoryPoolDynamic::ID id = p_mid.data?p_mid.data->id:MemoryPoolDynamic::INVALID_ID;
-
- if (id==MemoryPoolDynamic::INVALID_ID)
- return ERR_INVALID_PARAMETER;
-
- return MemoryPoolDynamic::get_singleton()->realloc(p_mid, p_bytes);
-
-}
-
-size_t Memory::get_dynamic_mem_available() {
-
- return MemoryPoolDynamic::get_singleton()->get_available_mem();
-}
-
-size_t Memory::get_dynamic_mem_usage() {
-
- return MemoryPoolDynamic::get_singleton()->get_total_usage();
-}
-
-
_GlobalNil::_GlobalNil() {
diff --git a/core/os/memory.h b/core/os/memory.h
index 6a939e3d6f..0e6dea48d3 100644
--- a/core/os/memory.h
+++ b/core/os/memory.h
@@ -31,8 +31,6 @@
#include <stddef.h>
#include "safe_refcount.h"
-#include "os/memory_pool_dynamic.h"
-
/**
@@ -44,88 +42,6 @@
#endif
-class MID {
-
- struct Data {
-
- SafeRefCount refcount;
- MemoryPoolDynamic::ID id;
- };
-
- mutable Data *data;
-
-
-
- void ref(Data *p_data) {
-
- if (data==p_data)
- return;
- unref();
-
- if (p_data && p_data->refcount.ref())
- data=p_data;
- }
-
-friend class MID_Lock;
-
- inline void lock() {
-
- if (data && data->id!=MemoryPoolDynamic::INVALID_ID)
- MemoryPoolDynamic::get_singleton()->lock(data->id);
- }
- inline void unlock() {
-
- if (data && data->id!=MemoryPoolDynamic::INVALID_ID)
- MemoryPoolDynamic::get_singleton()->unlock(data->id);
-
- }
-
- inline void * get() {
-
- if (data && data->id!=MemoryPoolDynamic::INVALID_ID)
- return MemoryPoolDynamic::get_singleton()->get(data->id);
-
- return NULL;
- }
-
-
- void unref();
- Error _resize(size_t p_size);
-
-friend class Memory;
-
- MID(MemoryPoolDynamic::ID p_id);
-public:
-
- bool is_valid() const { return data; }
- operator bool() const { return data; }
-
-
- size_t get_size() const { return (data && data->id!=MemoryPoolDynamic::INVALID_ID) ? MemoryPoolDynamic::get_singleton()->get_size(data->id) : 0; }
- Error resize(size_t p_size) { return _resize(p_size); }
- inline void operator=(const MID& p_mid) { ref( p_mid.data ); }
- inline bool is_locked() const { return (data && data->id!=MemoryPoolDynamic::INVALID_ID) ? MemoryPoolDynamic::get_singleton()->is_locked(data->id) : false; }
- inline MID(const MID& p_mid) { data=NULL; ref( p_mid.data ); }
- inline MID() { data = NULL; }
- ~MID() { unref(); }
-};
-
-
-class MID_Lock {
-
- MID mid;
-
-public:
-
- void *data() { return mid.get(); }
-
- void operator=(const MID_Lock& p_lock ) { mid.unlock(); mid = p_lock.mid; mid.lock(); }
- inline MID_Lock(const MID& p_mid) { mid=p_mid; mid.lock(); }
- inline MID_Lock(const MID_Lock& p_lock) { mid=p_lock.mid; mid.lock(); }
- MID_Lock() {}
- ~MID_Lock() { mid.unlock(); }
-};
-
class Memory{
@@ -148,12 +64,6 @@ public:
static size_t get_mem_max_usage();
- static MID alloc_dynamic(size_t p_bytes, const char *p_descr="");
- static Error realloc_dynamic(MID p_mid,size_t p_bytes);
-
- static size_t get_dynamic_mem_available();
- static size_t get_dynamic_mem_usage();
-
};
class DefaultAllocator {
@@ -174,18 +84,6 @@ void * operator new(size_t p_size,void *p_pointer,size_t check, const char *p_de
#define memfree(m_size) Memory::free_static(m_size)
-#ifdef DEBUG_MEMORY_ENABLED
-#define dynalloc(m_size) Memory::alloc_dynamic(m_size, __FILE__ ":" __STR(__LINE__) ", type: DYNAMIC")
-#define dynrealloc(m_mem,m_size) m_mem.resize(m_size)
-
-#else
-
-#define dynalloc(m_size) Memory::alloc_dynamic(m_size)
-#define dynrealloc(m_mem,m_size) m_mem.resize(m_size)
-
-#endif
-
-
_ALWAYS_INLINE_ void postinitialize_handler(void *) {}
@@ -241,7 +139,7 @@ T* memnew_arr_template(size_t p_elements,const char *p_descr="") {
if (p_elements==0)
return 0;
/** overloading operator new[] cannot be done , because it may not return the real allocated address (it may pad the 'element count' before the actual array). Because of that, it must be done by hand. This is the
- same strategy used by std::vector, and the DVector class, so it should be safe.*/
+ same strategy used by std::vector, and the PoolVector class, so it should be safe.*/
size_t len = sizeof(T) * p_elements;
uint64_t *mem = (uint64_t*)Memory::alloc_static( len , true );
diff --git a/core/os/memory_pool_dynamic.cpp b/core/os/memory_pool_dynamic.cpp
deleted file mode 100644
index 0bd64a0362..0000000000
--- a/core/os/memory_pool_dynamic.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*************************************************************************/
-/* memory_pool_dynamic.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 "memory_pool_dynamic.h"
-
-
-MemoryPoolDynamic* MemoryPoolDynamic::singleton=NULL;
-
-
-MemoryPoolDynamic* MemoryPoolDynamic::get_singleton() {
-
- return singleton;
-}
-
-
-MemoryPoolDynamic::MemoryPoolDynamic() {
-
- ERR_FAIL_COND(singleton!=NULL);
- singleton=this;
-}
-
-MemoryPoolDynamic::~MemoryPoolDynamic() {
-
- singleton=NULL;
-}
diff --git a/core/os/memory_pool_dynamic.h b/core/os/memory_pool_dynamic.h
deleted file mode 100644
index 025e925d3c..0000000000
--- a/core/os/memory_pool_dynamic.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*************************************************************************/
-/* memory_pool_dynamic.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 MEMORY_POOL_DYNAMIC_H
-#define MEMORY_POOL_DYNAMIC_H
-
-#include "typedefs.h"
-
-
-class MemoryPoolDynamic {
-
- static MemoryPoolDynamic* singleton;
-protected:
-friend class Memory;
-friend class MID;
-
- enum {
-
- INVALID_ID=0xFFFFFFFF
- };
-
- static MemoryPoolDynamic* get_singleton();
-
- typedef uint64_t ID;
-
-
- virtual ID alloc(size_t p_amount,const char* p_description)=0;
- virtual void free(ID p_id)=0;
- virtual Error realloc(ID p_id, size_t p_amount)=0;
- virtual bool is_valid(ID p_id)=0;
- virtual size_t get_size(ID p_id) const=0;
- virtual const char* get_description(ID p_id) const=0;
-
- virtual Error lock(ID p_id)=0;
- virtual void * get(ID p_ID)=0;
- virtual Error unlock(ID p_id)=0;
- virtual bool is_locked(ID p_id) const=0;
-
- virtual size_t get_available_mem() const=0;
- virtual size_t get_total_usage() const=0;
-
- MemoryPoolDynamic();
-public:
- virtual ~MemoryPoolDynamic();
-
-};
-
-
-#endif
-
-
-
-
-
diff --git a/core/os/memory_pool_dynamic_prealloc.cpp b/core/os/memory_pool_dynamic_prealloc.cpp
deleted file mode 100644
index d2efa4cc88..0000000000
--- a/core/os/memory_pool_dynamic_prealloc.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/*************************************************************************/
-/* memory_pool_dynamic_prealloc.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 "memory_pool_dynamic_prealloc.h"
-#include "os/memory.h"
-
-#include "print_string.h"
-MemoryPoolDynamicPrealloc::ID MemoryPoolDynamicPrealloc::alloc(size_t p_amount,const char* p_description) {
-
-
-// print_line("dynpool - allocating: "+itos(p_amount));
- ID id = pool_alloc->alloc(p_amount);
-// print_line("dynpool - free: "+itos(pool_alloc->get_free_mem()));
- return id;
-
-}
-
-void MemoryPoolDynamicPrealloc::free(ID p_id) {
-
- pool_alloc->free(p_id);
-}
-
-Error MemoryPoolDynamicPrealloc::realloc(ID p_id, size_t p_amount) {
-
- return pool_alloc->resize(p_id,p_amount);
-}
-
-bool MemoryPoolDynamicPrealloc::is_valid(ID p_id) {
-
- return true;
-}
-
-size_t MemoryPoolDynamicPrealloc::get_size(ID p_id) const {
-
- return pool_alloc->get_size(p_id);
-}
-
-const char* MemoryPoolDynamicPrealloc::get_description(ID p_id) const {
-
- return "";
-}
-
-Error MemoryPoolDynamicPrealloc::lock(ID p_id) {
-
-// print_line("lock: "+itos(p_id));
- return pool_alloc->lock(p_id);
-}
-
-void * MemoryPoolDynamicPrealloc::get(ID p_ID) {
-
-// print_line("get: "+itos(p_ID));
- return pool_alloc->get(p_ID);
-}
-
-Error MemoryPoolDynamicPrealloc::unlock(ID p_id) {
-
-// print_line("unlock: "+itos(p_id));
- pool_alloc->unlock(p_id);
- return OK;
-}
-
-bool MemoryPoolDynamicPrealloc::is_locked(ID p_id) const {
-
- return pool_alloc->is_locked(p_id);
-}
-
-
-size_t MemoryPoolDynamicPrealloc::get_available_mem() const {
-
- return pool_alloc->get_free_mem();
-}
-
-size_t MemoryPoolDynamicPrealloc::get_total_usage() const {
-
- return pool_alloc->get_used_mem();
-}
-
-
-
-MemoryPoolDynamicPrealloc::MemoryPoolDynamicPrealloc(void * p_mem,int p_size, int p_align, int p_max_entries) {
-
- pool_alloc = memnew( PoolAllocator(p_mem,p_size,p_align,true,p_max_entries));
-
-}
-
-MemoryPoolDynamicPrealloc::~MemoryPoolDynamicPrealloc() {
-
-
- memdelete( pool_alloc );
-}
-
diff --git a/core/os/memory_pool_dynamic_prealloc.h b/core/os/memory_pool_dynamic_prealloc.h
deleted file mode 100644
index a2e51b93f3..0000000000
--- a/core/os/memory_pool_dynamic_prealloc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*************************************************************************/
-/* memory_pool_dynamic_prealloc.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 MEMORY_POOL_DYNAMIC_PREALLOC_H
-#define MEMORY_POOL_DYNAMIC_PREALLOC_H
-
-#include "pool_allocator.h"
-#include "core/os/memory_pool_dynamic.h"
-
-class MemoryPoolDynamicPrealloc : public MemoryPoolDynamic {
-
- PoolAllocator *pool_alloc;
-
-public:
-
- virtual ID alloc(size_t p_amount,const char* p_description);
- virtual void free(ID p_id);
- virtual Error realloc(ID p_id, size_t p_amount);
- virtual bool is_valid(ID p_id);
- virtual size_t get_size(ID p_id) const;
- virtual const char* get_description(ID p_id) const;
-
- virtual Error lock(ID p_id);
- virtual void * get(ID p_ID);
- virtual Error unlock(ID p_id);
- virtual bool is_locked(ID p_id) const;
-
- virtual size_t get_available_mem() const;
- virtual size_t get_total_usage() const;
-
- MemoryPoolDynamicPrealloc(void * p_mem,int p_size, int p_align = 16, int p_max_entries=PoolAllocator::DEFAULT_MAX_ALLOCS);
- ~MemoryPoolDynamicPrealloc();
-};
-
-#endif // MEMORY_POOL_DYNAMIC_PREALLOC_H
diff --git a/core/os/memory_pool_dynamic_static.cpp b/core/os/memory_pool_dynamic_static.cpp
deleted file mode 100644
index b7a1bbc19f..0000000000
--- a/core/os/memory_pool_dynamic_static.cpp
+++ /dev/null
@@ -1,272 +0,0 @@
-/*************************************************************************/
-/* memory_pool_dynamic_static.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 "memory_pool_dynamic_static.h"
-#include "os/memory.h"
-#include "os/os.h"
-#include "ustring.h"
-#include "print_string.h"
-#include <stdio.h>
-
-MemoryPoolDynamicStatic::Chunk *MemoryPoolDynamicStatic::get_chunk(ID p_id) {
-
- uint64_t check = p_id/MAX_CHUNKS;
- uint64_t idx = p_id%MAX_CHUNKS;
-
- if (!chunk[idx].mem || chunk[idx].check!=check)
- return NULL;
-
- return &chunk[idx];
-}
-
-
-const MemoryPoolDynamicStatic::Chunk *MemoryPoolDynamicStatic::get_chunk(ID p_id) const {
-
- uint64_t check = p_id/MAX_CHUNKS;
- uint64_t idx = p_id%MAX_CHUNKS;
-
- if (!chunk[idx].mem || chunk[idx].check!=check)
- return NULL;
-
- return &chunk[idx];
-}
-
-MemoryPoolDynamic::ID MemoryPoolDynamicStatic::alloc(size_t p_amount,const char* p_description) {
-
- _THREAD_SAFE_METHOD_
-
- int idx=-1;
-
- for (int i=0;i<MAX_CHUNKS;i++) {
-
- last_alloc++;
- if (last_alloc>=MAX_CHUNKS)
- last_alloc=0;
-
- if ( !chunk[last_alloc].mem ) {
-
- idx=last_alloc;
- break;
- }
- }
-
-
- if (idx==-1) {
- ERR_EXPLAIN("Out of dynamic Memory IDs");
- ERR_FAIL_V(INVALID_ID);
- //return INVALID_ID;
- }
-
- //chunk[idx].mem = Memory::alloc_static(p_amount,p_description);
- chunk[idx].mem = memalloc(p_amount);
- if (!chunk[idx].mem)
- return INVALID_ID;
-
- chunk[idx].size=p_amount;
- chunk[idx].check=++last_check;
- chunk[idx].descr=p_description;
- chunk[idx].lock=0;
-
- total_usage+=p_amount;
- if (total_usage>max_usage)
- max_usage=total_usage;
-
- ID id = chunk[idx].check*MAX_CHUNKS + (uint64_t)idx;
-
- return id;
-
-}
-void MemoryPoolDynamicStatic::free(ID p_id) {
-
- _THREAD_SAFE_METHOD_
-
- Chunk *c = get_chunk(p_id);
- ERR_FAIL_COND(!c);
-
-
- total_usage-=c->size;
- memfree(c->mem);
-
- c->mem=0;
-
- if (c->lock>0) {
-
- ERR_PRINT("Freed ID Still locked");
- }
-}
-
-Error MemoryPoolDynamicStatic::realloc(ID p_id, size_t p_amount) {
-
- _THREAD_SAFE_METHOD_
-
- Chunk *c = get_chunk(p_id);
- ERR_FAIL_COND_V(!c,ERR_INVALID_PARAMETER);
- ERR_FAIL_COND_V(c->lock > 0 , ERR_LOCKED );
-
-
- void * new_mem = memrealloc(c->mem,p_amount);
-
- ERR_FAIL_COND_V(!new_mem,ERR_OUT_OF_MEMORY);
- total_usage-=c->size;
- c->mem=new_mem;
- c->size=p_amount;
- total_usage+=c->size;
- if (total_usage>max_usage)
- max_usage=total_usage;
-
-
- return OK;
-}
-bool MemoryPoolDynamicStatic::is_valid(ID p_id) {
-
- _THREAD_SAFE_METHOD_
-
- Chunk *c = get_chunk(p_id);
-
- return c!=NULL;
-
-}
-size_t MemoryPoolDynamicStatic::get_size(ID p_id) const {
-
- _THREAD_SAFE_METHOD_
-
- const Chunk *c = get_chunk(p_id);
- ERR_FAIL_COND_V(!c,0);
-
- return c->size;
-
-
-}
-const char* MemoryPoolDynamicStatic::get_description(ID p_id) const {
-
- _THREAD_SAFE_METHOD_
-
- const Chunk *c = get_chunk(p_id);
- ERR_FAIL_COND_V(!c,"");
-
- return c->descr;
-
-}
-
-
-bool MemoryPoolDynamicStatic::is_locked(ID p_id) const {
-
- _THREAD_SAFE_METHOD_
-
- const Chunk *c = get_chunk(p_id);
- ERR_FAIL_COND_V(!c,false);
-
- return c->lock>0;
-
-}
-
-Error MemoryPoolDynamicStatic::lock(ID p_id) {
-
- _THREAD_SAFE_METHOD_
-
- Chunk *c = get_chunk(p_id);
- ERR_FAIL_COND_V(!c,ERR_INVALID_PARAMETER);
-
- c->lock++;
-
- return OK;
-}
-void * MemoryPoolDynamicStatic::get(ID p_id) {
-
- _THREAD_SAFE_METHOD_
-
- const Chunk *c = get_chunk(p_id);
- ERR_FAIL_COND_V(!c,NULL);
- ERR_FAIL_COND_V( c->lock==0, NULL );
-
- return c->mem;
-}
-Error MemoryPoolDynamicStatic::unlock(ID p_id) {
-
- _THREAD_SAFE_METHOD_
-
- Chunk *c = get_chunk(p_id);
- ERR_FAIL_COND_V(!c,ERR_INVALID_PARAMETER);
-
- ERR_FAIL_COND_V( c->lock<=0, ERR_INVALID_PARAMETER );
- c->lock--;
-
- return OK;
-}
-
-size_t MemoryPoolDynamicStatic::get_available_mem() const {
-
- return Memory::get_mem_available();
-}
-
-size_t MemoryPoolDynamicStatic::get_total_usage() const {
- _THREAD_SAFE_METHOD_
-
- return total_usage;
-}
-
-MemoryPoolDynamicStatic::MemoryPoolDynamicStatic() {
-
- last_check=1;
- last_alloc=0;
- total_usage=0;
- max_usage=0;
-}
-
-MemoryPoolDynamicStatic::~MemoryPoolDynamicStatic() {
-
-#ifdef DEBUG_MEMORY_ENABLED
-
- if (OS::get_singleton()->is_stdout_verbose()) {
-
- if (total_usage>0) {
-
- ERR_PRINT("DYNAMIC ALLOC: ** MEMORY LEAKS DETECTED **");
- ERR_PRINT(String("DYNAMIC ALLOC: "+String::num(total_usage)+" bytes of memory in use at exit.").ascii().get_data());
-
- ERR_PRINT("DYNAMIC ALLOC: Following is the list of leaked allocations:");
-
- for (int i=0;i<MAX_CHUNKS;i++) {
-
- if (chunk[i].mem) {
-
- ERR_PRINT(String("\t"+String::num(chunk[i].size)+" bytes - "+String(chunk[i].descr)).ascii().get_data());
- }
- }
-
- ERR_PRINT("DYNAMIC ALLOC: End of Report.");
-
- print_line("INFO: dynmem - max: "+itos(max_usage)+", "+itos(total_usage)+" leaked.");
- } else {
-
- print_line("INFO: dynmem - max: "+itos(max_usage)+", no leaks.");
- }
- }
-
-#endif
-}
diff --git a/core/os/memory_pool_dynamic_static.h b/core/os/memory_pool_dynamic_static.h
deleted file mode 100644
index a72d39355c..0000000000
--- a/core/os/memory_pool_dynamic_static.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*************************************************************************/
-/* memory_pool_dynamic_static.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* http://www.godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2016 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 MEMORY_POOL_DYNAMIC_STATIC_H
-#define MEMORY_POOL_DYNAMIC_STATIC_H
-
-#include "os/memory_pool_dynamic.h"
-#include "typedefs.h"
-#include "os/thread_safe.h"
-
-class MemoryPoolDynamicStatic : public MemoryPoolDynamic {
-
- _THREAD_SAFE_CLASS_
-
- enum {
- MAX_CHUNKS=65536
- };
-
-
- struct Chunk {
-
- uint64_t lock;
- uint64_t check;
- void *mem;
- size_t size;
- const char *descr;
-
- Chunk() { mem=NULL; lock=0; check=0; }
- };
-
- Chunk chunk[MAX_CHUNKS];
- uint64_t last_check;
- int last_alloc;
- size_t total_usage;
- size_t max_usage;
-
- Chunk *get_chunk(ID p_id);
- const Chunk *get_chunk(ID p_id) const;
-public:
-
- virtual ID alloc(size_t p_amount,const char* p_description);
- virtual void free(ID p_id);
- virtual Error realloc(ID p_id, size_t p_amount);
- virtual bool is_valid(ID p_id);
- virtual size_t get_size(ID p_id) const;
- virtual const char* get_description(ID p_id) const;
-
- virtual bool is_locked(ID p_id) const;
- virtual Error lock(ID p_id);
- virtual void * get(ID p_ID);
- virtual Error unlock(ID p_id);
-
- virtual size_t get_available_mem() const;
- virtual size_t get_total_usage() const;
-
- MemoryPoolDynamicStatic();
- virtual ~MemoryPoolDynamicStatic();
-
-};
-
-#endif
diff --git a/core/os/os.cpp b/core/os/os.cpp
index 7333d667db..677bf63e69 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -371,7 +371,7 @@ int OS::get_static_memory_usage() const {
}
int OS::get_dynamic_memory_usage() const{
- return Memory::get_dynamic_mem_usage();
+ return MemoryPool::total_memory;
}
int OS::get_static_memory_peak_usage() const {
@@ -533,7 +533,7 @@ bool OS::is_joy_known(int p_device) {
}
String OS::get_joy_guid(int p_device) const {
- return "Default Joystick";
+ return "Default Joypad";
}
void OS::set_context(int p_context) {
diff --git a/core/os/rw_lock.cpp b/core/os/rw_lock.cpp
new file mode 100644
index 0000000000..9b2d1f8a46
--- /dev/null
+++ b/core/os/rw_lock.cpp
@@ -0,0 +1,21 @@
+#include "rw_lock.h"
+#include "error_macros.h"
+#include <stddef.h>
+
+
+
+RWLock* (*RWLock::create_func)()=0;
+
+RWLock *RWLock::create() {
+
+ ERR_FAIL_COND_V( !create_func, 0 );
+
+ return create_func();
+}
+
+
+RWLock::~RWLock() {
+
+
+}
+
diff --git a/core/os/rw_lock.h b/core/os/rw_lock.h
new file mode 100644
index 0000000000..c513e6d636
--- /dev/null
+++ b/core/os/rw_lock.h
@@ -0,0 +1,46 @@
+#ifndef RWLOCK_H
+#define RWLOCK_H
+
+#include "error_list.h"
+
+class RWLock {
+protected:
+ static RWLock* (*create_func)();
+
+public:
+
+ virtual void read_lock()=0; ///< Lock the rwlock, block if locked by someone else
+ virtual void read_unlock()=0; ///< Unlock the rwlock, let other threads continue
+ virtual Error read_try_lock()=0; ///< Attempt to lock the rwlock, OK on success, ERROR means it can't lock.
+
+ virtual void write_lock()=0; ///< Lock the rwlock, block if locked by someone else
+ virtual void write_unlock()=0; ///< Unlock the rwlock, let other thwrites continue
+ virtual Error write_try_lock()=0; ///< Attempt to lock the rwlock, OK on success, ERROR means it can't lock.
+
+ static RWLock * create(); ///< Create a rwlock
+
+ virtual ~RWLock();
+};
+
+
+class RWLockRead {
+
+ RWLock *lock;
+public:
+
+ RWLockRead(RWLock* p_lock) { lock=p_lock; if (lock) lock->read_lock(); }
+ ~RWLockRead() { if (lock) lock->read_unlock(); }
+
+};
+
+class RWLockWrite {
+
+ RWLock *lock;
+public:
+
+ RWLockWrite(RWLock* p_lock) { lock=p_lock; if (lock) lock->write_lock(); }
+ ~RWLockWrite() { if (lock) lock->write_unlock(); }
+
+};
+
+#endif // RWLOCK_H
diff --git a/core/packed_data_container.cpp b/core/packed_data_container.cpp
index 8bf77b735a..77afbfc214 100644
--- a/core/packed_data_container.cpp
+++ b/core/packed_data_container.cpp
@@ -82,7 +82,7 @@ Variant PackedDataContainer::_iter_get_ofs(const Variant& p_iter,uint32_t p_offs
if (pos<0 || pos>=size)
return Variant();
- DVector<uint8_t>::Read rd=data.read();
+ PoolVector<uint8_t>::Read rd=data.read();
const uint8_t *r=&rd[p_offset];
uint32_t type = decode_uint32(r);
@@ -131,7 +131,7 @@ Variant PackedDataContainer::_get_at_ofs(uint32_t p_ofs,const uint8_t *p_buf,boo
uint32_t PackedDataContainer::_type_at_ofs(uint32_t p_ofs) const {
- DVector<uint8_t>::Read rd=data.read();
+ PoolVector<uint8_t>::Read rd=data.read();
const uint8_t *r=&rd[p_ofs];
uint32_t type = decode_uint32(r);
@@ -140,7 +140,7 @@ uint32_t PackedDataContainer::_type_at_ofs(uint32_t p_ofs) const {
int PackedDataContainer::_size(uint32_t p_ofs) const {
- DVector<uint8_t>::Read rd=data.read();
+ PoolVector<uint8_t>::Read rd=data.read();
const uint8_t *r=&rd[p_ofs];
uint32_t type = decode_uint32(r);
@@ -160,7 +160,7 @@ int PackedDataContainer::_size(uint32_t p_ofs) const {
Variant PackedDataContainer::_key_at_ofs(uint32_t p_ofs,const Variant& p_key,bool &err) const {
- DVector<uint8_t>::Read rd=data.read();
+ PoolVector<uint8_t>::Read rd=data.read();
const uint8_t *r=&rd[p_ofs];
uint32_t type = decode_uint32(r);
@@ -344,21 +344,21 @@ Error PackedDataContainer::pack(const Variant& p_data) {
_pack(p_data,tmpdata,string_cache);
datalen=tmpdata.size();
data.resize(tmpdata.size());
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
copymem(w.ptr(),tmpdata.ptr(),tmpdata.size());
return OK;
}
-void PackedDataContainer::_set_data(const DVector<uint8_t>& p_data) {
+void PackedDataContainer::_set_data(const PoolVector<uint8_t>& p_data) {
data=p_data;
datalen=data.size();
}
-DVector<uint8_t> PackedDataContainer::_get_data() const {
+PoolVector<uint8_t> PackedDataContainer::_get_data() const {
return data;
}
diff --git a/core/packed_data_container.h b/core/packed_data_container.h
index 5e0180a424..f8ff43f9b0 100644
--- a/core/packed_data_container.h
+++ b/core/packed_data_container.h
@@ -50,7 +50,7 @@ class PackedDataContainer : public Resource {
};
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
int datalen;
@@ -73,8 +73,8 @@ friend class PackedDataContainerRef;
protected:
- void _set_data(const DVector<uint8_t>& p_data);
- DVector<uint8_t> _get_data() const;
+ void _set_data(const PoolVector<uint8_t>& p_data);
+ PoolVector<uint8_t> _get_data() const;
static void _bind_methods();
public:
diff --git a/core/path_remap.cpp b/core/path_remap.cpp
index 92a2ab9af7..980e8f76e7 100644
--- a/core/path_remap.cpp
+++ b/core/path_remap.cpp
@@ -124,13 +124,13 @@ void PathRemap::clear_remaps() {
void PathRemap::load_remaps() {
// default remaps first
- DVector<String> remaps = GlobalConfig::get_singleton()->get("remap/all");
+ PoolVector<String> remaps = GlobalConfig::get_singleton()->get("remap/all");
{
int rlen = remaps.size();
ERR_FAIL_COND( rlen%2 );
- DVector<String>::Read r = remaps.read();
+ PoolVector<String>::Read r = remaps.read();
for(int i=0;i<rlen/2;i++) {
String from = r[i*2+0];
@@ -147,7 +147,7 @@ void PathRemap::load_remaps() {
int rlen = remaps.size();
ERR_FAIL_COND( rlen%2 );
- DVector<String>::Read r = remaps.read();
+ PoolVector<String>::Read r = remaps.read();
for(int i=0;i<rlen/2;i++) {
String from = r[i*2+0];
diff --git a/core/register_core_types.cpp b/core/register_core_types.cpp
index e3c18217e9..fe88d1d13d 100644
--- a/core/register_core_types.cpp
+++ b/core/register_core_types.cpp
@@ -44,7 +44,6 @@
#include "translation.h"
#include "compressed_translation.h"
#include "io/translation_loader_po.h"
-#include "io/resource_format_xml.h"
#include "io/resource_format_binary.h"
#include "io/stream_peer_ssl.h"
#include "os/input.h"
@@ -56,10 +55,6 @@
#include "input_map.h"
#include "undo_redo.h"
-#ifdef XML_ENABLED
-static ResourceFormatSaverXML *resource_saver_xml=NULL;
-static ResourceFormatLoaderXML *resource_loader_xml=NULL;
-#endif
static ResourceFormatSaverBinary *resource_saver_binary=NULL;
static ResourceFormatLoaderBinary *resource_loader_binary=NULL;
@@ -85,6 +80,9 @@ extern void unregister_variant_methods();
void register_core_types() {
+ ObjectDB::setup();
+ ResourceCache::setup();
+ MemoryPool::setup();
_global_mutex=Mutex::create();
@@ -106,13 +104,6 @@ void register_core_types() {
resource_loader_binary = memnew( ResourceFormatLoaderBinary );
ResourceLoader::add_resource_format_loader(resource_loader_binary);
-#ifdef XML_ENABLED
- resource_saver_xml = memnew( ResourceFormatSaverXML );
- ResourceSaver::add_resource_format_saver(resource_saver_xml);
- resource_loader_xml = memnew( ResourceFormatLoaderXML );
- ResourceLoader::add_resource_format_loader(resource_loader_xml);
-#endif
-
ClassDB::register_class<Object>();
@@ -209,12 +200,6 @@ void unregister_core_types() {
memdelete( _marshalls );
memdelete( _geometry );
-#ifdef XML_ENABLED
- if (resource_saver_xml)
- memdelete(resource_saver_xml);
- if (resource_loader_xml)
- memdelete(resource_loader_xml);
-#endif
if (resource_saver_binary)
memdelete(resource_saver_binary);
@@ -241,4 +226,7 @@ void unregister_core_types() {
memdelete(_global_mutex);
_global_mutex=NULL; //still needed at a few places
};
+
+ MemoryPool::cleanup();
+
}
diff --git a/core/resource.cpp b/core/resource.cpp
index a503e965b0..9545d8c3da 100644
--- a/core/resource.cpp
+++ b/core/resource.cpp
@@ -31,6 +31,7 @@
#include <stdio.h>
#include "os/file_access.h"
#include "io/resource_loader.h"
+#include "script_language.h"
void ResourceImportMetadata::set_editor(const String& p_editor) {
@@ -164,17 +165,31 @@ void Resource::set_path(const String& p_path, bool p_take_over) {
if (path_cache!="") {
+ ResourceCache::lock->write_lock();
ResourceCache::resources.erase(path_cache);
+ ResourceCache::lock->write_unlock();
}
path_cache="";
- if (ResourceCache::resources.has( p_path )) {
+
+ ResourceCache::lock->read_lock();
+ bool has_path = ResourceCache::resources.has( p_path );
+ ResourceCache::lock->read_unlock();
+
+ if (has_path) {
if (p_take_over) {
+ ResourceCache::lock->write_lock();
ResourceCache::resources.get(p_path)->set_name("");
+ ResourceCache::lock->write_unlock();
} else {
ERR_EXPLAIN("Another resource is loaded from path: "+p_path);
- ERR_FAIL_COND( ResourceCache::resources.has( p_path ) );
+
+ ResourceCache::lock->read_lock();
+ bool exists = ResourceCache::resources.has( p_path );
+ ResourceCache::lock->read_unlock();
+
+ ERR_FAIL_COND( exists );
}
}
@@ -182,10 +197,12 @@ void Resource::set_path(const String& p_path, bool p_take_over) {
if (path_cache!="") {
+ ResourceCache::lock->write_lock();
ResourceCache::resources[path_cache]=this;;
+ ResourceCache::lock->write_unlock();
}
- _change_notify("resource/path");
+ _change_notify("resource_path");
_resource_path_changed();
}
@@ -209,7 +226,7 @@ int Resource::get_subindex() const{
void Resource::set_name(const String& p_name) {
name=p_name;
- _change_notify("resource/name");
+ _change_notify("resource_name");
}
String Resource::get_name() const {
@@ -241,7 +258,7 @@ void Resource::reload_from_file() {
if (!(E->get().usage&PROPERTY_USAGE_STORAGE))
continue;
- if (E->get().name=="resource/path")
+ if (E->get().name=="resource_path")
continue; //do not change path
set(E->get().name,s->get(E->get().name));
@@ -250,8 +267,51 @@ void Resource::reload_from_file() {
}
+Ref<Resource> Resource::duplicate_for_local_scene(Node *p_for_scene, Map<Ref<Resource>, Ref<Resource> > &remap_cache) {
+
+
+ List<PropertyInfo> plist;
+ get_property_list(&plist);
+
+
+ Resource *r = (Resource*)ClassDB::instance(get_class());
+ ERR_FAIL_COND_V(!r,Ref<Resource>());
+
+ r->local_scene=p_for_scene;
+
+ for(List<PropertyInfo>::Element *E=plist.front();E;E=E->next()) {
+
+ if (!(E->get().usage&PROPERTY_USAGE_STORAGE))
+ continue;
+ Variant p = get(E->get().name);
+ if (p.get_type()==Variant::OBJECT) {
+
+ RES sr = p;
+ if (sr.is_valid()) {
+
+ if (sr->is_local_to_scene()) {
+ if (remap_cache.has(sr)) {
+ p=remap_cache[sr];
+ } else {
+
+
+ RES dupe = sr->duplicate_for_local_scene(p_for_scene,remap_cache);
+ p=dupe;
+ remap_cache[sr]=dupe;
+ }
+ }
+ }
+ }
+
+ r->set(E->get().name,p);
+ }
+
+ return Ref<Resource>(r);
+}
+
Ref<Resource> Resource::duplicate(bool p_subresources) {
+
List<PropertyInfo> plist;
get_property_list(&plist);
@@ -289,24 +349,6 @@ void Resource::_take_over_path(const String& p_path) {
}
-void Resource::_bind_methods() {
-
- ClassDB::bind_method(_MD("set_path","path"),&Resource::_set_path);
- ClassDB::bind_method(_MD("take_over_path","path"),&Resource::_take_over_path);
- ClassDB::bind_method(_MD("get_path"),&Resource::get_path);
- ClassDB::bind_method(_MD("set_name","name"),&Resource::set_name);
- ClassDB::bind_method(_MD("get_name"),&Resource::get_name);
- ClassDB::bind_method(_MD("get_rid"),&Resource::get_rid);
- ClassDB::bind_method(_MD("set_import_metadata","metadata"),&Resource::set_import_metadata);
- ClassDB::bind_method(_MD("get_import_metadata"),&Resource::get_import_metadata);
-
- ClassDB::bind_method(_MD("duplicate","subresources"),&Resource::duplicate,DEFVAL(false));
- ADD_SIGNAL( MethodInfo("changed") );
- ADD_GROUP("Resource","resource_");
- ADD_PROPERTY( PropertyInfo(Variant::STRING,"resource_path",PROPERTY_HINT_NONE,"",PROPERTY_USAGE_EDITOR ), _SCS("set_path"),_SCS("get_path"));
- ADD_PROPERTYNZ( PropertyInfo(Variant::STRING,"resource_name"), _SCS("set_name"),_SCS("get_name"));
-}
-
RID Resource::get_rid() const {
return RID();
@@ -378,6 +420,62 @@ uint32_t Resource::hash_edited_version() const {
#endif
+void Resource::set_local_to_scene(bool p_enable) {
+
+ local_to_scene=p_enable;
+}
+
+bool Resource::is_local_to_scene() const {
+
+ return local_to_scene;
+}
+
+Node* Resource::get_local_scene() const {
+
+ if (local_scene)
+ return local_scene;
+
+ if (_get_local_scene_func) {
+ return _get_local_scene_func();
+ }
+
+ return NULL;
+}
+
+void Resource::setup_local_to_scene() {
+
+ if (get_script_instance())
+ get_script_instance()->call("_setup_local_to_scene");
+}
+
+Node* (*Resource::_get_local_scene_func)()=NULL;
+
+
+void Resource::_bind_methods() {
+
+ ClassDB::bind_method(_MD("set_path","path"),&Resource::_set_path);
+ ClassDB::bind_method(_MD("take_over_path","path"),&Resource::_take_over_path);
+ ClassDB::bind_method(_MD("get_path"),&Resource::get_path);
+ ClassDB::bind_method(_MD("set_name","name"),&Resource::set_name);
+ ClassDB::bind_method(_MD("get_name"),&Resource::get_name);
+ ClassDB::bind_method(_MD("get_rid"),&Resource::get_rid);
+ ClassDB::bind_method(_MD("set_import_metadata","metadata"),&Resource::set_import_metadata);
+ ClassDB::bind_method(_MD("get_import_metadata"),&Resource::get_import_metadata);
+ ClassDB::bind_method(_MD("set_local_to_scene","enable"),&Resource::set_local_to_scene);
+ ClassDB::bind_method(_MD("is_local_to_scene"),&Resource::is_local_to_scene);
+ ClassDB::bind_method(_MD("get_local_scene:Node"),&Resource::get_local_scene);
+ ClassDB::bind_method(_MD("setup_local_to_scene"),&Resource::setup_local_to_scene);
+
+ ClassDB::bind_method(_MD("duplicate","subresources"),&Resource::duplicate,DEFVAL(false));
+ ADD_SIGNAL( MethodInfo("changed") );
+ ADD_GROUP("Resource","resource_");
+ ADD_PROPERTYNZ( PropertyInfo(Variant::BOOL,"resource_local_to_scene" ), _SCS("set_local_to_scene"),_SCS("is_local_to_scene"));
+ ADD_PROPERTY( PropertyInfo(Variant::STRING,"resource_path",PROPERTY_HINT_NONE,"",PROPERTY_USAGE_EDITOR ), _SCS("set_path"),_SCS("get_path"));
+ ADD_PROPERTYNZ( PropertyInfo(Variant::STRING,"resource_name"), _SCS("set_name"),_SCS("get_name"));
+
+ BIND_VMETHOD( MethodInfo("_setup_local_to_scene") );
+
+}
Resource::Resource() {
@@ -386,6 +484,7 @@ Resource::Resource() {
#endif
subindex=0;
+ local_scene=NULL;
}
@@ -393,8 +492,11 @@ Resource::Resource() {
Resource::~Resource() {
- if (path_cache!="")
+ if (path_cache!="") {
+ ResourceCache::lock->write_lock();
ResourceCache::resources.erase(path_cache);
+ ResourceCache::lock->write_unlock();
+ }
if (owners.size()) {
WARN_PRINT("Resource is still owned");
}
@@ -402,18 +504,24 @@ Resource::~Resource() {
HashMap<String,Resource*> ResourceCache::resources;
+RWLock *ResourceCache::lock=NULL;
+
+void ResourceCache::setup() {
+
+ lock = RWLock::create();
+}
+
void ResourceCache::clear() {
if (resources.size())
ERR_PRINT("Resources Still in use at Exit!");
resources.clear();
+ memdelete(lock);
}
void ResourceCache::reload_externals() {
- GLOBAL_LOCK_FUNCTION
-
//const String *K=NULL;
//while ((K=resources.next(K))) {
// resources[*K]->reload_external_data();
@@ -423,15 +531,21 @@ void ResourceCache::reload_externals() {
bool ResourceCache::has(const String& p_path) {
- GLOBAL_LOCK_FUNCTION
+ lock->read_lock();;
+ bool b = resources.has(p_path);
+ lock->read_unlock();;
+
- return resources.has(p_path);
+ return b;
}
Resource *ResourceCache::get(const String& p_path) {
- GLOBAL_LOCK_FUNCTION
+ lock->read_lock();
Resource **res = resources.getptr(p_path);
+
+ lock->read_unlock();
+
if (!res) {
return NULL;
}
@@ -443,6 +557,7 @@ Resource *ResourceCache::get(const String& p_path) {
void ResourceCache::get_cached_resources(List<Ref<Resource> > *p_resources) {
+ lock->read_lock();
const String* K=NULL;
while((K=resources.next(K))) {
@@ -450,17 +565,22 @@ void ResourceCache::get_cached_resources(List<Ref<Resource> > *p_resources) {
p_resources->push_back( Ref<Resource>( r ));
}
+ lock->read_unlock();
}
int ResourceCache::get_cached_resource_count() {
- return resources.size();
+ lock->read_lock();
+ int rc = resources.size();
+ lock->read_unlock();
+
+ return rc;
}
void ResourceCache::dump(const char* p_file,bool p_short) {
#ifdef DEBUG_ENABLED
- GLOBAL_LOCK_FUNCTION
+ lock->read_lock();
Map<String,int> type_count;
@@ -500,5 +620,7 @@ void ResourceCache::dump(const char* p_file,bool p_short) {
memdelete(f);
}
+ lock->read_unlock();
+
#endif
}
diff --git a/core/resource.h b/core/resource.h
index cb109b3767..8b73bcdc57 100644
--- a/core/resource.h
+++ b/core/resource.h
@@ -61,8 +61,9 @@ class ResourceImportMetadata : public Reference {
Map<String,Variant> options;
StringArray _get_options() const;
+
protected:
- virtual bool _use_builtin_script() const { return false; }
+
static void _bind_methods();
public:
@@ -82,6 +83,7 @@ public:
void get_options(List<String> *r_options) const;
+
ResourceImportMetadata();
};
@@ -108,6 +110,10 @@ friend class ResourceCache;
uint64_t last_modified_time;
#endif
+ bool local_to_scene;
+friend class SceneState;
+ Node* local_scene;
+
protected:
void emit_changed();
@@ -121,6 +127,8 @@ protected:
void _take_over_path(const String& p_path);
public:
+ static Node* (*_get_local_scene_func)(); //used by editor
+
virtual bool editor_can_reload_from_file();
virtual void reload_from_file();
@@ -137,12 +145,17 @@ public:
int get_subindex() const;
Ref<Resource> duplicate(bool p_subresources=false);
+ Ref<Resource> duplicate_for_local_scene(Node *p_scene,Map<Ref<Resource>,Ref<Resource> >& remap_cache);
+
void set_import_metadata(const Ref<ResourceImportMetadata>& p_metadata);
Ref<ResourceImportMetadata> get_import_metadata() const;
+ void set_local_to_scene(bool p_enable);
+ bool is_local_to_scene() const;
+ virtual void setup_local_to_scene();
-
+ Node* get_local_scene() const;
#ifdef TOOLS_ENABLED
@@ -165,9 +178,12 @@ typedef Ref<Resource> RES;
class ResourceCache {
friend class Resource;
+ static RWLock *lock;
static HashMap<String,Resource*> resources;
friend void unregister_core_types();
static void clear();
+friend void register_core_types();
+ static void setup();
public:
static void reload_externals();
diff --git a/core/safe_refcount.cpp b/core/safe_refcount.cpp
index f0d4fbd610..ede37bbe8a 100644
--- a/core/safe_refcount.cpp
+++ b/core/safe_refcount.cpp
@@ -76,6 +76,9 @@ uint32_t atomic_decrement( register uint32_t * pw ) {
return InterlockedDecrement( (LONG volatile*)pw );
}
+uint32_t atomic_increment( register uint32_t * pw ) {
+ return InterlockedIncrement( (LONG volatile*)pw );
+}
#elif defined(__GNUC__)
uint32_t atomic_conditional_increment( register uint32_t * pw ) {
@@ -95,6 +98,12 @@ uint32_t atomic_decrement( register uint32_t * pw ) {
}
+uint32_t atomic_increment( register uint32_t * pw ) {
+
+ return __sync_add_and_fetch(pw,1);
+
+}
+
#else
//no threads supported?
#error Must provide atomic functions for this platform or compiler!
diff --git a/core/safe_refcount.h b/core/safe_refcount.h
index 08bea9d244..6e349d89d8 100644
--- a/core/safe_refcount.h
+++ b/core/safe_refcount.h
@@ -38,6 +38,7 @@
uint32_t atomic_conditional_increment( register uint32_t * counter );
uint32_t atomic_decrement( register uint32_t * pw );
+uint32_t atomic_increment( register uint32_t * pw );
diff --git a/core/string_db.cpp b/core/string_db.cpp
index 471195ceda..be35a44ed1 100644
--- a/core/string_db.cpp
+++ b/core/string_db.cpp
@@ -41,9 +41,12 @@ StringName _scs_create(const char *p_chr) {
}
bool StringName::configured=false;
+Mutex* StringName::lock=NULL;
void StringName::setup() {
+ lock = Mutex::create();
+
ERR_FAIL_COND(configured);
for(int i=0;i<STRING_TABLE_LEN;i++) {
@@ -54,7 +57,8 @@ void StringName::setup() {
void StringName::cleanup() {
- _global_lock();
+ lock->lock();
+
int lost_strings=0;
for(int i=0;i<STRING_TABLE_LEN;i++) {
@@ -78,7 +82,9 @@ void StringName::cleanup() {
if (OS::get_singleton()->is_stdout_verbose() && lost_strings) {
print_line("StringName: "+itos(lost_strings)+" unclaimed string names at exit.");
}
- _global_unlock();
+ lock->unlock();
+
+ memdelete(lock);
}
void StringName::unref() {
@@ -87,7 +93,7 @@ void StringName::unref() {
if (_data && _data->refcount.unref()) {
- _global_lock();
+ lock->lock();
if (_data->prev) {
_data->prev->next=_data->next;
@@ -103,7 +109,7 @@ void StringName::unref() {
}
memdelete(_data);
- _global_unlock();
+ lock->unlock();
}
_data=NULL;
@@ -186,7 +192,7 @@ StringName::StringName(const char *p_name) {
if (!p_name || p_name[0]==0)
return; //empty, ignore
- _global_lock();
+ lock->lock();
uint32_t hash = String::hash(p_name);
@@ -206,7 +212,7 @@ StringName::StringName(const char *p_name) {
if (_data) {
if (_data->refcount.ref()) {
// exists
- _global_unlock();
+ lock->unlock();
return;
} else {
@@ -226,8 +232,7 @@ StringName::StringName(const char *p_name) {
_table[idx]=_data;
- _global_unlock();
-
+ lock->unlock();
}
StringName::StringName(const StaticCString& p_static_string) {
@@ -238,7 +243,7 @@ StringName::StringName(const StaticCString& p_static_string) {
ERR_FAIL_COND( !p_static_string.ptr || !p_static_string.ptr[0]);
- _global_lock();
+ lock->lock();
uint32_t hash = String::hash(p_static_string.ptr);
@@ -258,7 +263,7 @@ StringName::StringName(const StaticCString& p_static_string) {
if (_data) {
if (_data->refcount.ref()) {
// exists
- _global_unlock();
+ lock->unlock();
return;
} else {
@@ -278,7 +283,8 @@ StringName::StringName(const StaticCString& p_static_string) {
_table[idx]=_data;
- _global_unlock();
+ lock->unlock();
+
}
@@ -292,7 +298,7 @@ StringName::StringName(const String& p_name) {
if (p_name==String())
return;
- _global_lock();
+ lock->lock();
uint32_t hash = p_name.hash();
@@ -311,7 +317,7 @@ StringName::StringName(const String& p_name) {
if (_data) {
if (_data->refcount.ref()) {
// exists
- _global_unlock();
+ lock->unlock();
return;
} else {
@@ -332,7 +338,7 @@ StringName::StringName(const String& p_name) {
_table[idx]->prev=_data;
_table[idx]=_data;
- _global_unlock();
+ lock->unlock();
}
@@ -344,7 +350,7 @@ StringName StringName::search(const char *p_name) {
if (!p_name[0])
return StringName();
- _global_lock();
+ lock->lock();
uint32_t hash = String::hash(p_name);
@@ -361,12 +367,13 @@ StringName StringName::search(const char *p_name) {
}
if (_data && _data->refcount.ref()) {
- _global_unlock();
+ lock->unlock();
+
return StringName(_data);
}
- _global_unlock();
+ lock->unlock();
return StringName(); //does not exist
@@ -380,7 +387,7 @@ StringName StringName::search(const CharType *p_name) {
if (!p_name[0])
return StringName();
- _global_lock();
+ lock->lock();
uint32_t hash = String::hash(p_name);
@@ -397,12 +404,12 @@ StringName StringName::search(const CharType *p_name) {
}
if (_data && _data->refcount.ref()) {
- _global_unlock();
+ lock->unlock();
return StringName(_data);
}
- _global_unlock();
+ lock->unlock();
return StringName(); //does not exist
}
@@ -410,7 +417,7 @@ StringName StringName::search(const String &p_name) {
ERR_FAIL_COND_V( p_name=="", StringName() );
- _global_lock();
+ lock->lock();
uint32_t hash = p_name.hash();
@@ -427,12 +434,12 @@ StringName StringName::search(const String &p_name) {
}
if (_data && _data->refcount.ref()) {
- _global_unlock();
+ lock->unlock();
return StringName(_data);
}
- _global_unlock();
+ lock->unlock();
return StringName(); //does not exist
}
diff --git a/core/string_db.h b/core/string_db.h
index fd24159265..a14cdbc7ba 100644
--- a/core/string_db.h
+++ b/core/string_db.h
@@ -32,7 +32,7 @@
#include "hash_map.h"
#include "ustring.h"
#include "safe_refcount.h"
-
+#include "os/mutex.h"
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
@@ -83,6 +83,7 @@ class StringName {
friend void register_core_types();
friend void unregister_core_types();
+ static Mutex *lock;
static void setup();
static void cleanup();
static bool configured;
diff --git a/core/translation.cpp b/core/translation.cpp
index 8e58b45565..dd0f59f343 100644
--- a/core/translation.cpp
+++ b/core/translation.cpp
@@ -309,6 +309,7 @@ static const char* locale_list[]={
"sa_IN", // Sanskrit (India)
"sat_IN", // Santali (India)
"sc_IT", // Sardinian (Italy)
+"sco", // Scots
"sd_IN", // Sindhi (India)
"se_NO", // Northern Sami (Norway)
"sgs_LT", // Samogitian (Lithuania)
@@ -799,9 +800,9 @@ static bool is_valid_locale(const String& p_locale) {
return false;
}
-DVector<String> Translation::_get_messages() const {
+PoolVector<String> Translation::_get_messages() const {
- DVector<String> msgs;
+ PoolVector<String> msgs;
msgs.resize(translation_map.size()*2);
int idx=0;
for (const Map<StringName, StringName>::Element *E=translation_map.front();E;E=E->next()) {
@@ -814,9 +815,9 @@ DVector<String> Translation::_get_messages() const {
return msgs;
}
-DVector<String> Translation::_get_message_list() const {
+PoolVector<String> Translation::_get_message_list() const {
- DVector<String> msgs;
+ PoolVector<String> msgs;
msgs.resize(translation_map.size());
int idx=0;
for (const Map<StringName, StringName>::Element *E=translation_map.front();E;E=E->next()) {
@@ -829,12 +830,12 @@ DVector<String> Translation::_get_message_list() const {
}
-void Translation::_set_messages(const DVector<String>& p_messages){
+void Translation::_set_messages(const PoolVector<String>& p_messages){
int msg_count=p_messages.size();
ERR_FAIL_COND(msg_count%2);
- DVector<String>::Read r = p_messages.read();
+ PoolVector<String>::Read r = p_messages.read();
for(int i=0;i<msg_count;i+=2) {
@@ -938,6 +939,10 @@ void TranslationServer::set_locale(const String& p_locale) {
else {
locale=univ_locale;
}
+
+ if (OS::get_singleton()->get_main_loop()) {
+ OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_TRANSLATION_CHANGED);
+ }
}
String TranslationServer::get_locale() const {
@@ -1048,12 +1053,12 @@ TranslationServer *TranslationServer::singleton=NULL;
bool TranslationServer::_load_translations(const String& p_from) {
if (GlobalConfig::get_singleton()->has(p_from)) {
- DVector<String> translations=GlobalConfig::get_singleton()->get(p_from);
+ PoolVector<String> translations=GlobalConfig::get_singleton()->get(p_from);
int tcount=translations.size();
if (tcount) {
- DVector<String>::Read r = translations.read();
+ PoolVector<String>::Read r = translations.read();
for(int i=0;i<tcount;i++) {
diff --git a/core/translation.h b/core/translation.h
index 01edc82139..85ab4a229d 100644
--- a/core/translation.h
+++ b/core/translation.h
@@ -42,10 +42,10 @@ class Translation : public Resource {
String locale;
Map<StringName, StringName> translation_map;
- DVector<String> _get_message_list() const;
+ PoolVector<String> _get_message_list() const;
- DVector<String> _get_messages() const;
- void _set_messages(const DVector<String>& p_messages);
+ PoolVector<String> _get_messages() const;
+ void _set_messages(const PoolVector<String>& p_messages);
protected:
static void _bind_methods();
diff --git a/core/ustring.cpp b/core/ustring.cpp
index 0c26fe90c6..27bb8eac72 100644
--- a/core/ustring.cpp
+++ b/core/ustring.cpp
@@ -1547,20 +1547,20 @@ String::String(const StrRange& p_range) {
int String::hex_to_int(bool p_with_prefix) const {
- int l = length();
+ int l = length();
if (p_with_prefix && l<3)
return 0;
- const CharType *s=ptr();
+ const CharType *s=ptr();
- int sign = s[0]=='-' ? -1 : 1;
+ int sign = s[0]=='-' ? -1 : 1;
- if (sign<0) {
- s++;
- l--;
+ if (sign<0) {
+ s++;
+ l--;
if (p_with_prefix && l<2)
- return 0;
- }
+ return 0;
+ }
if (p_with_prefix) {
if (s[0]!='0' || s[1]!='x')
@@ -1569,26 +1569,74 @@ int String::hex_to_int(bool p_with_prefix) const {
l-=2;
};
- int hex=0;
+ int hex=0;
- while(*s) {
+ while(*s) {
- CharType c = LOWERCASE(*s);
- int n;
- if (c>='0' && c<='9') {
- n=c-'0';
- } else if (c>='a' && c<='f') {
- n=(c-'a')+10;
- } else {
- return 0;
- }
+ CharType c = LOWERCASE(*s);
+ int n;
+ if (c>='0' && c<='9') {
+ n=c-'0';
+ } else if (c>='a' && c<='f') {
+ n=(c-'a')+10;
+ } else {
+ return 0;
+ }
- hex*=16;
- hex+=n;
- s++;
- }
+ hex*=16;
+ hex+=n;
+ s++;
+ }
+
+ return hex*sign;
+
+}
+
+
+int64_t String::hex_to_int64(bool p_with_prefix) const {
+
+ int l = length();
+ if (p_with_prefix && l<3)
+ return 0;
+
+ const CharType *s=ptr();
+
+ int64_t sign = s[0]=='-' ? -1 : 1;
+
+ if (sign<0) {
+ s++;
+ l--;
+ if (p_with_prefix && l<2)
+ return 0;
+ }
+
+ if (p_with_prefix) {
+ if (s[0]!='0' || s[1]!='x')
+ return 0;
+ s+=2;
+ l-=2;
+ };
+
+ int64_t hex=0;
+
+ while(*s) {
+
+ CharType c = LOWERCASE(*s);
+ int64_t n;
+ if (c>='0' && c<='9') {
+ n=c-'0';
+ } else if (c>='a' && c<='f') {
+ n=(c-'a')+10;
+ } else {
+ return 0;
+ }
+
+ hex*=16;
+ hex+=n;
+ s++;
+ }
- return hex*sign;
+ return hex*sign;
}
diff --git a/core/ustring.h b/core/ustring.h
index 8b008c2ba4..9a145143d0 100644
--- a/core/ustring.h
+++ b/core/ustring.h
@@ -147,6 +147,7 @@ public:
int hex_to_int(bool p_with_prefix = true) const;
int to_int() const;
+ int64_t hex_to_int64(bool p_with_prefix = true) const;
int64_t to_int64() const;
static int to_int(const char* p_str, int p_len=-1);
static double to_double(const char* p_str);
diff --git a/core/variant.cpp b/core/variant.cpp
index 19b0ea7129..69160fffa7 100644
--- a/core/variant.cpp
+++ b/core/variant.cpp
@@ -842,37 +842,37 @@ bool Variant::is_zero() const {
// arrays
case RAW_ARRAY: {
- return reinterpret_cast<const DVector<uint8_t>*>(_data._mem)->size()==0;
+ return reinterpret_cast<const PoolVector<uint8_t>*>(_data._mem)->size()==0;
} break;
case INT_ARRAY: {
- return reinterpret_cast<const DVector<int>*>(_data._mem)->size()==0;
+ return reinterpret_cast<const PoolVector<int>*>(_data._mem)->size()==0;
} break;
case REAL_ARRAY: {
- return reinterpret_cast<const DVector<real_t>*>(_data._mem)->size()==0;
+ return reinterpret_cast<const PoolVector<real_t>*>(_data._mem)->size()==0;
} break;
case STRING_ARRAY: {
- return reinterpret_cast<const DVector<String>*>(_data._mem)->size()==0;
+ return reinterpret_cast<const PoolVector<String>*>(_data._mem)->size()==0;
} break;
case VECTOR2_ARRAY: {
- return reinterpret_cast<const DVector<Vector2>*>(_data._mem)->size()==0;
+ return reinterpret_cast<const PoolVector<Vector2>*>(_data._mem)->size()==0;
} break;
case VECTOR3_ARRAY: {
- return reinterpret_cast<const DVector<Vector3>*>(_data._mem)->size()==0;
+ return reinterpret_cast<const PoolVector<Vector3>*>(_data._mem)->size()==0;
} break;
case COLOR_ARRAY: {
- return reinterpret_cast<const DVector<Color>*>(_data._mem)->size()==0;
+ return reinterpret_cast<const PoolVector<Color>*>(_data._mem)->size()==0;
} break;
default: {}
@@ -1070,37 +1070,37 @@ void Variant::reference(const Variant& p_variant) {
// arrays
case RAW_ARRAY: {
- memnew_placement( _data._mem, DVector<uint8_t> ( *reinterpret_cast<const DVector<uint8_t>*>(p_variant._data._mem) ) );
+ memnew_placement( _data._mem, PoolVector<uint8_t> ( *reinterpret_cast<const PoolVector<uint8_t>*>(p_variant._data._mem) ) );
} break;
case INT_ARRAY: {
- memnew_placement( _data._mem, DVector<int> ( *reinterpret_cast<const DVector<int>*>(p_variant._data._mem) ) );
+ memnew_placement( _data._mem, PoolVector<int> ( *reinterpret_cast<const PoolVector<int>*>(p_variant._data._mem) ) );
} break;
case REAL_ARRAY: {
- memnew_placement( _data._mem, DVector<real_t> ( *reinterpret_cast<const DVector<real_t>*>(p_variant._data._mem) ) );
+ memnew_placement( _data._mem, PoolVector<real_t> ( *reinterpret_cast<const PoolVector<real_t>*>(p_variant._data._mem) ) );
} break;
case STRING_ARRAY: {
- memnew_placement( _data._mem, DVector<String> ( *reinterpret_cast<const DVector<String>*>(p_variant._data._mem) ) );
+ memnew_placement( _data._mem, PoolVector<String> ( *reinterpret_cast<const PoolVector<String>*>(p_variant._data._mem) ) );
} break;
case VECTOR2_ARRAY: {
- memnew_placement( _data._mem, DVector<Vector2> ( *reinterpret_cast<const DVector<Vector2>*>(p_variant._data._mem) ) );
+ memnew_placement( _data._mem, PoolVector<Vector2> ( *reinterpret_cast<const PoolVector<Vector2>*>(p_variant._data._mem) ) );
} break;
case VECTOR3_ARRAY: {
- memnew_placement( _data._mem, DVector<Vector3> ( *reinterpret_cast<const DVector<Vector3>*>(p_variant._data._mem) ) );
+ memnew_placement( _data._mem, PoolVector<Vector3> ( *reinterpret_cast<const PoolVector<Vector3>*>(p_variant._data._mem) ) );
} break;
case COLOR_ARRAY: {
- memnew_placement( _data._mem, DVector<Color> ( *reinterpret_cast<const DVector<Color>*>(p_variant._data._mem) ) );
+ memnew_placement( _data._mem, PoolVector<Color> ( *reinterpret_cast<const PoolVector<Color>*>(p_variant._data._mem) ) );
} break;
default: {}
@@ -1198,37 +1198,37 @@ void Variant::clear() {
// arrays
case RAW_ARRAY: {
- reinterpret_cast< DVector<uint8_t>* >(_data._mem)->~DVector<uint8_t>();
+ reinterpret_cast< PoolVector<uint8_t>* >(_data._mem)->~PoolVector<uint8_t>();
} break;
case INT_ARRAY: {
- reinterpret_cast< DVector<int>* >(_data._mem)->~DVector<int>();
+ reinterpret_cast< PoolVector<int>* >(_data._mem)->~PoolVector<int>();
} break;
case REAL_ARRAY: {
- reinterpret_cast< DVector<real_t>* >(_data._mem)->~DVector<real_t>();
+ reinterpret_cast< PoolVector<real_t>* >(_data._mem)->~PoolVector<real_t>();
} break;
case STRING_ARRAY: {
- reinterpret_cast< DVector<String>* >(_data._mem)->~DVector<String>();
+ reinterpret_cast< PoolVector<String>* >(_data._mem)->~PoolVector<String>();
} break;
case VECTOR2_ARRAY: {
- reinterpret_cast< DVector<Vector2>* >(_data._mem)->~DVector<Vector2>();
+ reinterpret_cast< PoolVector<Vector2>* >(_data._mem)->~PoolVector<Vector2>();
} break;
case VECTOR3_ARRAY: {
- reinterpret_cast< DVector<Vector3>* >(_data._mem)->~DVector<Vector3>();
+ reinterpret_cast< PoolVector<Vector3>* >(_data._mem)->~PoolVector<Vector3>();
} break;
case COLOR_ARRAY: {
- reinterpret_cast< DVector<Color>* >(_data._mem)->~DVector<Color>();
+ reinterpret_cast< PoolVector<Color>* >(_data._mem)->~PoolVector<Color>();
} break;
default: {} /* not needed */
@@ -1467,7 +1467,7 @@ Variant::operator double() const {
case NIL: return 0;
case BOOL: return _data._bool ? 1.0 : 0.0;
- case INT: return (float)_data._int;
+ case INT: return (double)_data._int;
case REAL: return _data._real;
case STRING: return operator String().to_double();
default: {
@@ -1502,10 +1502,10 @@ Variant::operator String() const {
switch( type ) {
- case NIL: return "";
+ case NIL: return "Null";
case BOOL: return _data._bool ? "True" : "False";
- case INT: return String::num(_data._int);
- case REAL: return String::num(_data._real);
+ case INT: return itos(_data._int);
+ case REAL: return rtos(_data._real);
case STRING: return *reinterpret_cast<const String*>(_data._mem);
case VECTOR2: return "("+operator Vector2()+")";
case RECT2: return "("+operator Rect2()+")";
@@ -1578,7 +1578,7 @@ Variant::operator String() const {
} break;
case VECTOR2_ARRAY: {
- DVector<Vector2> vec = operator DVector<Vector2>();
+ PoolVector<Vector2> vec = operator PoolVector<Vector2>();
String str("[");
for(int i=0;i<vec.size();i++) {
@@ -1591,7 +1591,7 @@ Variant::operator String() const {
} break;
case VECTOR3_ARRAY: {
- DVector<Vector3> vec = operator DVector<Vector3>();
+ PoolVector<Vector3> vec = operator PoolVector<Vector3>();
String str("[");
for(int i=0;i<vec.size();i++) {
@@ -1604,7 +1604,7 @@ Variant::operator String() const {
} break;
case STRING_ARRAY: {
- DVector<String> vec = operator DVector<String>();
+ PoolVector<String> vec = operator PoolVector<String>();
String str("[");
for(int i=0;i<vec.size();i++) {
@@ -1617,7 +1617,7 @@ Variant::operator String() const {
} break;
case INT_ARRAY: {
- DVector<int> vec = operator DVector<int>();
+ PoolVector<int> vec = operator PoolVector<int>();
String str("[");
for(int i=0;i<vec.size();i++) {
@@ -1630,7 +1630,7 @@ Variant::operator String() const {
} break;
case REAL_ARRAY: {
- DVector<real_t> vec = operator DVector<real_t>();
+ PoolVector<real_t> vec = operator PoolVector<real_t>();
String str("[");
for(int i=0;i<vec.size();i++) {
@@ -1893,13 +1893,13 @@ inline DA _convert_array_from_variant(const Variant& p_variant) {
case Variant::ARRAY: { return _convert_array<DA,Array >( p_variant.operator Array () ); }
- case Variant::RAW_ARRAY: { return _convert_array<DA,DVector<uint8_t> >( p_variant.operator DVector<uint8_t> () ); }
- case Variant::INT_ARRAY: { return _convert_array<DA,DVector<int> >( p_variant.operator DVector<int> () ); }
- case Variant::REAL_ARRAY: { return _convert_array<DA,DVector<real_t> >( p_variant.operator DVector<real_t> () ); }
- case Variant::STRING_ARRAY: { return _convert_array<DA,DVector<String> >( p_variant.operator DVector<String> () ); }
- case Variant::VECTOR2_ARRAY: { return _convert_array<DA,DVector<Vector2> >( p_variant.operator DVector<Vector2> () ); }
- case Variant::VECTOR3_ARRAY: { return _convert_array<DA,DVector<Vector3> >( p_variant.operator DVector<Vector3> () ); }
- case Variant::COLOR_ARRAY: { return _convert_array<DA,DVector<Color> >( p_variant.operator DVector<Color>() ); }
+ case Variant::RAW_ARRAY: { return _convert_array<DA,PoolVector<uint8_t> >( p_variant.operator PoolVector<uint8_t> () ); }
+ case Variant::INT_ARRAY: { return _convert_array<DA,PoolVector<int> >( p_variant.operator PoolVector<int> () ); }
+ case Variant::REAL_ARRAY: { return _convert_array<DA,PoolVector<real_t> >( p_variant.operator PoolVector<real_t> () ); }
+ case Variant::STRING_ARRAY: { return _convert_array<DA,PoolVector<String> >( p_variant.operator PoolVector<String> () ); }
+ case Variant::VECTOR2_ARRAY: { return _convert_array<DA,PoolVector<Vector2> >( p_variant.operator PoolVector<Vector2> () ); }
+ case Variant::VECTOR3_ARRAY: { return _convert_array<DA,PoolVector<Vector3> >( p_variant.operator PoolVector<Vector3> () ); }
+ case Variant::COLOR_ARRAY: { return _convert_array<DA,PoolVector<Color> >( p_variant.operator PoolVector<Color>() ); }
default: { return DA(); }
}
@@ -1914,64 +1914,64 @@ Variant::operator Array() const {
return _convert_array_from_variant<Array >(*this);
}
-Variant::operator DVector<uint8_t>() const {
+Variant::operator PoolVector<uint8_t>() const {
if (type==RAW_ARRAY)
- return *reinterpret_cast<const DVector<uint8_t>* >(_data._mem);
+ return *reinterpret_cast<const PoolVector<uint8_t>* >(_data._mem);
else
- return _convert_array_from_variant<DVector<uint8_t> >(*this);
+ return _convert_array_from_variant<PoolVector<uint8_t> >(*this);
}
-Variant::operator DVector<int>() const {
+Variant::operator PoolVector<int>() const {
if (type==INT_ARRAY)
- return *reinterpret_cast<const DVector<int>* >(_data._mem);
+ return *reinterpret_cast<const PoolVector<int>* >(_data._mem);
else
- return _convert_array_from_variant<DVector<int> >(*this);
+ return _convert_array_from_variant<PoolVector<int> >(*this);
}
-Variant::operator DVector<real_t>() const {
+Variant::operator PoolVector<real_t>() const {
if (type==REAL_ARRAY)
- return *reinterpret_cast<const DVector<real_t>* >(_data._mem);
+ return *reinterpret_cast<const PoolVector<real_t>* >(_data._mem);
else
- return _convert_array_from_variant<DVector<real_t> >(*this);
+ return _convert_array_from_variant<PoolVector<real_t> >(*this);
}
-Variant::operator DVector<String>() const {
+Variant::operator PoolVector<String>() const {
if (type==STRING_ARRAY)
- return *reinterpret_cast<const DVector<String>* >(_data._mem);
+ return *reinterpret_cast<const PoolVector<String>* >(_data._mem);
else
- return _convert_array_from_variant<DVector<String> >(*this);
+ return _convert_array_from_variant<PoolVector<String> >(*this);
}
-Variant::operator DVector<Vector3>() const {
+Variant::operator PoolVector<Vector3>() const {
if (type==VECTOR3_ARRAY)
- return *reinterpret_cast<const DVector<Vector3>* >(_data._mem);
+ return *reinterpret_cast<const PoolVector<Vector3>* >(_data._mem);
else
- return _convert_array_from_variant<DVector<Vector3> >(*this);
+ return _convert_array_from_variant<PoolVector<Vector3> >(*this);
}
-Variant::operator DVector<Vector2>() const {
+Variant::operator PoolVector<Vector2>() const {
if (type==VECTOR2_ARRAY)
- return *reinterpret_cast<const DVector<Vector2>* >(_data._mem);
+ return *reinterpret_cast<const PoolVector<Vector2>* >(_data._mem);
else
- return _convert_array_from_variant<DVector<Vector2> >(*this);
+ return _convert_array_from_variant<PoolVector<Vector2> >(*this);
}
-Variant::operator DVector<Color>() const {
+Variant::operator PoolVector<Color>() const {
if (type==COLOR_ARRAY)
- return *reinterpret_cast<const DVector<Color>* >(_data._mem);
+ return *reinterpret_cast<const PoolVector<Color>* >(_data._mem);
else
- return _convert_array_from_variant<DVector<Color> >(*this);
+ return _convert_array_from_variant<PoolVector<Color> >(*this);
}
@@ -1990,13 +1990,13 @@ Variant::operator Vector<RID>() const {
Variant::operator Vector<Vector2>() const {
- DVector<Vector2> from=operator DVector<Vector2>();
+ PoolVector<Vector2> from=operator PoolVector<Vector2>();
Vector<Vector2> to;
int len=from.size();
if (len==0)
return Vector<Vector2>();
to.resize(len);
- DVector<Vector2>::Read r = from.read();
+ PoolVector<Vector2>::Read r = from.read();
Vector2 *w = &to[0];
for (int i=0;i<len;i++) {
@@ -2005,16 +2005,16 @@ Variant::operator Vector<Vector2>() const {
return to;
}
-Variant::operator DVector<Plane>() const {
+Variant::operator PoolVector<Plane>() const {
Array va= operator Array();
- DVector<Plane> planes;
+ PoolVector<Plane> planes;
int va_size=va.size();
if (va_size==0)
return planes;
planes.resize(va_size);
- DVector<Plane>::Write w = planes.write();
+ PoolVector<Plane>::Write w = planes.write();
for(int i=0;i<va_size;i++)
w[i]=va[i];
@@ -2022,17 +2022,17 @@ Variant::operator DVector<Plane>() const {
return planes;
}
-Variant::operator DVector<Face3>() const {
+Variant::operator PoolVector<Face3>() const {
- DVector<Vector3> va= operator DVector<Vector3>();
- DVector<Face3> faces;
+ PoolVector<Vector3> va= operator PoolVector<Vector3>();
+ PoolVector<Face3> faces;
int va_size=va.size();
if (va_size==0)
return faces;
faces.resize(va_size/3);
- DVector<Face3>::Write w = faces.write();
- DVector<Vector3>::Read r = va.read();
+ PoolVector<Face3>::Write w = faces.write();
+ PoolVector<Vector3>::Read r = va.read();
for(int i=0;i<va_size;i++)
w[i/3].vertex[i%3]=r[i];
@@ -2072,7 +2072,7 @@ Variant::operator Vector<Variant>() const {
Variant::operator Vector<uint8_t>() const {
- DVector<uint8_t> from=operator DVector<uint8_t>();
+ PoolVector<uint8_t> from=operator PoolVector<uint8_t>();
Vector<uint8_t> to;
int len=from.size();
to.resize(len);
@@ -2084,7 +2084,7 @@ Variant::operator Vector<uint8_t>() const {
}
Variant::operator Vector<int>() const {
- DVector<int> from=operator DVector<int>();
+ PoolVector<int> from=operator PoolVector<int>();
Vector<int> to;
int len=from.size();
to.resize(len);
@@ -2096,7 +2096,7 @@ Variant::operator Vector<int>() const {
}
Variant::operator Vector<real_t>() const {
- DVector<real_t> from=operator DVector<real_t>();
+ PoolVector<real_t> from=operator PoolVector<real_t>();
Vector<real_t> to;
int len=from.size();
to.resize(len);
@@ -2109,7 +2109,7 @@ Variant::operator Vector<real_t>() const {
Variant::operator Vector<String>() const {
- DVector<String> from=operator DVector<String>();
+ PoolVector<String> from=operator PoolVector<String>();
Vector<String> to;
int len=from.size();
to.resize(len);
@@ -2122,13 +2122,13 @@ Variant::operator Vector<String>() const {
}
Variant::operator Vector<Vector3>() const {
- DVector<Vector3> from=operator DVector<Vector3>();
+ PoolVector<Vector3> from=operator PoolVector<Vector3>();
Vector<Vector3> to;
int len=from.size();
if (len==0)
return Vector<Vector3>();
to.resize(len);
- DVector<Vector3>::Read r = from.read();
+ PoolVector<Vector3>::Read r = from.read();
Vector3 *w = &to[0];
for (int i=0;i<len;i++) {
@@ -2139,13 +2139,13 @@ Variant::operator Vector<Vector3>() const {
}
Variant::operator Vector<Color>() const {
- DVector<Color> from=operator DVector<Color>();
+ PoolVector<Color> from=operator PoolVector<Color>();
Vector<Color> to;
int len=from.size();
if (len==0)
return Vector<Color>();
to.resize(len);
- DVector<Color>::Read r = from.read();
+ PoolVector<Color>::Read r = from.read();
Color *w = &to[0];
for (int i=0;i<len;i++) {
@@ -2167,7 +2167,7 @@ Variant::operator IP_Address() const {
if (type==REAL_ARRAY || type==INT_ARRAY || type==RAW_ARRAY) {
- DVector<int> addr=operator DVector<int>();
+ PoolVector<int> addr=operator PoolVector<int>();
if (addr.size()==4) {
return IP_Address(addr.get(0),addr.get(1),addr.get(2),addr.get(3));
}
@@ -2418,7 +2418,7 @@ Variant::Variant(const Array& p_array) {
}
-Variant::Variant(const DVector<Plane>& p_array) {
+Variant::Variant(const PoolVector<Plane>& p_array) {
type=ARRAY;
@@ -2467,11 +2467,11 @@ Variant::Variant(const Vector<Vector2>& p_array) {
type=NIL;
- DVector<Vector2> v;
+ PoolVector<Vector2> v;
int len=p_array.size();
if (len>0) {
v.resize(len);
- DVector<Vector2>::Write w = v.write();
+ PoolVector<Vector2>::Write w = v.write();
const Vector2 *r = p_array.ptr();
for (int i=0;i<len;i++)
@@ -2481,59 +2481,59 @@ Variant::Variant(const Vector<Vector2>& p_array) {
}
-Variant::Variant(const DVector<uint8_t>& p_raw_array) {
+Variant::Variant(const PoolVector<uint8_t>& p_raw_array) {
type=RAW_ARRAY;
- memnew_placement( _data._mem, DVector<uint8_t>(p_raw_array) );
+ memnew_placement( _data._mem, PoolVector<uint8_t>(p_raw_array) );
}
-Variant::Variant(const DVector<int>& p_int_array) {
+Variant::Variant(const PoolVector<int>& p_int_array) {
type=INT_ARRAY;
- memnew_placement( _data._mem, DVector<int>(p_int_array) );
+ memnew_placement( _data._mem, PoolVector<int>(p_int_array) );
}
-Variant::Variant(const DVector<real_t>& p_real_array) {
+Variant::Variant(const PoolVector<real_t>& p_real_array) {
type=REAL_ARRAY;
- memnew_placement( _data._mem, DVector<real_t>(p_real_array) );
+ memnew_placement( _data._mem, PoolVector<real_t>(p_real_array) );
}
-Variant::Variant(const DVector<String>& p_string_array) {
+Variant::Variant(const PoolVector<String>& p_string_array) {
type=STRING_ARRAY;
- memnew_placement( _data._mem, DVector<String>(p_string_array) );
+ memnew_placement( _data._mem, PoolVector<String>(p_string_array) );
}
-Variant::Variant(const DVector<Vector3>& p_vector3_array) {
+Variant::Variant(const PoolVector<Vector3>& p_vector3_array) {
type=VECTOR3_ARRAY;
- memnew_placement( _data._mem, DVector<Vector3>(p_vector3_array) );
+ memnew_placement( _data._mem, PoolVector<Vector3>(p_vector3_array) );
}
-Variant::Variant(const DVector<Vector2>& p_vector2_array) {
+Variant::Variant(const PoolVector<Vector2>& p_vector2_array) {
type=VECTOR2_ARRAY;
- memnew_placement( _data._mem, DVector<Vector2>(p_vector2_array) );
+ memnew_placement( _data._mem, PoolVector<Vector2>(p_vector2_array) );
}
-Variant::Variant(const DVector<Color>& p_color_array) {
+Variant::Variant(const PoolVector<Color>& p_color_array) {
type=COLOR_ARRAY;
- memnew_placement( _data._mem, DVector<Color>(p_color_array) );
+ memnew_placement( _data._mem, PoolVector<Color>(p_color_array) );
}
-Variant::Variant(const DVector<Face3>& p_face_array) {
+Variant::Variant(const PoolVector<Face3>& p_face_array) {
- DVector<Vector3> vertices;
+ PoolVector<Vector3> vertices;
int face_count=p_face_array.size();
vertices.resize(face_count*3);
if (face_count) {
- DVector<Face3>::Read r = p_face_array.read();
- DVector<Vector3>::Write w = vertices.write();
+ PoolVector<Face3>::Read r = p_face_array.read();
+ PoolVector<Vector3>::Write w = vertices.write();
for(int i=0;i<face_count;i++) {
@@ -2541,8 +2541,8 @@ Variant::Variant(const DVector<Face3>& p_face_array) {
w[i*3+j]=r[i].vertex[j];
}
- r=DVector<Face3>::Read();
- w=DVector<Vector3>::Write();
+ r=PoolVector<Face3>::Read();
+ w=PoolVector<Vector3>::Write();
}
@@ -2567,7 +2567,7 @@ Variant::Variant(const Vector<Variant>& p_array) {
Variant::Variant(const Vector<uint8_t>& p_array) {
type=NIL;
- DVector<uint8_t> v;
+ PoolVector<uint8_t> v;
int len=p_array.size();
v.resize(len);
for (int i=0;i<len;i++)
@@ -2578,7 +2578,7 @@ Variant::Variant(const Vector<uint8_t>& p_array) {
Variant::Variant(const Vector<int>& p_array) {
type=NIL;
- DVector<int> v;
+ PoolVector<int> v;
int len=p_array.size();
v.resize(len);
for (int i=0;i<len;i++)
@@ -2589,7 +2589,7 @@ Variant::Variant(const Vector<int>& p_array) {
Variant::Variant(const Vector<real_t>& p_array) {
type=NIL;
- DVector<real_t> v;
+ PoolVector<real_t> v;
int len=p_array.size();
v.resize(len);
for (int i=0;i<len;i++)
@@ -2600,7 +2600,7 @@ Variant::Variant(const Vector<real_t>& p_array) {
Variant::Variant(const Vector<String>& p_array) {
type=NIL;
- DVector<String> v;
+ PoolVector<String> v;
int len=p_array.size();
v.resize(len);
for (int i=0;i<len;i++)
@@ -2611,11 +2611,11 @@ Variant::Variant(const Vector<String>& p_array) {
Variant::Variant(const Vector<Vector3>& p_array) {
type=NIL;
- DVector<Vector3> v;
+ PoolVector<Vector3> v;
int len=p_array.size();
if (len>0) {
v.resize(len);
- DVector<Vector3>::Write w = v.write();
+ PoolVector<Vector3>::Write w = v.write();
const Vector3 *r = p_array.ptr();
for (int i=0;i<len;i++)
@@ -2627,7 +2627,7 @@ Variant::Variant(const Vector<Vector3>& p_array) {
Variant::Variant(const Vector<Color>& p_array) {
type=NIL;
- DVector<Color> v;
+ PoolVector<Color> v;
int len=p_array.size();
v.resize(len);
for (int i=0;i<len;i++)
@@ -2826,27 +2826,27 @@ uint32_t Variant::hash() const {
} break;
case RAW_ARRAY: {
- const DVector<uint8_t>& arr = *reinterpret_cast<const DVector<uint8_t>* >(_data._mem);
+ const PoolVector<uint8_t>& arr = *reinterpret_cast<const PoolVector<uint8_t>* >(_data._mem);
int len = arr.size();
- DVector<uint8_t>::Read r = arr.read();
+ PoolVector<uint8_t>::Read r = arr.read();
return hash_djb2_buffer((uint8_t*)&r[0],len);
} break;
case INT_ARRAY: {
- const DVector<int>& arr = *reinterpret_cast<const DVector<int>* >(_data._mem);
+ const PoolVector<int>& arr = *reinterpret_cast<const PoolVector<int>* >(_data._mem);
int len = arr.size();
- DVector<int>::Read r = arr.read();
+ PoolVector<int>::Read r = arr.read();
return hash_djb2_buffer((uint8_t*)&r[0],len*sizeof(int));
} break;
case REAL_ARRAY: {
- const DVector<real_t>& arr = *reinterpret_cast<const DVector<real_t>* >(_data._mem);
+ const PoolVector<real_t>& arr = *reinterpret_cast<const PoolVector<real_t>* >(_data._mem);
int len = arr.size();
- DVector<real_t>::Read r = arr.read();
+ PoolVector<real_t>::Read r = arr.read();
return hash_djb2_buffer((uint8_t*)&r[0],len*sizeof(real_t));
@@ -2854,9 +2854,9 @@ uint32_t Variant::hash() const {
case STRING_ARRAY: {
uint32_t hash=5831;
- const DVector<String>& arr = *reinterpret_cast<const DVector<String>* >(_data._mem);
+ const PoolVector<String>& arr = *reinterpret_cast<const PoolVector<String>* >(_data._mem);
int len = arr.size();
- DVector<String>::Read r = arr.read();
+ PoolVector<String>::Read r = arr.read();
for(int i=0;i<len;i++) {
hash = hash_djb2_one_32(r[i].hash(),hash);
@@ -2867,9 +2867,9 @@ uint32_t Variant::hash() const {
case VECTOR2_ARRAY: {
uint32_t hash=5831;
- const DVector<Vector2>& arr = *reinterpret_cast<const DVector<Vector2>* >(_data._mem);
+ const PoolVector<Vector2>& arr = *reinterpret_cast<const PoolVector<Vector2>* >(_data._mem);
int len = arr.size();
- DVector<Vector2>::Read r = arr.read();
+ PoolVector<Vector2>::Read r = arr.read();
for(int i=0;i<len;i++) {
hash = hash_djb2_one_float(r[i].x,hash);
@@ -2882,9 +2882,9 @@ uint32_t Variant::hash() const {
case VECTOR3_ARRAY: {
uint32_t hash=5831;
- const DVector<Vector3>& arr = *reinterpret_cast<const DVector<Vector3>* >(_data._mem);
+ const PoolVector<Vector3>& arr = *reinterpret_cast<const PoolVector<Vector3>* >(_data._mem);
int len = arr.size();
- DVector<Vector3>::Read r = arr.read();
+ PoolVector<Vector3>::Read r = arr.read();
for(int i=0;i<len;i++) {
hash = hash_djb2_one_float(r[i].x,hash);
@@ -2898,9 +2898,9 @@ uint32_t Variant::hash() const {
case COLOR_ARRAY: {
uint32_t hash=5831;
- const DVector<Color>& arr = *reinterpret_cast<const DVector<Color>* >(_data._mem);
+ const PoolVector<Color>& arr = *reinterpret_cast<const PoolVector<Color>* >(_data._mem);
int len = arr.size();
- DVector<Color>::Read r = arr.read();
+ PoolVector<Color>::Read r = arr.read();
for(int i=0;i<len;i++) {
hash = hash_djb2_one_float(r[i].r,hash);
diff --git a/core/variant.h b/core/variant.h
index f4bb3b6c8b..764ba9ae60 100644
--- a/core/variant.h
+++ b/core/variant.h
@@ -63,13 +63,13 @@ struct PropertyInfo;
struct MethodInfo;
-typedef DVector<uint8_t> ByteArray;
-typedef DVector<int> IntArray;
-typedef DVector<real_t> RealArray;
-typedef DVector<String> StringArray;
-typedef DVector<Vector2> Vector2Array;
-typedef DVector<Vector3> Vector3Array;
-typedef DVector<Color> ColorArray;
+typedef PoolVector<uint8_t> ByteArray;
+typedef PoolVector<int> IntArray;
+typedef PoolVector<real_t> RealArray;
+typedef PoolVector<String> StringArray;
+typedef PoolVector<Vector2> Vector2Array;
+typedef PoolVector<Vector3> Vector3Array;
+typedef PoolVector<Color> ColorArray;
class Variant {
public:
@@ -141,7 +141,7 @@ private:
union {
bool _bool;
- int _int;
+ int64_t _int;
double _real;
Matrix32 *_matrix32;
AABB* _aabb;
@@ -227,14 +227,14 @@ public:
operator Dictionary() const;
operator Array() const;
- operator DVector<uint8_t>() const;
- operator DVector<int>() const;
- operator DVector<real_t>() const;
- operator DVector<String>() const;
- operator DVector<Vector3>() const;
- operator DVector<Color>() const;
- operator DVector<Plane>() const;
- operator DVector<Face3>() const;
+ operator PoolVector<uint8_t>() const;
+ operator PoolVector<int>() const;
+ operator PoolVector<real_t>() const;
+ operator PoolVector<String>() const;
+ operator PoolVector<Vector3>() const;
+ operator PoolVector<Color>() const;
+ operator PoolVector<Plane>() const;
+ operator PoolVector<Face3>() const;
operator Vector<Variant>() const;
@@ -246,7 +246,7 @@ public:
operator Vector<Color>() const;
operator Vector<RID>() const;
operator Vector<Vector2>() const;
- operator DVector<Vector2>() const;
+ operator PoolVector<Vector2>() const;
operator Vector<Plane>() const;
// some core type enums to convert to
@@ -295,14 +295,14 @@ public:
Variant(const Dictionary& p_dictionary);
Variant(const Array& p_array);
- Variant(const DVector<Plane>& p_array); // helper
- Variant(const DVector<uint8_t>& p_raw_array);
- Variant(const DVector<int>& p_int_array);
- Variant(const DVector<real_t>& p_real_array);
- Variant(const DVector<String>& p_string_array);
- Variant(const DVector<Vector3>& p_vector3_array);
- Variant(const DVector<Color>& p_color_array);
- Variant(const DVector<Face3>& p_face_array);
+ Variant(const PoolVector<Plane>& p_array); // helper
+ Variant(const PoolVector<uint8_t>& p_raw_array);
+ Variant(const PoolVector<int>& p_int_array);
+ Variant(const PoolVector<real_t>& p_real_array);
+ Variant(const PoolVector<String>& p_string_array);
+ Variant(const PoolVector<Vector3>& p_vector3_array);
+ Variant(const PoolVector<Color>& p_color_array);
+ Variant(const PoolVector<Face3>& p_face_array);
Variant(const Vector<Variant>& p_array);
@@ -315,7 +315,7 @@ public:
Variant(const Vector<Plane>& p_array); // helper
Variant(const Vector<RID>& p_array); // helper
Variant(const Vector<Vector2>& p_array); // helper
- Variant(const DVector<Vector2>& p_array); // helper
+ Variant(const PoolVector<Vector2>& p_array); // helper
Variant(const IP_Address& p_address);
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index cedf21b377..5c9e8e9248 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -32,6 +32,7 @@
#include "core_string_names.h"
#include "script_language.h"
+
typedef void (*VariantFunc)(Variant& r_ret,Variant& p_self,const Variant** p_args);
typedef void (*VariantConstructFunc)(Variant& r_ret,const Variant** p_args);
@@ -146,6 +147,15 @@ struct _VariantCall {
};
// void addfunc(Variant::Type p_type, const StringName& p_name,VariantFunc p_func);
+
+ static void make_func_return_variant(Variant::Type p_type,const StringName& p_name) {
+
+#ifdef DEBUG_ENABLED
+ type_funcs[p_type].functions[p_name].returns=true;
+#endif
+ }
+
+
static void addfunc(Variant::Type p_type, Variant::Type p_return,const StringName& p_name,VariantFunc p_func, const Vector<Variant>& p_defaultarg,const Arg& p_argtype1=Arg(),const Arg& p_argtype2=Arg(),const Arg& p_argtype3=Arg(),const Arg& p_argtype4=Arg(),const Arg& p_argtype5=Arg()) {
FuncData funcdata;
@@ -305,7 +315,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
retval.resize(len);
ByteArray::Write w = retval.write();
copymem(w.ptr(), charstr.ptr(), len);
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
r_ret = retval;
}
@@ -320,7 +330,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
retval.resize(len);
ByteArray::Write w = retval.write();
copymem(w.ptr(), charstr.ptr(), len);
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
r_ret = retval;
}
@@ -455,8 +465,6 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var
VCALL_LOCALMEM0R(Dictionary,hash);
VCALL_LOCALMEM0R(Dictionary,keys);
VCALL_LOCALMEM0R(Dictionary,values);
- VCALL_LOCALMEM1R(Dictionary,parse_json);
- VCALL_LOCALMEM0R(Dictionary,to_json);
VCALL_LOCALMEM2(Array,set);
VCALL_LOCALMEM1R(Array,get);
@@ -1436,6 +1444,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC0(STRING,RAW_ARRAY,String,to_utf8,varray());
+
ADDFUNC0(VECTOR2,VECTOR2,Vector2,normalized,varray());
ADDFUNC0(VECTOR2,REAL,Vector2,length,varray());
ADDFUNC0(VECTOR2,REAL,Vector2,angle,varray());
@@ -1556,9 +1565,6 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
ADDFUNC0(DICTIONARY,ARRAY,Dictionary,keys,varray());
ADDFUNC0(DICTIONARY,ARRAY,Dictionary,values,varray());
- ADDFUNC1(DICTIONARY,INT,Dictionary,parse_json,STRING,"json",varray());
- ADDFUNC0(DICTIONARY,STRING,Dictionary,to_json,varray());
-
ADDFUNC0(ARRAY,INT,Array,size,varray());
ADDFUNC0(ARRAY,BOOL,Array,empty,varray());
ADDFUNC0(ARRAY,NIL,Array,clear,varray());
@@ -1777,8 +1783,8 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl
_VariantCall::add_constant(Variant::INPUT_EVENT,"KEY",InputEvent::KEY);
_VariantCall::add_constant(Variant::INPUT_EVENT,"MOUSE_MOTION",InputEvent::MOUSE_MOTION);
_VariantCall::add_constant(Variant::INPUT_EVENT,"MOUSE_BUTTON",InputEvent::MOUSE_BUTTON);
- _VariantCall::add_constant(Variant::INPUT_EVENT,"JOYSTICK_MOTION",InputEvent::JOYSTICK_MOTION);
- _VariantCall::add_constant(Variant::INPUT_EVENT,"JOYSTICK_BUTTON",InputEvent::JOYSTICK_BUTTON);
+ _VariantCall::add_constant(Variant::INPUT_EVENT,"JOYPAD_MOTION",InputEvent::JOYPAD_MOTION);
+ _VariantCall::add_constant(Variant::INPUT_EVENT,"JOYPAD_BUTTON",InputEvent::JOYPAD_BUTTON);
_VariantCall::add_constant(Variant::INPUT_EVENT,"SCREEN_TOUCH",InputEvent::SCREEN_TOUCH);
_VariantCall::add_constant(Variant::INPUT_EVENT,"SCREEN_DRAG",InputEvent::SCREEN_DRAG);
_VariantCall::add_constant(Variant::INPUT_EVENT,"ACTION",InputEvent::ACTION);
diff --git a/core/variant_op.cpp b/core/variant_op.cpp
index 94a2ea9977..00baffdd3b 100644
--- a/core/variant_op.cpp
+++ b/core/variant_op.cpp
@@ -186,16 +186,16 @@ case m_name: { \
r_valid=false;\
return;\
}\
- const DVector<m_type> &array_a=*reinterpret_cast<const DVector<m_type> *>(p_a._data._mem);\
- const DVector<m_type> &array_b=*reinterpret_cast<const DVector<m_type> *>(p_b._data._mem);\
+ const PoolVector<m_type> &array_a=*reinterpret_cast<const PoolVector<m_type> *>(p_a._data._mem);\
+ const PoolVector<m_type> &array_b=*reinterpret_cast<const PoolVector<m_type> *>(p_b._data._mem);\
\
int a_len = array_a.size();\
if (a_len m_opa array_b.size()){\
_RETURN( m_ret_s);\
}else {\
\
- DVector<m_type>::Read ra = array_a.read();\
- DVector<m_type>::Read rb = array_b.read();\
+ PoolVector<m_type>::Read ra = array_a.read();\
+ PoolVector<m_type>::Read rb = array_b.read();\
\
for(int i=0;i<a_len;i++) {\
if (ra[i] m_opb rb[i])\
@@ -212,9 +212,9 @@ case m_name: { \
r_valid=false;\
_RETURN( NIL);\
}\
- const DVector<m_type> &array_a=*reinterpret_cast<const DVector<m_type> *>(p_a._data._mem);\
- const DVector<m_type> &array_b=*reinterpret_cast<const DVector<m_type> *>(p_b._data._mem);\
- DVector<m_type> sum = array_a;\
+ const PoolVector<m_type> &array_a=*reinterpret_cast<const PoolVector<m_type> *>(p_a._data._mem);\
+ const PoolVector<m_type> &array_b=*reinterpret_cast<const PoolVector<m_type> *>(p_b._data._mem);\
+ PoolVector<m_type> sum = array_a;\
sum.append_array(array_b);\
_RETURN( sum );\
}
@@ -683,7 +683,7 @@ void Variant::evaluate(const Operator& p_op, const Variant& p_a, const Variant&
case INT: {
switch(p_b.type) {
case BOOL: {
- int b = p_b._data._bool;
+ int64_t b = p_b._data._bool;
if (b==0) {
r_valid=false;
@@ -693,7 +693,7 @@ void Variant::evaluate(const Operator& p_op, const Variant& p_a, const Variant&
} break;
case INT: {
- int b = p_b._data._int;
+ int64_t b = p_b._data._int;
if (b==0) {
r_valid=false;
@@ -1049,10 +1049,10 @@ Variant Variant::get_named(const StringName& p_index, bool *r_valid) const {
} break;
#define DEFAULT_OP_DVECTOR_SET(m_name, dv_type, skip_cond)\
- DEFAULT_OP_ARRAY_CMD(m_name, DVector<dv_type>, if(skip_cond) return;, arr->set(index, p_value);return)
+ DEFAULT_OP_ARRAY_CMD(m_name, PoolVector<dv_type>, if(skip_cond) return;, arr->set(index, p_value);return)
#define DEFAULT_OP_DVECTOR_GET(m_name, dv_type)\
- DEFAULT_OP_ARRAY_CMD(m_name, const DVector<dv_type>, ;, return arr->get(index))
+ DEFAULT_OP_ARRAY_CMD(m_name, const PoolVector<dv_type>, ;, return arr->get(index))
void Variant::set(const Variant& p_index, const Variant& p_value, bool *r_valid) {
@@ -1744,7 +1744,7 @@ void Variant::set(const Variant& p_index, const Variant& p_value, bool *r_valid)
}
- if (ie.type==InputEvent::JOYSTICK_BUTTON) {
+ if (ie.type==InputEvent::JOYPAD_BUTTON) {
if (str=="button_index") {
if (p_value.type!=Variant::REAL && p_value.type!=Variant::INT)
@@ -1769,7 +1769,7 @@ void Variant::set(const Variant& p_index, const Variant& p_value, bool *r_valid)
}
- if (ie.type==InputEvent::JOYSTICK_MOTION) {
+ if (ie.type==InputEvent::JOYPAD_MOTION) {
if (str=="axis") {
if (p_value.type!=Variant::REAL && p_value.type!=Variant::INT)
@@ -2367,7 +2367,7 @@ Variant Variant::get(const Variant& p_index, bool *r_valid) const {
}
- if (ie.type==InputEvent::JOYSTICK_BUTTON) {
+ if (ie.type==InputEvent::JOYPAD_BUTTON) {
if (str=="button_index") {
valid=true;
@@ -2382,7 +2382,7 @@ Variant Variant::get(const Variant& p_index, bool *r_valid) const {
}
- if (ie.type==InputEvent::JOYSTICK_MOTION) {
+ if (ie.type==InputEvent::JOYPAD_MOTION) {
if (str=="axis") {
valid=true;
@@ -2561,10 +2561,10 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {
if (p_index.get_type()==Variant::INT || p_index.get_type()==Variant::REAL) {
int index = p_index;
- const DVector<uint8_t> *arr=reinterpret_cast<const DVector<uint8_t>* >(_data._mem);
+ const PoolVector<uint8_t> *arr=reinterpret_cast<const PoolVector<uint8_t>* >(_data._mem);
int l=arr->size();
if (l) {
- DVector<uint8_t>::Read r = arr->read();
+ PoolVector<uint8_t>::Read r = arr->read();
for(int i=0;i<l;i++) {
if (r[i]==index)
return true;
@@ -2580,10 +2580,10 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {
if (p_index.get_type()==Variant::INT || p_index.get_type()==Variant::REAL) {
int index = p_index;
- const DVector<int> *arr=reinterpret_cast<const DVector<int>* >(_data._mem);
+ const PoolVector<int> *arr=reinterpret_cast<const PoolVector<int>* >(_data._mem);
int l=arr->size();
if (l) {
- DVector<int>::Read r = arr->read();
+ PoolVector<int>::Read r = arr->read();
for(int i=0;i<l;i++) {
if (r[i]==index)
return true;
@@ -2599,10 +2599,10 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {
if (p_index.get_type()==Variant::INT || p_index.get_type()==Variant::REAL) {
real_t index = p_index;
- const DVector<real_t> *arr=reinterpret_cast<const DVector<real_t>* >(_data._mem);
+ const PoolVector<real_t> *arr=reinterpret_cast<const PoolVector<real_t>* >(_data._mem);
int l=arr->size();
if (l) {
- DVector<real_t>::Read r = arr->read();
+ PoolVector<real_t>::Read r = arr->read();
for(int i=0;i<l;i++) {
if (r[i]==index)
return true;
@@ -2618,11 +2618,11 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {
if (p_index.get_type()==Variant::STRING) {
String index = p_index;
- const DVector<String> *arr=reinterpret_cast<const DVector<String>* >(_data._mem);
+ const PoolVector<String> *arr=reinterpret_cast<const PoolVector<String>* >(_data._mem);
int l=arr->size();
if (l) {
- DVector<String>::Read r = arr->read();
+ PoolVector<String>::Read r = arr->read();
for(int i=0;i<l;i++) {
if (r[i]==index)
return true;
@@ -2638,11 +2638,11 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {
if (p_index.get_type()==Variant::VECTOR2) {
Vector2 index = p_index;
- const DVector<Vector2> *arr=reinterpret_cast<const DVector<Vector2>* >(_data._mem);
+ const PoolVector<Vector2> *arr=reinterpret_cast<const PoolVector<Vector2>* >(_data._mem);
int l=arr->size();
if (l) {
- DVector<Vector2>::Read r = arr->read();
+ PoolVector<Vector2>::Read r = arr->read();
for(int i=0;i<l;i++) {
if (r[i]==index)
return true;
@@ -2658,11 +2658,11 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {
if (p_index.get_type()==Variant::VECTOR3) {
Vector3 index = p_index;
- const DVector<Vector3> *arr=reinterpret_cast<const DVector<Vector3>* >(_data._mem);
+ const PoolVector<Vector3> *arr=reinterpret_cast<const PoolVector<Vector3>* >(_data._mem);
int l=arr->size();
if (l) {
- DVector<Vector3>::Read r = arr->read();
+ PoolVector<Vector3>::Read r = arr->read();
for(int i=0;i<l;i++) {
if (r[i]==index)
return true;
@@ -2679,12 +2679,12 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const {
if (p_index.get_type()==Variant::COLOR) {
Color index = p_index;
- const DVector<Color> *arr=reinterpret_cast<const DVector<Color>* >(_data._mem);
+ const PoolVector<Color> *arr=reinterpret_cast<const PoolVector<Color>* >(_data._mem);
int l=arr->size();
if (l) {
- DVector<Color>::Read r = arr->read();
+ PoolVector<Color>::Read r = arr->read();
for(int i=0;i<l;i++) {
if (r[i]==index)
return true;
@@ -2863,7 +2863,7 @@ void Variant::get_property_list(List<PropertyInfo> *p_list) const {
}
- if (ie.type==InputEvent::JOYSTICK_BUTTON) {
+ if (ie.type==InputEvent::JOYPAD_BUTTON) {
p_list->push_back( PropertyInfo(Variant::INT,"button_index") );
p_list->push_back( PropertyInfo(Variant::BOOL,"pressed") );
@@ -2871,7 +2871,7 @@ void Variant::get_property_list(List<PropertyInfo> *p_list) const {
}
- if (ie.type==InputEvent::JOYSTICK_MOTION) {
+ if (ie.type==InputEvent::JOYPAD_MOTION) {
p_list->push_back( PropertyInfo(Variant::INT,"axis") );
p_list->push_back( PropertyInfo(Variant::REAL,"value") );
@@ -2992,7 +2992,7 @@ bool Variant::iter_init(Variant& r_iter,bool &valid) const {
return true;
} break;
case RAW_ARRAY: {
- const DVector<uint8_t> *arr=reinterpret_cast<const DVector<uint8_t>*>(_data._mem);
+ const PoolVector<uint8_t> *arr=reinterpret_cast<const PoolVector<uint8_t>*>(_data._mem);
if (arr->size()==0)
return false;
r_iter=0;
@@ -3000,7 +3000,7 @@ bool Variant::iter_init(Variant& r_iter,bool &valid) const {
} break;
case INT_ARRAY: {
- const DVector<int> *arr=reinterpret_cast<const DVector<int>*>(_data._mem);
+ const PoolVector<int> *arr=reinterpret_cast<const PoolVector<int>*>(_data._mem);
if (arr->size()==0)
return false;
r_iter=0;
@@ -3008,7 +3008,7 @@ bool Variant::iter_init(Variant& r_iter,bool &valid) const {
} break;
case REAL_ARRAY: {
- const DVector<real_t> *arr=reinterpret_cast<const DVector<real_t>*>(_data._mem);
+ const PoolVector<real_t> *arr=reinterpret_cast<const PoolVector<real_t>*>(_data._mem);
if (arr->size()==0)
return false;
r_iter=0;
@@ -3016,7 +3016,7 @@ bool Variant::iter_init(Variant& r_iter,bool &valid) const {
} break;
case STRING_ARRAY: {
- const DVector<String> *arr=reinterpret_cast<const DVector<String>*>(_data._mem);
+ const PoolVector<String> *arr=reinterpret_cast<const PoolVector<String>*>(_data._mem);
if (arr->size()==0)
return false;
r_iter=0;
@@ -3024,7 +3024,7 @@ bool Variant::iter_init(Variant& r_iter,bool &valid) const {
} break;
case VECTOR2_ARRAY: {
- const DVector<Vector2> *arr=reinterpret_cast<const DVector<Vector2>*>(_data._mem);
+ const PoolVector<Vector2> *arr=reinterpret_cast<const PoolVector<Vector2>*>(_data._mem);
if (arr->size()==0)
return false;
r_iter=0;
@@ -3032,7 +3032,7 @@ bool Variant::iter_init(Variant& r_iter,bool &valid) const {
} break;
case VECTOR3_ARRAY: {
- const DVector<Vector3> *arr=reinterpret_cast<const DVector<Vector3>*>(_data._mem);
+ const PoolVector<Vector3> *arr=reinterpret_cast<const PoolVector<Vector3>*>(_data._mem);
if (arr->size()==0)
return false;
r_iter=0;
@@ -3040,7 +3040,7 @@ bool Variant::iter_init(Variant& r_iter,bool &valid) const {
} break;
case COLOR_ARRAY: {
- const DVector<Color> *arr=reinterpret_cast<const DVector<Color>*>(_data._mem);
+ const PoolVector<Color> *arr=reinterpret_cast<const PoolVector<Color>*>(_data._mem);
if (arr->size()==0)
return false;
r_iter=0;
@@ -3123,7 +3123,7 @@ bool Variant::iter_next(Variant& r_iter,bool &valid) const {
return true;
} break;
case RAW_ARRAY: {
- const DVector<uint8_t> *arr=reinterpret_cast<const DVector<uint8_t>*>(_data._mem);
+ const PoolVector<uint8_t> *arr=reinterpret_cast<const PoolVector<uint8_t>*>(_data._mem);
int idx=r_iter;
idx++;
if (idx>=arr->size())
@@ -3133,7 +3133,7 @@ bool Variant::iter_next(Variant& r_iter,bool &valid) const {
} break;
case INT_ARRAY: {
- const DVector<int> *arr=reinterpret_cast<const DVector<int>*>(_data._mem);
+ const PoolVector<int> *arr=reinterpret_cast<const PoolVector<int>*>(_data._mem);
int idx=r_iter;
idx++;
if (idx>=arr->size())
@@ -3143,7 +3143,7 @@ bool Variant::iter_next(Variant& r_iter,bool &valid) const {
} break;
case REAL_ARRAY: {
- const DVector<real_t> *arr=reinterpret_cast<const DVector<real_t>*>(_data._mem);
+ const PoolVector<real_t> *arr=reinterpret_cast<const PoolVector<real_t>*>(_data._mem);
int idx=r_iter;
idx++;
if (idx>=arr->size())
@@ -3153,7 +3153,7 @@ bool Variant::iter_next(Variant& r_iter,bool &valid) const {
} break;
case STRING_ARRAY: {
- const DVector<String> *arr=reinterpret_cast<const DVector<String>*>(_data._mem);
+ const PoolVector<String> *arr=reinterpret_cast<const PoolVector<String>*>(_data._mem);
int idx=r_iter;
idx++;
if (idx>=arr->size())
@@ -3163,7 +3163,7 @@ bool Variant::iter_next(Variant& r_iter,bool &valid) const {
} break;
case VECTOR2_ARRAY: {
- const DVector<Vector2> *arr=reinterpret_cast<const DVector<Vector2>*>(_data._mem);
+ const PoolVector<Vector2> *arr=reinterpret_cast<const PoolVector<Vector2>*>(_data._mem);
int idx=r_iter;
idx++;
if (idx>=arr->size())
@@ -3173,7 +3173,7 @@ bool Variant::iter_next(Variant& r_iter,bool &valid) const {
} break;
case VECTOR3_ARRAY: {
- const DVector<Vector3> *arr=reinterpret_cast<const DVector<Vector3>*>(_data._mem);
+ const PoolVector<Vector3> *arr=reinterpret_cast<const PoolVector<Vector3>*>(_data._mem);
int idx=r_iter;
idx++;
if (idx>=arr->size())
@@ -3183,7 +3183,7 @@ bool Variant::iter_next(Variant& r_iter,bool &valid) const {
} break;
case COLOR_ARRAY: {
- const DVector<Color> *arr=reinterpret_cast<const DVector<Color>*>(_data._mem);
+ const PoolVector<Color> *arr=reinterpret_cast<const PoolVector<Color>*>(_data._mem);
int idx=r_iter;
idx++;
if (idx>=arr->size())
@@ -3255,7 +3255,7 @@ Variant Variant::iter_get(const Variant& r_iter,bool &r_valid) const {
return arr->get(idx);
} break;
case RAW_ARRAY: {
- const DVector<uint8_t> *arr=reinterpret_cast<const DVector<uint8_t>*>(_data._mem);
+ const PoolVector<uint8_t> *arr=reinterpret_cast<const PoolVector<uint8_t>*>(_data._mem);
int idx=r_iter;
#ifdef DEBUG_ENABLED
if (idx<0 || idx>=arr->size()) {
@@ -3266,7 +3266,7 @@ Variant Variant::iter_get(const Variant& r_iter,bool &r_valid) const {
return arr->get(idx);
} break;
case INT_ARRAY: {
- const DVector<int> *arr=reinterpret_cast<const DVector<int>*>(_data._mem);
+ const PoolVector<int> *arr=reinterpret_cast<const PoolVector<int>*>(_data._mem);
int idx=r_iter;
#ifdef DEBUG_ENABLED
if (idx<0 || idx>=arr->size()) {
@@ -3277,7 +3277,7 @@ Variant Variant::iter_get(const Variant& r_iter,bool &r_valid) const {
return arr->get(idx);
} break;
case REAL_ARRAY: {
- const DVector<real_t> *arr=reinterpret_cast<const DVector<real_t>*>(_data._mem);
+ const PoolVector<real_t> *arr=reinterpret_cast<const PoolVector<real_t>*>(_data._mem);
int idx=r_iter;
#ifdef DEBUG_ENABLED
if (idx<0 || idx>=arr->size()) {
@@ -3288,7 +3288,7 @@ Variant Variant::iter_get(const Variant& r_iter,bool &r_valid) const {
return arr->get(idx);
} break;
case STRING_ARRAY: {
- const DVector<String> *arr=reinterpret_cast<const DVector<String>*>(_data._mem);
+ const PoolVector<String> *arr=reinterpret_cast<const PoolVector<String>*>(_data._mem);
int idx=r_iter;
#ifdef DEBUG_ENABLED
if (idx<0 || idx>=arr->size()) {
@@ -3300,7 +3300,7 @@ Variant Variant::iter_get(const Variant& r_iter,bool &r_valid) const {
} break;
case VECTOR2_ARRAY: {
- const DVector<Vector2> *arr=reinterpret_cast<const DVector<Vector2>*>(_data._mem);
+ const PoolVector<Vector2> *arr=reinterpret_cast<const PoolVector<Vector2>*>(_data._mem);
int idx=r_iter;
#ifdef DEBUG_ENABLED
if (idx<0 || idx>=arr->size()) {
@@ -3312,7 +3312,7 @@ Variant Variant::iter_get(const Variant& r_iter,bool &r_valid) const {
} break;
case VECTOR3_ARRAY: {
- const DVector<Vector3> *arr=reinterpret_cast<const DVector<Vector3>*>(_data._mem);
+ const PoolVector<Vector3> *arr=reinterpret_cast<const PoolVector<Vector3>*>(_data._mem);
int idx=r_iter;
#ifdef DEBUG_ENABLED
if (idx<0 || idx>=arr->size()) {
@@ -3324,7 +3324,7 @@ Variant Variant::iter_get(const Variant& r_iter,bool &r_valid) const {
} break;
case COLOR_ARRAY: {
- const DVector<Color> *arr=reinterpret_cast<const DVector<Color>*>(_data._mem);
+ const PoolVector<Color> *arr=reinterpret_cast<const PoolVector<Color>*>(_data._mem);
int idx=r_iter;
#ifdef DEBUG_ENABLED
if (idx<0 || idx>=arr->size()) {
@@ -3358,8 +3358,8 @@ void Variant::blend(const Variant& a, const Variant& b, float c, Variant &r_dst)
switch(a.type) {
case NIL: { r_dst=Variant(); } return;
case INT:{
- int va=a._data._int;
- int vb=b._data._int;
+ int64_t va=a._data._int;
+ int64_t vb=b._data._int;
r_dst=int(va + vb * c + 0.5);
} return;
case REAL:{
@@ -3423,8 +3423,8 @@ void Variant::interpolate(const Variant& a, const Variant& b, float c,Variant &r
case NIL:{ r_dst=Variant(); } return;
case BOOL:{ r_dst=a; } return;
case INT:{
- int va=a._data._int;
- int vb=b._data._int;
+ int64_t va=a._data._int;
+ int64_t vb=b._data._int;
r_dst=int((1.0-c) * va + vb * c);
} return;
case REAL:{
@@ -3495,20 +3495,20 @@ void Variant::interpolate(const Variant& a, const Variant& b, float c,Variant &r
case REAL_ARRAY:{ r_dst=a; } return;
case STRING_ARRAY:{ r_dst=a; } return;
case VECTOR2_ARRAY:{
- const DVector<Vector2> *arr_a=reinterpret_cast<const DVector<Vector2>* >(a._data._mem);
- const DVector<Vector2> *arr_b=reinterpret_cast<const DVector<Vector2>* >(b._data._mem);
+ const PoolVector<Vector2> *arr_a=reinterpret_cast<const PoolVector<Vector2>* >(a._data._mem);
+ const PoolVector<Vector2> *arr_b=reinterpret_cast<const PoolVector<Vector2>* >(b._data._mem);
int sz = arr_a->size();
if (sz==0 || arr_b->size()!=sz) {
r_dst=a;
} else {
- DVector<Vector2> v;
+ PoolVector<Vector2> v;
v.resize(sz);
{
- DVector<Vector2>::Write vw=v.write();
- DVector<Vector2>::Read ar=arr_a->read();
- DVector<Vector2>::Read br=arr_b->read();
+ PoolVector<Vector2>::Write vw=v.write();
+ PoolVector<Vector2>::Read ar=arr_a->read();
+ PoolVector<Vector2>::Read br=arr_b->read();
for(int i=0;i<sz;i++) {
vw[i]=ar[i].linear_interpolate(br[i],c);
@@ -3523,20 +3523,20 @@ void Variant::interpolate(const Variant& a, const Variant& b, float c,Variant &r
case VECTOR3_ARRAY:{
- const DVector<Vector3> *arr_a=reinterpret_cast<const DVector<Vector3>* >(a._data._mem);
- const DVector<Vector3> *arr_b=reinterpret_cast<const DVector<Vector3>* >(b._data._mem);
+ const PoolVector<Vector3> *arr_a=reinterpret_cast<const PoolVector<Vector3>* >(a._data._mem);
+ const PoolVector<Vector3> *arr_b=reinterpret_cast<const PoolVector<Vector3>* >(b._data._mem);
int sz = arr_a->size();
if (sz==0 || arr_b->size()!=sz) {
r_dst=a;
} else {
- DVector<Vector3> v;
+ PoolVector<Vector3> v;
v.resize(sz);
{
- DVector<Vector3>::Write vw=v.write();
- DVector<Vector3>::Read ar=arr_a->read();
- DVector<Vector3>::Read br=arr_b->read();
+ PoolVector<Vector3>::Write vw=v.write();
+ PoolVector<Vector3>::Read ar=arr_a->read();
+ PoolVector<Vector3>::Read br=arr_b->read();
for(int i=0;i<sz;i++) {
vw[i]=ar[i].linear_interpolate(br[i],c);
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp
index 597e975873..1a11eb80d5 100644
--- a/core/variant_parser.cpp
+++ b/core/variant_parser.cpp
@@ -802,7 +802,7 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
int len = Image::get_image_data_size(width,height,format,mipmaps);
- DVector<uint8_t> buffer;
+ PoolVector<uint8_t> buffer;
buffer.resize(len);
if (buffer.size()!=len) {
@@ -810,7 +810,7 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
}
{
- DVector<uint8_t>::Write w=buffer.write();
+ PoolVector<uint8_t>::Write w=buffer.write();
for(int i=0;i<len;i++) {
get_token(p_stream,token,line,r_err_str);
@@ -1083,7 +1083,7 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
return ERR_PARSE_ERROR;
}
- ie.type=InputEvent::JOYSTICK_BUTTON;
+ ie.type=InputEvent::JOYPAD_BUTTON;
get_token(p_stream,token,line,r_err_str);
if (token.type!=TK_NUMBER) {
@@ -1107,7 +1107,7 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
return ERR_PARSE_ERROR;
}
- ie.type=InputEvent::JOYSTICK_MOTION;
+ ie.type=InputEvent::JOYPAD_MOTION;
get_token(p_stream,token,line,r_err_str);
if (token.type!=TK_NUMBER) {
@@ -1156,11 +1156,11 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
if (err)
return err;
- DVector<uint8_t> arr;
+ PoolVector<uint8_t> arr;
{
int len=args.size();
arr.resize(len);
- DVector<uint8_t>::Write w = arr.write();
+ PoolVector<uint8_t>::Write w = arr.write();
for(int i=0;i<len;i++) {
w[i]=args[i];
}
@@ -1177,11 +1177,11 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
if (err)
return err;
- DVector<int> arr;
+ PoolVector<int> arr;
{
int len=args.size();
arr.resize(len);
- DVector<int>::Write w = arr.write();
+ PoolVector<int>::Write w = arr.write();
for(int i=0;i<len;i++) {
w[i]=int(args[i]);
}
@@ -1198,11 +1198,11 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
if (err)
return err;
- DVector<float> arr;
+ PoolVector<float> arr;
{
int len=args.size();
arr.resize(len);
- DVector<float>::Write w = arr.write();
+ PoolVector<float>::Write w = arr.write();
for(int i=0;i<len;i++) {
w[i]=args[i];
}
@@ -1251,11 +1251,11 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
}
- DVector<String> arr;
+ PoolVector<String> arr;
{
int len=cs.size();
arr.resize(len);
- DVector<String>::Write w = arr.write();
+ PoolVector<String>::Write w = arr.write();
for(int i=0;i<len;i++) {
w[i]=cs[i];
}
@@ -1273,11 +1273,11 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
if (err)
return err;
- DVector<Vector2> arr;
+ PoolVector<Vector2> arr;
{
int len=args.size()/2;
arr.resize(len);
- DVector<Vector2>::Write w = arr.write();
+ PoolVector<Vector2>::Write w = arr.write();
for(int i=0;i<len;i++) {
w[i]=Vector2(args[i*2+0],args[i*2+1]);
}
@@ -1294,11 +1294,11 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
if (err)
return err;
- DVector<Vector3> arr;
+ PoolVector<Vector3> arr;
{
int len=args.size()/3;
arr.resize(len);
- DVector<Vector3>::Write w = arr.write();
+ PoolVector<Vector3>::Write w = arr.write();
for(int i=0;i<len;i++) {
w[i]=Vector3(args[i*3+0],args[i*3+1],args[i*3+2]);
}
@@ -1315,11 +1315,11 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
if (err)
return err;
- DVector<Color> arr;
+ PoolVector<Color> arr;
{
int len=args.size()/4;
arr.resize(len);
- DVector<Color>::Write w = arr.write();
+ PoolVector<Color>::Write w = arr.write();
for(int i=0;i<len;i++) {
w[i]=Color(args[i*4+0],args[i*4+1],args[i*4+2],args[i*4+3]);
}
@@ -1387,7 +1387,7 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
return err;
ERR_FAIL_COND_V(params.size()!=2,ERR_PARSE_ERROR);
InputEvent ie;
- ie.type=InputEvent::JOYSTICK_BUTTON;
+ ie.type=InputEvent::JOYPAD_BUTTON;
ie.device=params[0].to_int();
ie.joy_button.button_index=params[1].to_int();
@@ -1403,7 +1403,7 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
ERR_FAIL_COND_V(params.size()!=2,ERR_PARSE_ERROR);
InputEvent ie;
- ie.type=InputEvent::JOYSTICK_MOTION;
+ ie.type=InputEvent::JOYPAD_MOTION;
ie.device=params[0].to_int();
int axis=params[1].to_int();
ie.joy_motion.axis=axis>>1;
@@ -1986,9 +1986,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
String s;
- DVector<uint8_t> data = img.get_data();
+ PoolVector<uint8_t> data = img.get_data();
int len = data.size();
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
const uint8_t *ptr=r.ptr();;
for (int i=0;i<len;i++) {
@@ -2065,11 +2065,11 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
str+="MBUTTON,"+itos(ev.mouse_button.button_index);
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
str+="JBUTTON,"+itos(ev.joy_button.button_index);
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
str+="JAXIS,"+itos(ev.joy_motion.axis)+","+itos(ev.joy_motion.axis_value);
} break;
case InputEvent::NONE: {
@@ -2128,9 +2128,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
p_store_string_func(p_store_string_ud,"ByteArray( ");
String s;
- DVector<uint8_t> data = p_variant;
+ PoolVector<uint8_t> data = p_variant;
int len = data.size();
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t>::Read r = data.read();
const uint8_t *ptr=r.ptr();;
for (int i=0;i<len;i++) {
@@ -2147,9 +2147,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
case Variant::INT_ARRAY: {
p_store_string_func(p_store_string_ud,"IntArray( ");
- DVector<int> data = p_variant;
+ PoolVector<int> data = p_variant;
int len = data.size();
- DVector<int>::Read r = data.read();
+ PoolVector<int>::Read r = data.read();
const int *ptr=r.ptr();;
for (int i=0;i<len;i++) {
@@ -2167,9 +2167,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
case Variant::REAL_ARRAY: {
p_store_string_func(p_store_string_ud,"FloatArray( ");
- DVector<real_t> data = p_variant;
+ PoolVector<real_t> data = p_variant;
int len = data.size();
- DVector<real_t>::Read r = data.read();
+ PoolVector<real_t>::Read r = data.read();
const real_t *ptr=r.ptr();;
for (int i=0;i<len;i++) {
@@ -2185,9 +2185,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
case Variant::STRING_ARRAY: {
p_store_string_func(p_store_string_ud,"StringArray( ");
- DVector<String> data = p_variant;
+ PoolVector<String> data = p_variant;
int len = data.size();
- DVector<String>::Read r = data.read();
+ PoolVector<String>::Read r = data.read();
const String *ptr=r.ptr();;
String s;
//write_string("\n");
@@ -2208,9 +2208,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
case Variant::VECTOR2_ARRAY: {
p_store_string_func(p_store_string_ud,"Vector2Array( ");
- DVector<Vector2> data = p_variant;
+ PoolVector<Vector2> data = p_variant;
int len = data.size();
- DVector<Vector2>::Read r = data.read();
+ PoolVector<Vector2>::Read r = data.read();
const Vector2 *ptr=r.ptr();;
for (int i=0;i<len;i++) {
@@ -2226,9 +2226,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
case Variant::VECTOR3_ARRAY: {
p_store_string_func(p_store_string_ud,"Vector3Array( ");
- DVector<Vector3> data = p_variant;
+ PoolVector<Vector3> data = p_variant;
int len = data.size();
- DVector<Vector3>::Read r = data.read();
+ PoolVector<Vector3>::Read r = data.read();
const Vector3 *ptr=r.ptr();;
for (int i=0;i<len;i++) {
@@ -2245,9 +2245,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
p_store_string_func(p_store_string_ud,"ColorArray( ");
- DVector<Color> data = p_variant;
+ PoolVector<Color> data = p_variant;
int len = data.size();
- DVector<Color>::Read r = data.read();
+ PoolVector<Color>::Read r = data.read();
const Color *ptr=r.ptr();;
for (int i=0;i<len;i++) {
diff --git a/core/vector.h b/core/vector.h
index 3227561000..3119657cbb 100644
--- a/core/vector.h
+++ b/core/vector.h
@@ -32,7 +32,7 @@
/**
* @class Vector
* @author Juan Linietsky
- * Vector container. Regular Vector Container. Use with care and for smaller arrays when possible. Use DVector for large arrays.
+ * Vector container. Regular Vector Container. Use with care and for smaller arrays when possible. Use PoolVector for large arrays.
*/
#include "os/memory.h"
#include "error_macros.h"
diff --git a/doc/base/classes.xml b/doc/base/classes.xml
index 4be1666e59..f84df42d54 100644
--- a/doc/base/classes.xml
+++ b/doc/base/classes.xml
@@ -12293,17 +12293,19 @@
</argument>
<description>
Add a custom property info to a property. The dictionary must contain: name:[String](the name of the property) and type:[int](see TYPE_* in [@Global Scope]), and optionally hint:[int](see PROPERTY_HINT_* in [@Global Scope]), hint_string:[String].
- Example:[codeblock]
- editor_settings.set("category/property_name", 0)
+ Example:
+ [codeblock]
+ editor_settings.set("category/property_name", 0)
- var property_info = {
- "name": "category/property_name",
- "type": TYPE_INT,
- "hint": PROPERTY_HINT_ENUM,
- "hint_string": "one,two,three"
- }
+ var property_info = {
+ "name": "category/property_name",
+ "type": TYPE_INT,
+ "hint": PROPERTY_HINT_ENUM,
+ "hint_string": "one,two,three"
+ }
- editor_settings.add_property_info(property_info)[/codeblock]
+ editor_settings.add_property_info(property_info)
+ [/codeblock]
</description>
</method>
<method name="erase">
diff --git a/drivers/alsa/audio_driver_alsa.cpp b/drivers/alsa/audio_driver_alsa.cpp
index 9895a10007..b026241579 100644
--- a/drivers/alsa/audio_driver_alsa.cpp
+++ b/drivers/alsa/audio_driver_alsa.cpp
@@ -45,7 +45,7 @@ Error AudioDriverALSA::init() {
samples_in = NULL;
samples_out = NULL;
- mix_rate = 44100;
+ mix_rate = GLOBAL_DEF("audio/mix_rate",44100);
output_format = OUTPUT_STEREO;
channels = 2;
@@ -70,67 +70,62 @@ Error AudioDriverALSA::init() {
ERR_FAIL_COND_V( status<0, ERR_CANT_OPEN );
snd_pcm_hw_params_alloca(&hwparams);
- status = snd_pcm_hw_params_any(pcm_handle, hwparams);
+ status = snd_pcm_hw_params_any(pcm_handle, hwparams);
CHECK_FAIL( status<0 );
status = snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED);
-
CHECK_FAIL( status<0 );
//not interested in anything else
status = snd_pcm_hw_params_set_format(pcm_handle, hwparams, SND_PCM_FORMAT_S16_LE);
-
CHECK_FAIL( status<0 );
//todo: support 4 and 6
status = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, 2);
-
CHECK_FAIL( status<0 );
status = snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &mix_rate, NULL);
-
-
CHECK_FAIL( status<0 );
int latency = GLOBAL_DEF("audio/output_latency",25);
buffer_size = nearest_power_of_2( latency * mix_rate / 1000 );
- status = snd_pcm_hw_params_set_period_size_near(pcm_handle, hwparams, &buffer_size, NULL);
-
+ // set buffer size from project settings
+ status = snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hwparams, &buffer_size);
+ CHECK_FAIL( status<0 );
+ // make period size 1/8
+ period_size = buffer_size >> 3;
+ status = snd_pcm_hw_params_set_period_size_near(pcm_handle, hwparams, &period_size, NULL);
CHECK_FAIL( status<0 );
unsigned int periods=2;
status = snd_pcm_hw_params_set_periods_near(pcm_handle, hwparams, &periods, NULL);
-
CHECK_FAIL( status<0 );
status = snd_pcm_hw_params(pcm_handle,hwparams);
-
CHECK_FAIL( status<0 );
//snd_pcm_hw_params_free(&hwparams);
snd_pcm_sw_params_alloca(&swparams);
+
status = snd_pcm_sw_params_current(pcm_handle, swparams);
CHECK_FAIL( status<0 );
- status = snd_pcm_sw_params_set_avail_min(pcm_handle, swparams, buffer_size);
-
+ status = snd_pcm_sw_params_set_avail_min(pcm_handle, swparams, period_size);
CHECK_FAIL( status<0 );
status = snd_pcm_sw_params_set_start_threshold(pcm_handle, swparams, 1);
-
CHECK_FAIL( status<0 );
status = snd_pcm_sw_params(pcm_handle, swparams);
-
CHECK_FAIL( status<0 );
- samples_in = memnew_arr(int32_t, buffer_size*channels);
- samples_out = memnew_arr(int16_t, buffer_size*channels);
+ samples_in = memnew_arr(int32_t, period_size*channels);
+ samples_out = memnew_arr(int16_t, period_size*channels);
snd_pcm_nonblock(pcm_handle, 0);
@@ -144,36 +139,28 @@ void AudioDriverALSA::thread_func(void* p_udata) {
AudioDriverALSA* ad = (AudioDriverALSA*)p_udata;
-
while (!ad->exit_thread) {
-
-
if (!ad->active) {
-
- for (unsigned int i=0; i < ad->buffer_size*ad->channels; i++) {
-
+ for (unsigned int i=0; i < ad->period_size*ad->channels; i++) {
ad->samples_out[i] = 0;
};
} else {
-
ad->lock();
- ad->audio_server_process(ad->buffer_size, ad->samples_in);
+ ad->audio_server_process(ad->period_size, ad->samples_in);
ad->unlock();
- for(unsigned int i=0;i<ad->buffer_size*ad->channels;i++) {
-
+ for(unsigned int i=0;i<ad->period_size*ad->channels;i++) {
ad->samples_out[i]=ad->samples_in[i]>>16;
}
};
- int todo = ad->buffer_size; // * ad->channels * 2;
+ int todo = ad->period_size;
int total = 0;
while (todo) {
-
if (ad->exit_thread)
break;
uint8_t* src = (uint8_t*)ad->samples_out;
@@ -184,7 +171,8 @@ void AudioDriverALSA::thread_func(void* p_udata) {
break;
if ( wrote == -EAGAIN ) {
- usleep(1000); //can't write yet (though this is blocking..)
+ //can't write yet (though this is blocking..)
+ usleep(1000);
continue;
}
wrote = snd_pcm_recover(ad->pcm_handle, wrote, 0);
@@ -197,9 +185,9 @@ void AudioDriverALSA::thread_func(void* p_udata) {
}
continue;
};
+
total += wrote;
todo -= wrote;
-
};
};
diff --git a/drivers/alsa/audio_driver_alsa.h b/drivers/alsa/audio_driver_alsa.h
index 487f017584..df28294f56 100644
--- a/drivers/alsa/audio_driver_alsa.h
+++ b/drivers/alsa/audio_driver_alsa.h
@@ -51,6 +51,7 @@ class AudioDriverALSA : public AudioDriverSW {
OutputFormat output_format;
snd_pcm_uframes_t buffer_size;
+ snd_pcm_uframes_t period_size;
int channels;
bool active;
diff --git a/drivers/gles2/rasterizer_gles2.cpp b/drivers/gles2/rasterizer_gles2.cpp
index b49f817188..2673c79232 100644
--- a/drivers/gles2/rasterizer_gles2.cpp
+++ b/drivers/gles2/rasterizer_gles2.cpp
@@ -998,7 +998,7 @@ void RasterizerGLES2::texture_set_data(RID p_texture,const Image& p_image,VS::Cu
GLenum blit_target = (texture->target == GL_TEXTURE_CUBE_MAP)?_cube_side_enum[p_cube_side]:GL_TEXTURE_2D;
texture->data_size=img.get_data().size();
- DVector<uint8_t>::Read read = img.get_data().read();
+ PoolVector<uint8_t>::Read read = img.get_data().read();
glActiveTexture(GL_TEXTURE0);
glBindTexture(texture->target, texture->tex_id);
@@ -1133,7 +1133,7 @@ Image RasterizerGLES2::texture_get_data(RID p_texture,VS::CubeMapSide p_cube_sid
ERR_FAIL_COND_V(!texture->active,Image());
ERR_FAIL_COND_V(texture->data_size==0,Image());
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
GLenum format,type=GL_UNSIGNED_BYTE;
Image::Format fmt;
int pixelsize=0;
@@ -1235,7 +1235,7 @@ Image RasterizerGLES2::texture_get_data(RID p_texture,VS::CubeMapSide p_cube_sid
}
data.resize(texture->data_size);
- DVector<uint8_t>::Write wb = data.write();
+ PoolVector<uint8_t>::Write wb = data.write();
glActiveTexture(GL_TEXTURE0);
int ofs=0;
@@ -1264,7 +1264,7 @@ Image RasterizerGLES2::texture_get_data(RID p_texture,VS::CubeMapSide p_cube_sid
}
- wb=DVector<uint8_t>::Write();
+ wb=PoolVector<uint8_t>::Write();
Image img(texture->alloc_width,texture->alloc_height,texture->mipmaps,fmt,data);
@@ -2103,10 +2103,10 @@ void RasterizerGLES2::mesh_add_surface(RID p_mesh,VS::PrimitiveType p_primitive,
uint8_t *array_ptr=NULL;
uint8_t *index_array_ptr=NULL;
- DVector<uint8_t> array_pre_vbo;
- DVector<uint8_t>::Write vaw;
- DVector<uint8_t> index_array_pre_vbo;
- DVector<uint8_t>::Write iaw;
+ PoolVector<uint8_t> array_pre_vbo;
+ PoolVector<uint8_t>::Write vaw;
+ PoolVector<uint8_t> index_array_pre_vbo;
+ PoolVector<uint8_t>::Write iaw;
/* create pointers */
if (use_VBO) {
@@ -2191,11 +2191,11 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::VECTOR3_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Vector3> array = p_arrays[ai];
+ PoolVector<Vector3> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_surface->array_len, ERR_INVALID_PARAMETER );
- DVector<Vector3>::Read read = array.read();
+ PoolVector<Vector3>::Read read = array.read();
const Vector3* src=read.ptr();
// setting vertices means regenerating the AABB
@@ -2252,11 +2252,11 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::VECTOR3_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Vector3> array = p_arrays[ai];
+ PoolVector<Vector3> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_surface->array_len, ERR_INVALID_PARAMETER );
- DVector<Vector3>::Read read = array.read();
+ PoolVector<Vector3>::Read read = array.read();
const Vector3* src=read.ptr();
// setting vertices means regenerating the AABB
@@ -2292,12 +2292,12 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::REAL_ARRAY, ERR_INVALID_PARAMETER );
- DVector<real_t> array = p_arrays[ai];
+ PoolVector<real_t> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_surface->array_len*4, ERR_INVALID_PARAMETER );
- DVector<real_t>::Read read = array.read();
+ PoolVector<real_t>::Read read = array.read();
const real_t* src = read.ptr();
if (p_surface->array[VS::ARRAY_TANGENT].datatype==GL_BYTE) {
@@ -2337,12 +2337,12 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::COLOR_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Color> array = p_arrays[ai];
+ PoolVector<Color> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_surface->array_len, ERR_INVALID_PARAMETER );
- DVector<Color>::Read read = array.read();
+ PoolVector<Color>::Read read = array.read();
const Color* src = read.ptr();
bool alpha=false;
@@ -2371,11 +2371,11 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::VECTOR3_ARRAY && p_arrays[ai].get_type() != Variant::VECTOR2_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Vector2> array = p_arrays[ai];
+ PoolVector<Vector2> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_surface->array_len , ERR_INVALID_PARAMETER);
- DVector<Vector2>::Read read = array.read();
+ PoolVector<Vector2>::Read read = array.read();
const Vector2 * src=read.ptr();
float scale=1.0;
@@ -2417,12 +2417,12 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::REAL_ARRAY, ERR_INVALID_PARAMETER );
- DVector<real_t> array = p_arrays[ai];
+ PoolVector<real_t> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_surface->array_len*VS::ARRAY_WEIGHTS_SIZE, ERR_INVALID_PARAMETER );
- DVector<real_t>::Read read = array.read();
+ PoolVector<real_t>::Read read = array.read();
const real_t * src = read.ptr();
@@ -2460,12 +2460,12 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::REAL_ARRAY, ERR_INVALID_PARAMETER );
- DVector<int> array = p_arrays[ai];
+ PoolVector<int> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_surface->array_len*VS::ARRAY_WEIGHTS_SIZE, ERR_INVALID_PARAMETER );
- DVector<int>::Read read = array.read();
+ PoolVector<int>::Read read = array.read();
const int * src = read.ptr();
@@ -2511,13 +2511,13 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
ERR_FAIL_COND_V( p_surface->index_array_len<=0, ERR_INVALID_DATA );
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::INT_ARRAY, ERR_INVALID_PARAMETER );
- DVector<int> indices = p_arrays[ai];
+ PoolVector<int> indices = p_arrays[ai];
ERR_FAIL_COND_V( indices.size() == 0, ERR_INVALID_PARAMETER );
ERR_FAIL_COND_V( indices.size() != p_surface->index_array_len, ERR_INVALID_PARAMETER );
/* determine wether using 16 or 32 bits indices */
- DVector<int>::Read read = indices.read();
+ PoolVector<int>::Read read = indices.read();
const int *src=read.ptr();
for (int i=0;i<p_surface->index_array_len;i++) {
@@ -2553,18 +2553,18 @@ Error RasterizerGLES2::_surface_set_arrays(Surface *p_surface, uint8_t *p_mem,ui
for(int i=0;i<total_bones;i++)
p_surface->skeleton_bone_used[i]=false;
}
- DVector<Vector3> vertices = p_arrays[VS::ARRAY_VERTEX];
- DVector<int> bones = p_arrays[VS::ARRAY_BONES];
- DVector<float> weights = p_arrays[VS::ARRAY_WEIGHTS];
+ PoolVector<Vector3> vertices = p_arrays[VS::ARRAY_VERTEX];
+ PoolVector<int> bones = p_arrays[VS::ARRAY_BONES];
+ PoolVector<float> weights = p_arrays[VS::ARRAY_WEIGHTS];
bool any_valid=false;
if (vertices.size() && bones.size()==vertices.size()*4 && weights.size()==bones.size()) {
//print_line("MAKING SKELETHONG");
int vs = vertices.size();
- DVector<Vector3>::Read rv =vertices.read();
- DVector<int>::Read rb=bones.read();
- DVector<float>::Read rw=weights.read();
+ PoolVector<Vector3>::Read rv =vertices.read();
+ PoolVector<int>::Read rb=bones.read();
+ PoolVector<float>::Read rw=weights.read();
Vector<bool> first;
first.resize(total_bones);
@@ -3310,7 +3310,7 @@ Vector3 RasterizerGLES2::particles_get_emission_base_velocity(RID p_particles) c
}
-void RasterizerGLES2::particles_set_emission_points(RID p_particles, const DVector<Vector3>& p_points) {
+void RasterizerGLES2::particles_set_emission_points(RID p_particles, const PoolVector<Vector3>& p_points) {
Particles* particles = particles_owner.get( p_particles );
ERR_FAIL_COND(!particles);
@@ -3318,10 +3318,10 @@ void RasterizerGLES2::particles_set_emission_points(RID p_particles, const DVect
particles->data.emission_points=p_points;
}
-DVector<Vector3> RasterizerGLES2::particles_get_emission_points(RID p_particles) const {
+PoolVector<Vector3> RasterizerGLES2::particles_get_emission_points(RID p_particles) const {
Particles* particles = particles_owner.get( p_particles );
- ERR_FAIL_COND_V(!particles,DVector<Vector3>());
+ ERR_FAIL_COND_V(!particles,PoolVector<Vector3>());
return particles->data.emission_points;
@@ -4304,9 +4304,9 @@ void RasterizerGLES2::begin_frame() {
void RasterizerGLES2::capture_viewport(Image* r_capture) {
#if 0
- DVector<uint8_t> pixels;
+ PoolVector<uint8_t> pixels;
pixels.resize(viewport.width*viewport.height*3);
- DVector<uint8_t>::Write w = pixels.write();
+ PoolVector<uint8_t>::Write w = pixels.write();
#ifdef GLEW_ENABLED
glReadBuffer(GL_COLOR_ATTACHMENT0);
#endif
@@ -4318,15 +4318,15 @@ void RasterizerGLES2::capture_viewport(Image* r_capture) {
glPixelStorei(GL_PACK_ALIGNMENT, 4);
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
r_capture->create(viewport.width,viewport.height,0,Image::FORMAT_RGB8,pixels);
#else
- DVector<uint8_t> pixels;
+ PoolVector<uint8_t> pixels;
pixels.resize(viewport.width*viewport.height*4);
- DVector<uint8_t>::Write w = pixels.write();
+ PoolVector<uint8_t>::Write w = pixels.write();
glPixelStorei(GL_PACK_ALIGNMENT, 4);
// uint64_t time = OS::get_singleton()->get_ticks_usec();
@@ -4359,7 +4359,7 @@ void RasterizerGLES2::capture_viewport(Image* r_capture) {
}
}
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
r_capture->create(viewport.width,viewport.height,0,Image::FORMAT_RGBA8,pixels);
//r_capture->flip_y();
@@ -8685,7 +8685,7 @@ RID RasterizerGLES2::canvas_light_occluder_create() {
return canvas_occluder_owner.make_rid(co);
}
-void RasterizerGLES2::canvas_light_occluder_set_polylines(RID p_occluder, const DVector<Vector2>& p_lines) {
+void RasterizerGLES2::canvas_light_occluder_set_polylines(RID p_occluder, const PoolVector<Vector2>& p_lines) {
CanvasOccluder *co = canvas_occluder_owner.get(p_occluder);
ERR_FAIL_COND(!co);
@@ -8709,18 +8709,18 @@ void RasterizerGLES2::canvas_light_occluder_set_polylines(RID p_occluder, const
- DVector<float> geometry;
- DVector<uint16_t> indices;
+ PoolVector<float> geometry;
+ PoolVector<uint16_t> indices;
int lc = p_lines.size();
geometry.resize(lc*6);
indices.resize(lc*3);
- DVector<float>::Write vw=geometry.write();
- DVector<uint16_t>::Write iw=indices.write();
+ PoolVector<float>::Write vw=geometry.write();
+ PoolVector<uint16_t>::Write iw=indices.write();
- DVector<Vector2>::Read lr=p_lines.read();
+ PoolVector<Vector2>::Read lr=p_lines.read();
const int POLY_HEIGHT = 16384;
diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp
index 5f82e1691b..b5904e09d0 100644
--- a/drivers/gles3/rasterizer_scene_gles3.cpp
+++ b/drivers/gles3/rasterizer_scene_gles3.cpp
@@ -4596,10 +4596,10 @@ void RasterizerSceneGLES3::_generate_brdf() {
- DVector<uint8_t> brdf;
+ PoolVector<uint8_t> brdf;
brdf.resize(brdf_size*brdf_size*2);
- DVector<uint8_t>::Write w = brdf.write();
+ PoolVector<uint8_t>::Write w = brdf.write();
for(int i=0;i<brdf_size;i++) {
diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp
index 689d7ab8c4..a3c5bf5577 100644
--- a/drivers/gles3/rasterizer_storage_gles3.cpp
+++ b/drivers/gles3/rasterizer_storage_gles3.cpp
@@ -670,7 +670,7 @@ void RasterizerStorageGLES3::texture_set_data(RID p_texture,const Image& p_image
GLenum blit_target = (texture->target == GL_TEXTURE_CUBE_MAP)?_cube_side_enum[p_cube_side]:GL_TEXTURE_2D;
texture->data_size=img.get_data().size();
- DVector<uint8_t>::Read read = img.get_data().read();
+ PoolVector<uint8_t>::Read read = img.get_data().read();
glActiveTexture(GL_TEXTURE0);
glBindTexture(texture->target, texture->tex_id);
@@ -831,12 +831,12 @@ Image RasterizerStorageGLES3::texture_get_data(RID p_texture,VS::CubeMapSide p_c
#ifdef GLES_OVER_GL
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
int data_size = Image::get_image_data_size(texture->alloc_width,texture->alloc_height,texture->format,texture->mipmaps>1?-1:0);
data.resize(data_size*2); //add some memory at the end, just in case for buggy drivers
- DVector<uint8_t>::Write wb = data.write();
+ PoolVector<uint8_t>::Write wb = data.write();
glActiveTexture(GL_TEXTURE0);
@@ -868,7 +868,7 @@ Image RasterizerStorageGLES3::texture_get_data(RID p_texture,VS::CubeMapSide p_c
}
- wb=DVector<uint8_t>::Write();
+ wb=PoolVector<uint8_t>::Write();
data.resize(data_size);
@@ -1848,11 +1848,11 @@ _FORCE_INLINE_ static void _fill_std140_variant_ubo_value(ShaderLanguage::DataTy
} break;
case ShaderLanguage::TYPE_IVEC2: {
- DVector<int> iv = value;
+ PoolVector<int> iv = value;
int s = iv.size();
GLint *gui = (GLint*)data;
- DVector<int>::Read r = iv.read();
+ PoolVector<int>::Read r = iv.read();
for(int i=0;i<2;i++) {
if (i<s)
@@ -1865,11 +1865,11 @@ _FORCE_INLINE_ static void _fill_std140_variant_ubo_value(ShaderLanguage::DataTy
} break;
case ShaderLanguage::TYPE_IVEC3: {
- DVector<int> iv = value;
+ PoolVector<int> iv = value;
int s = iv.size();
GLint *gui = (GLint*)data;
- DVector<int>::Read r = iv.read();
+ PoolVector<int>::Read r = iv.read();
for(int i=0;i<3;i++) {
if (i<s)
@@ -1882,11 +1882,11 @@ _FORCE_INLINE_ static void _fill_std140_variant_ubo_value(ShaderLanguage::DataTy
case ShaderLanguage::TYPE_IVEC4: {
- DVector<int> iv = value;
+ PoolVector<int> iv = value;
int s = iv.size();
GLint *gui = (GLint*)data;
- DVector<int>::Read r = iv.read();
+ PoolVector<int>::Read r = iv.read();
for(int i=0;i<4;i++) {
if (i<s)
@@ -1905,11 +1905,11 @@ _FORCE_INLINE_ static void _fill_std140_variant_ubo_value(ShaderLanguage::DataTy
} break;
case ShaderLanguage::TYPE_UVEC2: {
- DVector<int> iv = value;
+ PoolVector<int> iv = value;
int s = iv.size();
GLuint *gui = (GLuint*)data;
- DVector<int>::Read r = iv.read();
+ PoolVector<int>::Read r = iv.read();
for(int i=0;i<2;i++) {
if (i<s)
@@ -1920,11 +1920,11 @@ _FORCE_INLINE_ static void _fill_std140_variant_ubo_value(ShaderLanguage::DataTy
}
} break;
case ShaderLanguage::TYPE_UVEC3: {
- DVector<int> iv = value;
+ PoolVector<int> iv = value;
int s = iv.size();
GLuint *gui = (GLuint*)data;
- DVector<int>::Read r = iv.read();
+ PoolVector<int>::Read r = iv.read();
for(int i=0;i<3;i++) {
if (i<s)
@@ -1935,11 +1935,11 @@ _FORCE_INLINE_ static void _fill_std140_variant_ubo_value(ShaderLanguage::DataTy
} break;
case ShaderLanguage::TYPE_UVEC4: {
- DVector<int> iv = value;
+ PoolVector<int> iv = value;
int s = iv.size();
GLuint *gui = (GLuint*)data;
- DVector<int>::Read r = iv.read();
+ PoolVector<int>::Read r = iv.read();
for(int i=0;i<4;i++) {
if (i<s)
@@ -2463,9 +2463,9 @@ RID RasterizerStorageGLES3::mesh_create(){
}
-void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh,uint32_t p_format,VS::PrimitiveType p_primitive,const DVector<uint8_t>& p_array,int p_vertex_count,const DVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<DVector<uint8_t> >& p_blend_shapes,const Vector<AABB>& p_bone_aabbs){
+void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh,uint32_t p_format,VS::PrimitiveType p_primitive,const PoolVector<uint8_t>& p_array,int p_vertex_count,const PoolVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<PoolVector<uint8_t> >& p_blend_shapes,const Vector<AABB>& p_bone_aabbs){
- DVector<uint8_t> array = p_array;
+ PoolVector<uint8_t> array = p_array;
Mesh *mesh = mesh_owner.getornull(p_mesh);
ERR_FAIL_COND(!mesh);
@@ -2667,12 +2667,12 @@ void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh,uint32_t p_format,VS::P
print_line("desired size: "+itos(array_size)+" vcount "+itos(p_vertex_count)+" should be: "+itos(array.size()+p_vertex_count*2)+" but is "+itos(array.size()));
if (array.size()!=array_size && array.size()+p_vertex_count*2 == array_size) {
//old format, convert
- array = DVector<uint8_t>();
+ array = PoolVector<uint8_t>();
array.resize( p_array.size()+p_vertex_count*2 );
- DVector<uint8_t>::Write w = array.write();
- DVector<uint8_t>::Read r = p_array.read();
+ PoolVector<uint8_t>::Write w = array.write();
+ PoolVector<uint8_t>::Read r = p_array.read();
uint16_t *w16 = (uint16_t*)w.ptr();
const uint16_t *r16 = (uint16_t*)r.ptr();
@@ -2739,7 +2739,7 @@ void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh,uint32_t p_format,VS::P
{
- DVector<uint8_t>::Read vr = array.read();
+ PoolVector<uint8_t>::Read vr = array.read();
glGenBuffers(1,&surface->vertex_id);
glBindBuffer(GL_ARRAY_BUFFER,surface->vertex_id);
@@ -2749,7 +2749,7 @@ void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh,uint32_t p_format,VS::P
if (p_format&VS::ARRAY_FORMAT_INDEX) {
- DVector<uint8_t>::Read ir = p_index_array.read();
+ PoolVector<uint8_t>::Read ir = p_index_array.read();
glGenBuffers(1,&surface->index_id);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,surface->index_id);
@@ -2809,7 +2809,7 @@ void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh,uint32_t p_format,VS::P
Surface::MorphTarget mt;
- DVector<uint8_t>::Read vr = p_blend_shapes[i].read();
+ PoolVector<uint8_t>::Read vr = p_blend_shapes[i].read();
glGenBuffers(1,&mt.vertex_id);
glBindBuffer(GL_ARRAY_BUFFER,mt.vertex_id);
@@ -2933,25 +2933,25 @@ int RasterizerStorageGLES3::mesh_surface_get_array_index_len(RID p_mesh, int p_s
return mesh->surfaces[p_surface]->index_array_len;
}
-DVector<uint8_t> RasterizerStorageGLES3::mesh_surface_get_array(RID p_mesh, int p_surface) const{
+PoolVector<uint8_t> RasterizerStorageGLES3::mesh_surface_get_array(RID p_mesh, int p_surface) const{
const Mesh *mesh = mesh_owner.getornull(p_mesh);
- ERR_FAIL_COND_V(!mesh,DVector<uint8_t>());
- ERR_FAIL_INDEX_V(p_surface,mesh->surfaces.size(),DVector<uint8_t>());
+ ERR_FAIL_COND_V(!mesh,PoolVector<uint8_t>());
+ ERR_FAIL_INDEX_V(p_surface,mesh->surfaces.size(),PoolVector<uint8_t>());
Surface *surface = mesh->surfaces[p_surface];
glBindBuffer(GL_ARRAY_BUFFER,surface->vertex_id);
void * data = glMapBufferRange(GL_ARRAY_BUFFER,0,surface->array_byte_size,GL_MAP_READ_BIT);
- ERR_FAIL_COND_V(!data,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!data,PoolVector<uint8_t>());
- DVector<uint8_t> ret;
+ PoolVector<uint8_t> ret;
ret.resize(surface->array_byte_size);
{
- DVector<uint8_t>::Write w = ret.write();
+ PoolVector<uint8_t>::Write w = ret.write();
copymem(w.ptr(),data,surface->array_byte_size);
}
glUnmapBuffer(GL_ARRAY_BUFFER);
@@ -2960,26 +2960,26 @@ DVector<uint8_t> RasterizerStorageGLES3::mesh_surface_get_array(RID p_mesh, int
return ret;
}
-DVector<uint8_t> RasterizerStorageGLES3::mesh_surface_get_index_array(RID p_mesh, int p_surface) const {
+PoolVector<uint8_t> RasterizerStorageGLES3::mesh_surface_get_index_array(RID p_mesh, int p_surface) const {
const Mesh *mesh = mesh_owner.getornull(p_mesh);
- ERR_FAIL_COND_V(!mesh,DVector<uint8_t>());
- ERR_FAIL_INDEX_V(p_surface,mesh->surfaces.size(),DVector<uint8_t>());
+ ERR_FAIL_COND_V(!mesh,PoolVector<uint8_t>());
+ ERR_FAIL_INDEX_V(p_surface,mesh->surfaces.size(),PoolVector<uint8_t>());
Surface *surface = mesh->surfaces[p_surface];
- ERR_FAIL_COND_V(surface->index_array_len==0,DVector<uint8_t>());
+ ERR_FAIL_COND_V(surface->index_array_len==0,PoolVector<uint8_t>());
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,surface->index_id);
void * data = glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER,0,surface->index_array_byte_size,GL_MAP_READ_BIT);
- ERR_FAIL_COND_V(!data,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!data,PoolVector<uint8_t>());
- DVector<uint8_t> ret;
+ PoolVector<uint8_t> ret;
ret.resize(surface->index_array_byte_size);
{
- DVector<uint8_t>::Write w = ret.write();
+ PoolVector<uint8_t>::Write w = ret.write();
copymem(w.ptr(),data,surface->index_array_byte_size);
}
@@ -3019,27 +3019,27 @@ AABB RasterizerStorageGLES3::mesh_surface_get_aabb(RID p_mesh, int p_surface) co
}
-Vector<DVector<uint8_t> > RasterizerStorageGLES3::mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const{
+Vector<PoolVector<uint8_t> > RasterizerStorageGLES3::mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const{
const Mesh *mesh = mesh_owner.getornull(p_mesh);
- ERR_FAIL_COND_V(!mesh,Vector<DVector<uint8_t> >());
- ERR_FAIL_INDEX_V(p_surface,mesh->surfaces.size(),Vector<DVector<uint8_t> >());
+ ERR_FAIL_COND_V(!mesh,Vector<PoolVector<uint8_t> >());
+ ERR_FAIL_INDEX_V(p_surface,mesh->surfaces.size(),Vector<PoolVector<uint8_t> >());
- Vector<DVector<uint8_t> > bsarr;
+ Vector<PoolVector<uint8_t> > bsarr;
for(int i=0;i<mesh->surfaces[p_surface]->morph_targets.size();i++) {
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,mesh->surfaces[p_surface]->morph_targets[i].vertex_id);
void * data = glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER,0,mesh->surfaces[p_surface]->array_byte_size,GL_MAP_READ_BIT);
- ERR_FAIL_COND_V(!data,Vector<DVector<uint8_t> >());
+ ERR_FAIL_COND_V(!data,Vector<PoolVector<uint8_t> >());
- DVector<uint8_t> ret;
+ PoolVector<uint8_t> ret;
ret.resize(mesh->surfaces[p_surface]->array_byte_size);
{
- DVector<uint8_t>::Write w = ret.write();
+ PoolVector<uint8_t>::Write w = ret.write();
copymem(w.ptr(),data,mesh->surfaces[p_surface]->array_byte_size);
}
@@ -4705,7 +4705,7 @@ RID RasterizerStorageGLES3::room_create(){
return RID();
}
-void RasterizerStorageGLES3::room_add_bounds(RID p_room, const DVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform){
+void RasterizerStorageGLES3::room_add_bounds(RID p_room, const PoolVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform){
}
@@ -4810,7 +4810,7 @@ Transform RasterizerStorageGLES3::gi_probe_get_to_cell_xform(RID p_probe) const
-void RasterizerStorageGLES3::gi_probe_set_dynamic_data(RID p_probe,const DVector<int>& p_data){
+void RasterizerStorageGLES3::gi_probe_set_dynamic_data(RID p_probe,const PoolVector<int>& p_data){
GIProbe *gip = gi_probe_owner.getornull(p_probe);
ERR_FAIL_COND(!gip);
@@ -4819,10 +4819,10 @@ void RasterizerStorageGLES3::gi_probe_set_dynamic_data(RID p_probe,const DVector
gip->instance_change_notify();
}
-DVector<int> RasterizerStorageGLES3::gi_probe_get_dynamic_data(RID p_probe) const{
+PoolVector<int> RasterizerStorageGLES3::gi_probe_get_dynamic_data(RID p_probe) const{
const GIProbe *gip = gi_probe_owner.getornull(p_probe);
- ERR_FAIL_COND_V(!gip,DVector<int>());
+ ERR_FAIL_COND_V(!gip,PoolVector<int>());
return gip->dynamic_data;
}
@@ -5125,7 +5125,7 @@ void RasterizerStorageGLES3::particles_set_emission_box_extents(RID p_particles,
particles->emission_box_extents=p_extents;
}
-void RasterizerStorageGLES3::particles_set_emission_points(RID p_particles,const DVector<Vector3>& p_points) {
+void RasterizerStorageGLES3::particles_set_emission_points(RID p_particles,const PoolVector<Vector3>& p_points) {
Particles *particles = particles_owner.getornull(p_particles);
ERR_FAIL_COND(!particles);
@@ -5961,7 +5961,7 @@ RID RasterizerStorageGLES3::canvas_light_occluder_create() {
return canvas_occluder_owner.make_rid(co);
}
-void RasterizerStorageGLES3::canvas_light_occluder_set_polylines(RID p_occluder, const DVector<Vector2>& p_lines) {
+void RasterizerStorageGLES3::canvas_light_occluder_set_polylines(RID p_occluder, const PoolVector<Vector2>& p_lines) {
CanvasOccluder *co = canvas_occluder_owner.get(p_occluder);
ERR_FAIL_COND(!co);
@@ -5985,18 +5985,18 @@ void RasterizerStorageGLES3::canvas_light_occluder_set_polylines(RID p_occluder,
- DVector<float> geometry;
- DVector<uint16_t> indices;
+ PoolVector<float> geometry;
+ PoolVector<uint16_t> indices;
int lc = p_lines.size();
geometry.resize(lc*6);
indices.resize(lc*3);
- DVector<float>::Write vw=geometry.write();
- DVector<uint16_t>::Write iw=indices.write();
+ PoolVector<float>::Write vw=geometry.write();
+ PoolVector<uint16_t>::Write iw=indices.write();
- DVector<Vector2>::Read lr=p_lines.read();
+ PoolVector<Vector2>::Read lr=p_lines.read();
const int POLY_HEIGHT = 16384;
diff --git a/drivers/gles3/rasterizer_storage_gles3.h b/drivers/gles3/rasterizer_storage_gles3.h
index 357b69183e..32581e860d 100644
--- a/drivers/gles3/rasterizer_storage_gles3.h
+++ b/drivers/gles3/rasterizer_storage_gles3.h
@@ -599,7 +599,7 @@ public:
virtual RID mesh_create();
- virtual void mesh_add_surface(RID p_mesh,uint32_t p_format,VS::PrimitiveType p_primitive,const DVector<uint8_t>& p_array,int p_vertex_count,const DVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<DVector<uint8_t> >& p_blend_shapes=Vector<DVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>());
+ virtual void mesh_add_surface(RID p_mesh,uint32_t p_format,VS::PrimitiveType p_primitive,const PoolVector<uint8_t>& p_array,int p_vertex_count,const PoolVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<PoolVector<uint8_t> >& p_blend_shapes=Vector<PoolVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>());
virtual void mesh_set_morph_target_count(RID p_mesh,int p_amount);
virtual int mesh_get_morph_target_count(RID p_mesh) const;
@@ -614,15 +614,15 @@ public:
virtual int mesh_surface_get_array_len(RID p_mesh, int p_surface) const;
virtual int mesh_surface_get_array_index_len(RID p_mesh, int p_surface) const;
- virtual DVector<uint8_t> mesh_surface_get_array(RID p_mesh, int p_surface) const;
- virtual DVector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const;
+ virtual PoolVector<uint8_t> mesh_surface_get_array(RID p_mesh, int p_surface) const;
+ virtual PoolVector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const;
virtual uint32_t mesh_surface_get_format(RID p_mesh, int p_surface) const;
virtual VS::PrimitiveType mesh_surface_get_primitive_type(RID p_mesh, int p_surface) const;
virtual AABB mesh_surface_get_aabb(RID p_mesh, int p_surface) const;
- virtual Vector<DVector<uint8_t> > mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const;
+ virtual Vector<PoolVector<uint8_t> > mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const;
virtual Vector<AABB> mesh_surface_get_skeleton_aabb(RID p_mesh, int p_surface) const;
virtual void mesh_remove_surface(RID p_mesh, int p_surface);
@@ -877,7 +877,7 @@ public:
/* ROOM API */
virtual RID room_create();
- virtual void room_add_bounds(RID p_room, const DVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform);
+ virtual void room_add_bounds(RID p_room, const PoolVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform);
virtual void room_clear_bounds(RID p_room);
/* PORTAL API */
@@ -913,7 +913,7 @@ public:
uint32_t version;
- DVector<int> dynamic_data;
+ PoolVector<int> dynamic_data;
};
@@ -931,8 +931,8 @@ public:
virtual void gi_probe_set_to_cell_xform(RID p_probe,const Transform& p_xform);
virtual Transform gi_probe_get_to_cell_xform(RID p_probe) const;
- virtual void gi_probe_set_dynamic_data(RID p_probe,const DVector<int>& p_data);
- virtual DVector<int> gi_probe_get_dynamic_data(RID p_probe) const;
+ virtual void gi_probe_set_dynamic_data(RID p_probe,const PoolVector<int>& p_data);
+ virtual PoolVector<int> gi_probe_get_dynamic_data(RID p_probe) const;
virtual void gi_probe_set_dynamic_range(RID p_probe,int p_range);
virtual int gi_probe_get_dynamic_range(RID p_probe) const;
@@ -985,7 +985,7 @@ public:
VS::ParticlesEmissionShape emission_shape;
float emission_sphere_radius;
Vector3 emission_box_extents;
- DVector<Vector3> emission_points;
+ PoolVector<Vector3> emission_points;
GLuint emission_point_texture;
VS::ParticlesDrawOrder draw_order;
@@ -1061,7 +1061,7 @@ public:
virtual void particles_set_emission_shape(RID p_particles,VS::ParticlesEmissionShape p_shape);
virtual void particles_set_emission_sphere_radius(RID p_particles,float p_radius);
virtual void particles_set_emission_box_extents(RID p_particles,const Vector3& p_extents);
- virtual void particles_set_emission_points(RID p_particles,const DVector<Vector3>& p_points);
+ virtual void particles_set_emission_points(RID p_particles,const PoolVector<Vector3>& p_points);
virtual void particles_set_draw_order(RID p_particles,VS::ParticlesDrawOrder p_order);
@@ -1208,14 +1208,14 @@ public:
GLuint vertex_id; // 0 means, unconfigured
GLuint index_id; // 0 means, unconfigured
- DVector<Vector2> lines;
+ PoolVector<Vector2> lines;
int len;
};
RID_Owner<CanvasOccluder> canvas_occluder_owner;
virtual RID canvas_light_occluder_create();
- virtual void canvas_light_occluder_set_polylines(RID p_occluder, const DVector<Vector2>& p_lines);
+ virtual void canvas_light_occluder_set_polylines(RID p_occluder, const PoolVector<Vector2>& p_lines);
virtual VS::InstanceType get_base_type(RID p_rid) const;
diff --git a/drivers/png/image_loader_png.cpp b/drivers/png/image_loader_png.cpp
index d74a12ba93..de095c20ac 100644
--- a/drivers/png/image_loader_png.cpp
+++ b/drivers/png/image_loader_png.cpp
@@ -181,11 +181,11 @@ Error ImageLoaderPNG::_load_image(void *rf_up,png_rw_ptr p_func,Image *p_image)
//int rowsize = png_get_rowbytes(png, info);
int rowsize = components * width;
- DVector<uint8_t> dstbuff;
+ PoolVector<uint8_t> dstbuff;
dstbuff.resize( rowsize * height );
- DVector<uint8_t>::Write dstbuff_write = dstbuff.write();
+ PoolVector<uint8_t>::Write dstbuff_write = dstbuff.write();
uint8_t* data = dstbuff_write.ptr();
@@ -265,10 +265,10 @@ static Image _load_mem_png(const uint8_t* p_png,int p_size) {
}
-static Image _lossless_unpack_png(const DVector<uint8_t>& p_data) {
+static Image _lossless_unpack_png(const PoolVector<uint8_t>& p_data) {
int len = p_data.size();
- DVector<uint8_t>::Read r = p_data.read();
+ PoolVector<uint8_t>::Read r = p_data.read();
ERR_FAIL_COND_V(r[0]!='P' || r[1]!='N' || r[2]!='G' || r[3]!=' ',Image());
return _load_mem_png(&r[4],len-4);
@@ -276,17 +276,17 @@ static Image _lossless_unpack_png(const DVector<uint8_t>& p_data) {
static void _write_png_data(png_structp png_ptr,png_bytep data, png_size_t p_length) {
- DVector<uint8_t> &v = *(DVector<uint8_t>*)png_get_io_ptr(png_ptr);
+ PoolVector<uint8_t> &v = *(PoolVector<uint8_t>*)png_get_io_ptr(png_ptr);
int vs = v.size();
v.resize(vs+p_length);
- DVector<uint8_t>::Write w = v.write();
+ PoolVector<uint8_t>::Write w = v.write();
copymem(&w[vs],data,p_length);
//print_line("png write: "+itos(p_length));
}
-static DVector<uint8_t> _lossless_pack_png(const Image& p_image) {
+static PoolVector<uint8_t> _lossless_pack_png(const Image& p_image) {
Image img = p_image;
@@ -294,7 +294,7 @@ static DVector<uint8_t> _lossless_pack_png(const Image& p_image) {
img.decompress();
- ERR_FAIL_COND_V(img.is_compressed(), DVector<uint8_t>());
+ ERR_FAIL_COND_V(img.is_compressed(), PoolVector<uint8_t>());
png_structp png_ptr;
png_infop info_ptr;
@@ -304,16 +304,16 @@ static DVector<uint8_t> _lossless_pack_png(const Image& p_image) {
/* initialize stuff */
png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
- ERR_FAIL_COND_V(!png_ptr,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!png_ptr,PoolVector<uint8_t>());
info_ptr = png_create_info_struct(png_ptr);
- ERR_FAIL_COND_V(!info_ptr,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!info_ptr,PoolVector<uint8_t>());
if (setjmp(png_jmpbuf(png_ptr))) {
- ERR_FAIL_V(DVector<uint8_t>());
+ ERR_FAIL_V(PoolVector<uint8_t>());
}
- DVector<uint8_t> ret;
+ PoolVector<uint8_t> ret;
ret.push_back('P');
ret.push_back('N');
ret.push_back('G');
@@ -323,7 +323,7 @@ static DVector<uint8_t> _lossless_pack_png(const Image& p_image) {
/* write header */
if (setjmp(png_jmpbuf(png_ptr))) {
- ERR_FAIL_V(DVector<uint8_t>());
+ ERR_FAIL_V(PoolVector<uint8_t>());
}
int pngf=0;
@@ -379,11 +379,11 @@ static DVector<uint8_t> _lossless_pack_png(const Image& p_image) {
/* write bytes */
if (setjmp(png_jmpbuf(png_ptr))) {
- ERR_FAIL_V(DVector<uint8_t>());
+ ERR_FAIL_V(PoolVector<uint8_t>());
}
- DVector<uint8_t>::Read r = img.get_data().read();
+ PoolVector<uint8_t>::Read r = img.get_data().read();
row_pointers = (png_bytep*)memalloc(sizeof(png_bytep)*h);
for(int i=0;i<h;i++) {
@@ -397,7 +397,7 @@ static DVector<uint8_t> _lossless_pack_png(const Image& p_image) {
/* end write */
if (setjmp(png_jmpbuf(png_ptr))) {
- ERR_FAIL_V(DVector<uint8_t>());
+ ERR_FAIL_V(PoolVector<uint8_t>());
}
png_write_end(png_ptr, NULL);
diff --git a/drivers/png/resource_saver_png.cpp b/drivers/png/resource_saver_png.cpp
index b06b02b200..a9a199bb59 100644
--- a/drivers/png/resource_saver_png.cpp
+++ b/drivers/png/resource_saver_png.cpp
@@ -193,7 +193,7 @@ Error ResourceSaverPNG::save_image(const String &p_path, Image &p_img) {
}
- DVector<uint8_t>::Read r = p_img.get_data().read();
+ PoolVector<uint8_t>::Read r = p_img.get_data().read();
row_pointers = (png_bytep*)memalloc(sizeof(png_bytep)*h);
for(int i=0;i<h;i++) {
diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.cpp b/drivers/pulseaudio/audio_driver_pulseaudio.cpp
index 521df2e521..3a1317cbf6 100644
--- a/drivers/pulseaudio/audio_driver_pulseaudio.cpp
+++ b/drivers/pulseaudio/audio_driver_pulseaudio.cpp
@@ -36,48 +36,56 @@
Error AudioDriverPulseAudio::init() {
- active = false;
- thread_exited = false;
- exit_thread = false;
+ active = false;
+ thread_exited = false;
+ exit_thread = false;
pcm_open = false;
samples_in = NULL;
samples_out = NULL;
- mix_rate = 44100;
+ mix_rate = GLOBAL_DEF("audio/mix_rate",44100);
output_format = OUTPUT_STEREO;
channels = 2;
- pa_sample_spec spec;
- spec.format = PA_SAMPLE_S16LE;
- spec.channels = channels;
- spec.rate = mix_rate;
-
- int error_code;
- pulse = pa_simple_new(NULL, // default server
- "Godot", // application name
- PA_STREAM_PLAYBACK,
- NULL, // default device
- "Sound", // stream description
- &spec,
- NULL, // use default channel map
- NULL, // use default buffering attributes
- &error_code
- );
-
- if (pulse == NULL) {
-
- fprintf(stderr, "PulseAudio ERR: %s\n", pa_strerror(error_code));\
- ERR_FAIL_COND_V(pulse == NULL, ERR_CANT_OPEN);
- }
+ pa_sample_spec spec;
+ spec.format = PA_SAMPLE_S16LE;
+ spec.channels = channels;
+ spec.rate = mix_rate;
+
+ int latency = GLOBAL_DEF("audio/output_latency", 25);
+ buffer_size = nearest_power_of_2(latency * mix_rate / 1000);
+
+ pa_buffer_attr attr;
+ // set to appropriate buffer size from global settings
+ attr.tlength = buffer_size;
+ // set them to be automatically chosen
+ attr.prebuf = (uint32_t)-1;
+ attr.maxlength = (uint32_t)-1;
+ attr.minreq = (uint32_t)-1;
+
+ int error_code;
+ pulse = pa_simple_new( NULL, // default server
+ "Godot", // application name
+ PA_STREAM_PLAYBACK,
+ NULL, // default device
+ "Sound", // stream description
+ &spec,
+ NULL, // use default channel map
+ &attr, // use buffering attributes from above
+ &error_code
+ );
+
+ if (pulse == NULL) {
+ fprintf(stderr, "PulseAudio ERR: %s\n", pa_strerror(error_code));\
+ ERR_FAIL_COND_V(pulse == NULL, ERR_CANT_OPEN);
+ }
- int latency = GLOBAL_DEF("audio/output_latency", 25);
- buffer_size = nearest_power_of_2(latency * mix_rate / 1000);
- samples_in = memnew_arr(int32_t, buffer_size * channels);
- samples_out = memnew_arr(int16_t, buffer_size * channels);
+ samples_in = memnew_arr(int32_t, buffer_size * channels);
+ samples_out = memnew_arr(int16_t, buffer_size * channels);
- mutex = Mutex::create();
- thread = Thread::create(AudioDriverPulseAudio::thread_func, this);
+ mutex = Mutex::create();
+ thread = Thread::create(AudioDriverPulseAudio::thread_func, this);
return OK;
}
@@ -95,47 +103,40 @@ float AudioDriverPulseAudio::get_latency() {
void AudioDriverPulseAudio::thread_func(void* p_udata) {
- AudioDriverPulseAudio* ad = (AudioDriverPulseAudio*)p_udata;
+ AudioDriverPulseAudio* ad = (AudioDriverPulseAudio*)p_udata;
while (!ad->exit_thread) {
-
if (!ad->active) {
-
- for (unsigned int i=0; i < ad->buffer_size * ad->channels; i++) {
-
+ for (unsigned int i=0; i < ad->buffer_size * ad->channels; i++) {
ad->samples_out[i] = 0;
- }
+ }
} else {
-
ad->lock();
ad->audio_server_process(ad->buffer_size, ad->samples_in);
ad->unlock();
- for (unsigned int i=0; i < ad->buffer_size * ad->channels;i ++) {
-
- ad->samples_out[i] = ad->samples_in[i] >> 16;
+ for (unsigned int i=0; i < ad->buffer_size * ad->channels;i ++) {
+ ad->samples_out[i] = ad->samples_in[i] >> 16;
}
- }
-
- // pa_simple_write always consumes the entire buffer
-
- int error_code;
- int byte_size = ad->buffer_size * sizeof(int16_t) * ad->channels;
- if (pa_simple_write(ad->pulse, ad->samples_out, byte_size, &error_code) < 0) {
+ }
- // can't recover here
- fprintf(stderr, "PulseAudio failed and can't recover: %s\n", pa_strerror(error_code));
- ad->active = false;
- ad->exit_thread = true;
- break;
- }
+ // pa_simple_write always consumes the entire buffer
- }
-
- ad->thread_exited = true;
+ int error_code;
+ int byte_size = ad->buffer_size * sizeof(int16_t) * ad->channels;
+ if (pa_simple_write(ad->pulse, ad->samples_out, byte_size, &error_code) < 0) {
+ // can't recover here
+ fprintf(stderr, "PulseAudio failed and can't recover: %s\n", pa_strerror(error_code));
+ ad->active = false;
+ ad->exit_thread = true;
+ break;
+ }
+ }
+
+ ad->thread_exited = true;
}
void AudioDriverPulseAudio::start() {
@@ -184,10 +185,10 @@ void AudioDriverPulseAudio::finish() {
};
memdelete(thread);
- if (mutex) {
+ if (mutex) {
memdelete(mutex);
- mutex = NULL;
- }
+ mutex = NULL;
+ }
thread = NULL;
}
@@ -195,9 +196,9 @@ void AudioDriverPulseAudio::finish() {
AudioDriverPulseAudio::AudioDriverPulseAudio() {
mutex = NULL;
- thread = NULL;
- pulse = NULL;
- latency=0;
+ thread = NULL;
+ pulse = NULL;
+ latency=0;
}
AudioDriverPulseAudio::~AudioDriverPulseAudio() {
diff --git a/drivers/rtaudio/audio_driver_rtaudio.cpp b/drivers/rtaudio/audio_driver_rtaudio.cpp
index 4b145c09fb..a798990449 100644
--- a/drivers/rtaudio/audio_driver_rtaudio.cpp
+++ b/drivers/rtaudio/audio_driver_rtaudio.cpp
@@ -47,9 +47,7 @@ const char* AudioDriverRtAudio::get_name() const {
}
-// Two-channel sawtooth wave generator.
-int AudioDriverRtAudio::callback( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames,
- double streamTime, RtAudioStreamStatus status, void *userData ) {
+int AudioDriverRtAudio::callback( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status, void *userData ) {
if (status) {
if (status & RTAUDIO_INPUT_OVERFLOW) {
@@ -64,8 +62,6 @@ int AudioDriverRtAudio::callback( void *outputBuffer, void *inputBuffer, unsigne
AudioDriverRtAudio *self = (AudioDriverRtAudio*)userData;
if (self->mutex->try_lock()!=OK) {
-
-
// what should i do..
for(unsigned int i=0;i<nBufferFrames;i++)
buffer[i]=0;
@@ -100,61 +96,89 @@ Error AudioDriverRtAudio::init() {
else
output_format=OUTPUT_STEREO;
-
RtAudio::StreamParameters parameters;
parameters.deviceId = dac->getDefaultOutputDevice();
RtAudio::StreamOptions options;
+
+ // set the desired numberOfBuffers
+ unsigned int target_number_of_buffers = 4;
+ options.numberOfBuffers = target_number_of_buffers;
+
// options.
// RtAudioStreamFlags flags; /*!< A bit-mask of stream flags (RTAUDIO_NONINTERLEAVED, RTAUDIO_MINIMIZE_LATENCY, RTAUDIO_HOG_DEVICE). *///
// unsigned int numberOfBuffers; /*!< Number of stream buffers. */
// std::string streamName; /*!< A stream name (currently used only in Jack). */
// int priority; /*!< Scheduling priority of callback thread (only used with flag RTAUDIO_SCHEDULE_REALTIME). */
-
parameters.firstChannel = 0;
mix_rate = GLOBAL_DEF("audio/mix_rate",44100);
int latency = GLOBAL_DEF("audio/output_latency",25);
- unsigned int buffer_size = nearest_power_of_2( latency * mix_rate / 1000 );
+ // calculate desired buffer_size, taking the desired numberOfBuffers into account (latency depends on numberOfBuffers*buffer_size)
+ unsigned int buffer_size = nearest_power_of_2( latency * mix_rate / 1000 / target_number_of_buffers);
+
if (OS::get_singleton()->is_stdout_verbose()) {
print_line("audio buffer size: "+itos(buffer_size));
}
-// bool success=false;
-
- while( true) {
-
- switch(output_format) {
-
- case OUTPUT_MONO: parameters.nChannels = 1; break;
- case OUTPUT_STEREO: parameters.nChannels = 2; break;
- case OUTPUT_QUAD: parameters.nChannels = 4; break;
- case OUTPUT_5_1: parameters.nChannels = 6; break;
- };
+ short int tries = 2;
+ while(true) {
+ while( true) {
+ switch(output_format) {
+ case OUTPUT_MONO: parameters.nChannels = 1; break;
+ case OUTPUT_STEREO: parameters.nChannels = 2; break;
+ case OUTPUT_QUAD: parameters.nChannels = 4; break;
+ case OUTPUT_5_1: parameters.nChannels = 6; break;
+ };
- try {
- dac->openStream( &parameters, NULL, RTAUDIO_SINT32,
- mix_rate, &buffer_size, &callback, this,&options );
- mutex = Mutex::create(true);
- active=true;
+ try {
+ dac->openStream( &parameters, NULL, RTAUDIO_SINT32, mix_rate, &buffer_size, &callback, this,&options );
+ mutex = Mutex::create(true);
+ active=true;
+
+ break;
+ } catch ( RtAudioError& e ) {
+ // try with less channels
+ ERR_PRINT("Unable to open audio, retrying with fewer channels..");
+
+ switch(output_format) {
+ case OUTPUT_MONO: ERR_EXPLAIN("Unable to open audio."); ERR_FAIL_V( ERR_UNAVAILABLE ); break;
+ case OUTPUT_STEREO: output_format=OUTPUT_MONO; break;
+ case OUTPUT_QUAD: output_format=OUTPUT_STEREO; break;
+ case OUTPUT_5_1: output_format=OUTPUT_QUAD; break;
+ };
+ }
+ }
+ // compare actual numberOfBuffers with the desired one. If not equal, close and reopen the stream with adjusted buffer size, so the desired output_latency is still correct
+ if(target_number_of_buffers != options.numberOfBuffers) {
+ if(tries <= 0) {
+ ERR_EXPLAIN("RtAudio: Unable to set correct number of buffers.");
+ ERR_FAIL_V( ERR_UNAVAILABLE );
+ break;
+ }
+
+ try {
+ dac->closeStream();
+ } catch ( RtAudioError& e ) {
+ ERR_PRINT(e.what());
+ ERR_FAIL_V( ERR_UNAVAILABLE );
+ break;
+ }
+ if (OS::get_singleton()->is_stdout_verbose())
+ print_line("RtAudio: Desired number of buffers (" + itos(target_number_of_buffers) + ") not available. Using " + itos(options.numberOfBuffers) + " instead. Reopening stream with adjusted buffer_size.");
+
+ // new buffer size dependent on the ratio between set and actual numberOfBuffers
+ buffer_size = buffer_size / (options.numberOfBuffers / target_number_of_buffers);
+ target_number_of_buffers = options.numberOfBuffers;
+ tries--;
+ } else {
break;
- } catch ( RtAudioError& e ) {
- // try with less channels
-
- ERR_PRINT("Unable to open audio, retrying with fewer channels..");
-
- switch(output_format) {
-
- case OUTPUT_MONO: ERR_EXPLAIN("Unable to open audio."); ERR_FAIL_V( ERR_UNAVAILABLE ); break;
- case OUTPUT_STEREO: output_format=OUTPUT_MONO; break;
- case OUTPUT_QUAD: output_format=OUTPUT_STEREO; break;
- case OUTPUT_5_1: output_format=OUTPUT_QUAD; break;
- };
}
- }
+
+ }
return OK;
}
@@ -190,7 +214,6 @@ void AudioDriverRtAudio::unlock() {
void AudioDriverRtAudio::finish() {
-
if ( active && dac->isStreamOpen() )
dac->closeStream();
if (mutex)
@@ -203,6 +226,7 @@ void AudioDriverRtAudio::finish() {
AudioDriverRtAudio::AudioDriverRtAudio()
{
+
mutex=NULL;
mix_rate=44100;
output_format=OUTPUT_STEREO;
diff --git a/drivers/unix/ip_unix.cpp b/drivers/unix/ip_unix.cpp
index 0ebd593953..ffb37b4f59 100644
--- a/drivers/unix/ip_unix.cpp
+++ b/drivers/unix/ip_unix.cpp
@@ -37,19 +37,25 @@
#ifndef AI_ADDRCONFIG
#define AI_ADDRCONFIG 0x00000400
#endif
- #ifdef UWP_ENABLED
#include <ws2tcpip.h>
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
- #else
- #define WINVER 0x0600
- #include <ws2tcpip.h>
- #include <winsock2.h>
- #include <windows.h>
- #include <stdio.h>
- #include <iphlpapi.h>
- #endif
+ #ifndef UWP_ENABLED
+ #if defined(__MINGW32__ ) && (!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 4)
+ // MinGW-w64 on Ubuntu 12.04 (our Travis build env) has bugs in this code where
+ // some includes are missing in dependencies of iphlpapi.h for WINVER >= 0x0600 (Vista).
+ // We don't use this Vista code for now, so working it around by disabling it.
+ // MinGW-w64 >= 4.0 seems to be better judging by its headers.
+ #undef _WIN32_WINNT
+ #define _WIN32_WINNT 0x0501 // Windows XP, disable Vista API
+ #include <iphlpapi.h>
+ #undef _WIN32_WINNT
+ #define _WIN32_WINNT 0x0600 // Reenable Vista API
+ #else
+ #include <iphlpapi.h>
+ #endif // MINGW hack
+ #endif
#else
#include <netdb.h>
#ifdef ANDROID_ENABLED
diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp
index 1e8b76f505..283cff0486 100644
--- a/drivers/unix/os_unix.cpp
+++ b/drivers/unix/os_unix.cpp
@@ -31,10 +31,10 @@
#ifdef UNIX_ENABLED
-#include "os/memory_pool_dynamic_static.h"
#include "thread_posix.h"
#include "semaphore_posix.h"
#include "mutex_posix.h"
+#include "rw_lock_posix.h"
#include "core/os/thread_dummy.h"
//#include "core/io/file_access_buffered_fa.h"
@@ -116,7 +116,6 @@ int OS_Unix::unix_initialize_audio(int p_audio_driver) {
return 0;
}
-static MemoryPoolDynamicStatic *mempool_dynamic=NULL;
void OS_Unix::initialize_core() {
@@ -129,6 +128,7 @@ void OS_Unix::initialize_core() {
ThreadPosix::make_default();
SemaphorePosix::make_default();
MutexPosix::make_default();
+ RWLockPosix::make_default();
#endif
FileAccess::make_default<FileAccessUnix>(FileAccess::ACCESS_RESOURCES);
FileAccess::make_default<FileAccessUnix>(FileAccess::ACCESS_USERDATA);
@@ -144,7 +144,6 @@ void OS_Unix::initialize_core() {
PacketPeerUDPPosix::make_default();
IP_Unix::make_default();
#endif
- mempool_dynamic = memnew( MemoryPoolDynamicStatic );
ticks_start=0;
ticks_start=get_ticks_usec();
@@ -153,8 +152,6 @@ void OS_Unix::initialize_core() {
void OS_Unix::finalize_core() {
- if (mempool_dynamic)
- memdelete( mempool_dynamic );
}
diff --git a/drivers/unix/rw_lock_posix.cpp b/drivers/unix/rw_lock_posix.cpp
new file mode 100644
index 0000000000..b51e5fd420
--- /dev/null
+++ b/drivers/unix/rw_lock_posix.cpp
@@ -0,0 +1,77 @@
+
+#if defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)
+
+#include "os/memory.h"
+#include "rw_lock_posix.h"
+#include "error_macros.h"
+#include <stdio.h>
+
+void RWLockPosix::read_lock() {
+
+ int err =pthread_rwlock_rdlock(&rwlock);
+ if (err!=0) {
+ perror("wtf: ");
+ }
+ ERR_FAIL_COND(err!=0);
+}
+
+void RWLockPosix::read_unlock() {
+
+ pthread_rwlock_unlock(&rwlock);
+}
+
+Error RWLockPosix::read_try_lock() {
+
+ if (pthread_rwlock_tryrdlock(&rwlock)!=0) {
+ return ERR_BUSY;
+ } else {
+ return OK;
+ }
+
+}
+
+void RWLockPosix::write_lock() {
+
+ int err = pthread_rwlock_wrlock(&rwlock);
+ ERR_FAIL_COND(err!=0);
+}
+
+void RWLockPosix::write_unlock() {
+
+ pthread_rwlock_unlock(&rwlock);
+}
+
+Error RWLockPosix::write_try_lock() {
+ if (pthread_rwlock_trywrlock(&rwlock)!=0) {
+ return ERR_BUSY;
+ } else {
+ return OK;
+ }
+}
+
+
+RWLock *RWLockPosix::create_func_posix() {
+
+ return memnew( RWLockPosix );
+}
+
+void RWLockPosix::make_default() {
+
+ create_func=create_func_posix;
+}
+
+
+RWLockPosix::RWLockPosix() {
+
+ //rwlock=PTHREAD_RWLOCK_INITIALIZER; fails on OSX
+ pthread_rwlock_init(&rwlock,NULL);
+}
+
+
+RWLockPosix::~RWLockPosix() {
+
+ pthread_rwlock_destroy(&rwlock);
+
+}
+
+#endif
diff --git a/drivers/unix/rw_lock_posix.h b/drivers/unix/rw_lock_posix.h
new file mode 100644
index 0000000000..bcc102f6a6
--- /dev/null
+++ b/drivers/unix/rw_lock_posix.h
@@ -0,0 +1,37 @@
+#ifndef RWLOCKPOSIX_H
+#define RWLOCKPOSIX_H
+
+#if defined(UNIX_ENABLED) || defined(PTHREAD_ENABLED)
+
+#include <pthread.h>
+#include "os/rw_lock.h"
+
+class RWLockPosix : public RWLock {
+
+
+ pthread_rwlock_t rwlock;
+
+ static RWLock *create_func_posix();
+
+public:
+
+ virtual void read_lock();
+ virtual void read_unlock();
+ virtual Error read_try_lock();
+
+ virtual void write_lock();
+ virtual void write_unlock();
+ virtual Error write_try_lock();
+
+ static void make_default();
+
+ RWLockPosix();
+
+ ~RWLockPosix();
+
+};
+
+#endif
+
+
+#endif // RWLOCKPOSIX_H
diff --git a/drivers/windows/file_access_windows.cpp b/drivers/windows/file_access_windows.cpp
index 4060e0e83c..183cec96ec 100644
--- a/drivers/windows/file_access_windows.cpp
+++ b/drivers/windows/file_access_windows.cpp
@@ -28,8 +28,6 @@
/*************************************************************************/
#ifdef WINDOWS_ENABLED
-#define WINVER 0x0500
-
#include <windows.h>
#include "shlwapi.h"
#include "file_access_windows.h"
diff --git a/drivers/windows/rw_lock_windows.cpp b/drivers/windows/rw_lock_windows.cpp
new file mode 100644
index 0000000000..0da7bf4bd5
--- /dev/null
+++ b/drivers/windows/rw_lock_windows.cpp
@@ -0,0 +1,72 @@
+
+#if defined(WINDOWS_ENABLED)
+
+#include "os/memory.h"
+#include "rw_lock_windows.h"
+#include "error_macros.h"
+#include <stdio.h>
+
+void RWLockWindows::read_lock() {
+
+ AcquireSRWLockShared(&lock);
+
+}
+
+void RWLockWindows::read_unlock() {
+
+ ReleaseSRWLockShared(&lock);
+}
+
+Error RWLockWindows::read_try_lock() {
+
+ if (TryAcquireSRWLockShared(&lock)==0) {
+ return ERR_BUSY;
+ } else {
+ return OK;
+ }
+
+}
+
+void RWLockWindows::write_lock() {
+
+ AcquireSRWLockExclusive(&lock);
+
+}
+
+void RWLockWindows::write_unlock() {
+
+ ReleaseSRWLockExclusive(&lock);
+}
+
+Error RWLockWindows::write_try_lock() {
+ if (TryAcquireSRWLockExclusive(&lock)==0) {
+ return ERR_BUSY;
+ } else {
+ return OK;
+ }
+}
+
+
+RWLock *RWLockWindows::create_func_windows() {
+
+ return memnew( RWLockWindows );
+}
+
+void RWLockWindows::make_default() {
+
+ create_func=create_func_windows;
+}
+
+
+RWLockWindows::RWLockWindows() {
+
+ InitializeSRWLock(&lock);
+}
+
+
+RWLockWindows::~RWLockWindows() {
+
+
+}
+
+#endif
diff --git a/drivers/windows/rw_lock_windows.h b/drivers/windows/rw_lock_windows.h
new file mode 100644
index 0000000000..c089c31c33
--- /dev/null
+++ b/drivers/windows/rw_lock_windows.h
@@ -0,0 +1,37 @@
+#ifndef RWLOCKWINDOWS_H
+#define RWLOCKWINDOWS_H
+
+#if defined(WINDOWS_ENABLED)
+
+#include <windows.h>
+#include "os/rw_lock.h"
+
+class RWLockWindows : public RWLock {
+
+
+ SRWLOCK lock;
+
+ static RWLock *create_func_windows();
+
+public:
+
+ virtual void read_lock();
+ virtual void read_unlock();
+ virtual Error read_try_lock();
+
+ virtual void write_lock();
+ virtual void write_unlock();
+ virtual Error write_try_lock();
+
+ static void make_default();
+
+ RWLockWindows();
+
+ ~RWLockWindows();
+
+};
+
+#endif
+
+
+#endif // RWLOCKWINDOWS_H
diff --git a/main/SCsub b/main/SCsub
index a83563f44d..a09b7c4396 100644
--- a/main/SCsub
+++ b/main/SCsub
@@ -7,6 +7,8 @@ env.add_source_files(env.main_sources, "*.cpp")
Export('env')
+SConscript('tests/SCsub')
+
lib = env.Library("main", env.main_sources)
env.Prepend(LIBS=[lib])
diff --git a/main/input_default.cpp b/main/input_default.cpp
index df77f0a4b8..6f27bcdc5a 100644
--- a/main/input_default.cpp
+++ b/main/input_default.cpp
@@ -126,16 +126,16 @@ bool InputDefault::is_action_pressed(const StringName& p_action) const{
if(mouse_button_mask&(1<<iemb.button_index))
return true;
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
- const InputEventJoystickButton &iejb=E->get().joy_button;
+ const InputEventJoypadButton &iejb=E->get().joy_button;
int c = _combine_device(iejb.button_index,device);
if (joy_buttons_pressed.has(c))
return true;
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
- const InputEventJoystickMotion &iejm=E->get().joy_motion;
+ const InputEventJoypadMotion &iejm=E->get().joy_motion;
int c = _combine_device(iejm.axis,device);
if (_joy_axis.has(c)) {
if (iejm.axis_value < 0) {
@@ -235,7 +235,7 @@ static String _hex_str(uint8_t p_byte) {
void InputDefault::joy_connection_changed(int p_idx, bool p_connected, String p_name, String p_guid) {
_THREAD_SAFE_METHOD_
- Joystick js;
+ Joypad js;
js.name = p_connected ? p_name : "";
js.uid = p_connected ? p_guid : "";
js.mapping = -1;
@@ -356,7 +356,7 @@ void InputDefault::parse_input_event(const InputEvent& p_event) {
}
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
int c = _combine_device(p_event.joy_button.button_index,p_event.device);
@@ -365,7 +365,7 @@ void InputDefault::parse_input_event(const InputEvent& p_event) {
else
joy_buttons_pressed.erase(c);
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
set_joy_axis(p_event.device, p_event.joy_motion.axis, p_event.joy_motion.axis_value);
} break;
@@ -791,7 +791,7 @@ InputDefault::InputDefault() {
uint32_t InputDefault::joy_button(uint32_t p_last_id, int p_device, int p_button, bool p_pressed) {
_THREAD_SAFE_METHOD_;
- Joystick& joy = joy_names[p_device];
+ Joypad& joy = joy_names[p_device];
//printf("got button %i, mapping is %i\n", p_button, joy.mapping);
if (joy.last_buttons[p_button] == p_pressed) {
return p_last_id;
@@ -831,7 +831,7 @@ uint32_t InputDefault::joy_axis(uint32_t p_last_id, int p_device, int p_axis, co
_THREAD_SAFE_METHOD_;
- Joystick& joy = joy_names[p_device];
+ Joypad& joy = joy_names[p_device];
if (joy.last_axis[p_axis] == p_value.value) {
return p_last_id;
@@ -935,7 +935,7 @@ uint32_t InputDefault::joy_axis(uint32_t p_last_id, int p_device, int p_axis, co
uint32_t InputDefault::joy_hat(uint32_t p_last_id, int p_device, int p_val) {
_THREAD_SAFE_METHOD_;
- const Joystick& joy = joy_names[p_device];
+ const Joypad& joy = joy_names[p_device];
JoyEvent* map;
@@ -969,7 +969,7 @@ uint32_t InputDefault::joy_hat(uint32_t p_last_id, int p_device, int p_val) {
uint32_t InputDefault::_button_event(uint32_t p_last_id, int p_device, int p_index, bool p_pressed) {
InputEvent ievent;
- ievent.type = InputEvent::JOYSTICK_BUTTON;
+ ievent.type = InputEvent::JOYPAD_BUTTON;
ievent.device = p_device;
ievent.ID = ++p_last_id;
ievent.joy_button.button_index = p_index;
@@ -983,7 +983,7 @@ uint32_t InputDefault::_button_event(uint32_t p_last_id, int p_device, int p_ind
uint32_t InputDefault::_axis_event(uint32_t p_last_id, int p_device, int p_axis, float p_value) {
InputEvent ievent;
- ievent.type = InputEvent::JOYSTICK_MOTION;
+ ievent.type = InputEvent::JOYPAD_MOTION;
ievent.device = p_device;
ievent.ID = ++p_last_id;
ievent.joy_motion.axis = p_axis;
@@ -1148,9 +1148,9 @@ String InputDefault::get_joy_guid_remapped(int p_device) const {
return joy_names[p_device].uid;
}
-Array InputDefault::get_connected_joysticks() {
+Array InputDefault::get_connected_joypads() {
Array ret;
- Map<int, Joystick>::Element *elem = joy_names.front();
+ Map<int, Joypad>::Element *elem = joy_names.front();
while (elem) {
if (elem->get().connected) {
ret.push_back(elem->key());
diff --git a/main/input_default.h b/main/input_default.h
index eb160cbc23..33a852ab10 100644
--- a/main/input_default.h
+++ b/main/input_default.h
@@ -84,7 +84,7 @@ class InputDefault : public Input {
SpeedTrack();
};
- struct Joystick {
+ struct Joypad {
StringName name;
StringName uid;
bool connected;
@@ -95,7 +95,7 @@ class InputDefault : public Input {
int mapping;
int hat_current;
- Joystick() {
+ Joypad() {
for (int i = 0; i < JOY_AXIS_MAX; i++) {
@@ -114,7 +114,7 @@ class InputDefault : public Input {
};
SpeedTrack mouse_speed_track;
- Map<int, Joystick> joy_names;
+ Map<int, Joypad> joy_names;
int fallback_mapping;
RES custom_cursor;
public:
@@ -184,12 +184,12 @@ public:
virtual float get_joy_axis(int p_device,int p_axis) const;
String get_joy_name(int p_idx);
- virtual Array get_connected_joysticks();
+ virtual Array get_connected_joypads();
virtual Vector2 get_joy_vibration_strength(int p_device);
virtual float get_joy_vibration_duration(int p_device);
virtual uint64_t get_joy_vibration_timestamp(int p_device);
void joy_connection_changed(int p_idx, bool p_connected, String p_name, String p_guid = "");
- void parse_joystick_mapping(String p_mapping, bool p_update_existing);
+ void parse_joypad_mapping(String p_mapping, bool p_update_existing);
virtual Vector3 get_accelerometer() const;
virtual Vector3 get_magnetometer() const;
diff --git a/main/main.cpp b/main/main.cpp
index 12995f2a14..8d8aa9b5cb 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -47,7 +47,7 @@
#include "script_language.h"
#include "io/resource_loader.h"
-#include "bin/tests/test_main.h"
+#include "main/tests/test_main.h"
#include "os/dir_access.h"
#include "core/io/ip.h"
#include "scene/resources/packed_scene.h"
diff --git a/main/performance.cpp b/main/performance.cpp
index 637ff2b079..2ca73c6d4b 100644
--- a/main/performance.cpp
+++ b/main/performance.cpp
@@ -122,9 +122,9 @@ float Performance::get_monitor(Monitor p_monitor) const {
case TIME_PROCESS: return _process_time;
case TIME_FIXED_PROCESS: return _fixed_process_time;
case MEMORY_STATIC: return Memory::get_mem_usage();
- case MEMORY_DYNAMIC: return Memory::get_dynamic_mem_usage();
- case MEMORY_STATIC_MAX: return Memory::get_mem_max_usage();
- case MEMORY_DYNAMIC_MAX: return Memory::get_dynamic_mem_available();
+ case MEMORY_DYNAMIC: return MemoryPool::total_memory;
+ case MEMORY_STATIC_MAX: return MemoryPool::max_memory;
+ case MEMORY_DYNAMIC_MAX: return 0;
case MEMORY_MESSAGE_BUFFER_MAX: return MessageQueue::get_singleton()->get_max_buffer_usage();
case OBJECT_COUNT: return ObjectDB::get_object_count();
case OBJECT_RESOURCE_COUNT: return ResourceCache::get_cached_resource_count();
diff --git a/bin/tests/SCsub b/main/tests/SCsub
index 03495c0649..03495c0649 100644
--- a/bin/tests/SCsub
+++ b/main/tests/SCsub
diff --git a/bin/tests/test_containers.cpp b/main/tests/test_containers.cpp
index 4bc297d0ba..4bc297d0ba 100644
--- a/bin/tests/test_containers.cpp
+++ b/main/tests/test_containers.cpp
diff --git a/bin/tests/test_containers.h b/main/tests/test_containers.h
index 72d5c0ff7a..72d5c0ff7a 100644
--- a/bin/tests/test_containers.h
+++ b/main/tests/test_containers.h
diff --git a/bin/tests/test_gdscript.cpp b/main/tests/test_gdscript.cpp
index 1ee27ec661..1ee27ec661 100644
--- a/bin/tests/test_gdscript.cpp
+++ b/main/tests/test_gdscript.cpp
diff --git a/bin/tests/test_gdscript.h b/main/tests/test_gdscript.h
index 225654e2a8..225654e2a8 100644
--- a/bin/tests/test_gdscript.h
+++ b/main/tests/test_gdscript.h
diff --git a/bin/tests/test_gui.cpp b/main/tests/test_gui.cpp
index bfce03d663..bfce03d663 100644
--- a/bin/tests/test_gui.cpp
+++ b/main/tests/test_gui.cpp
diff --git a/bin/tests/test_gui.h b/main/tests/test_gui.h
index 5526320b0c..5526320b0c 100644
--- a/bin/tests/test_gui.h
+++ b/main/tests/test_gui.h
diff --git a/bin/tests/test_image.cpp b/main/tests/test_image.cpp
index bf9851cf01..bf9851cf01 100644
--- a/bin/tests/test_image.cpp
+++ b/main/tests/test_image.cpp
diff --git a/bin/tests/test_image.h b/main/tests/test_image.h
index 09b33e799e..09b33e799e 100644
--- a/bin/tests/test_image.h
+++ b/main/tests/test_image.h
diff --git a/bin/tests/test_io.cpp b/main/tests/test_io.cpp
index 42664e73cd..42664e73cd 100644
--- a/bin/tests/test_io.cpp
+++ b/main/tests/test_io.cpp
diff --git a/bin/tests/test_io.h b/main/tests/test_io.h
index c839590ab9..c839590ab9 100644
--- a/bin/tests/test_io.h
+++ b/main/tests/test_io.h
diff --git a/bin/tests/test_main.cpp b/main/tests/test_main.cpp
index 1f7f2d7dda..1f7f2d7dda 100644
--- a/bin/tests/test_main.cpp
+++ b/main/tests/test_main.cpp
diff --git a/bin/tests/test_main.h b/main/tests/test_main.h
index c8d571a7dd..c8d571a7dd 100644
--- a/bin/tests/test_main.h
+++ b/main/tests/test_main.h
diff --git a/bin/tests/test_math.cpp b/main/tests/test_math.cpp
index e3e74af14c..b3b70986c9 100644
--- a/bin/tests/test_math.cpp
+++ b/main/tests/test_math.cpp
@@ -477,17 +477,34 @@ uint32_t ihash3( uint32_t a)
MainLoop* test() {
- Matrix3 m;
- m.rotate(Vector3(0,1,0),Math_PI*0.5);
- print_line(m.scaled(Vector3(0.5,1,1)));
- Matrix3 s;
- s.scale(Vector3(0.5,1.0,1.0));
+ print_line("Dvectors: "+itos(MemoryPool::allocs_used));
+ print_line("Mem used: "+itos(MemoryPool::total_memory));
+ print_line("MAx mem used: "+itos(MemoryPool::max_memory));
- print_line(m * s);
+ PoolVector<int> ints;
+ ints.resize(20);
+ {
+ PoolVector<int>::Write w;
+ w = ints.write();
+ for(int i=0;i<ints.size();i++) {
+ w[i]=i;
+ }
+ }
+
+ PoolVector<int> posho = ints;
+ {
+ PoolVector<int>::Read r = posho.read();
+ for(int i=0;i<posho.size();i++) {
+ print_line(itos(i)+" : " +itos(r[i]));
+ }
+ }
+ print_line("later Dvectors: "+itos(MemoryPool::allocs_used));
+ print_line("later Mem used: "+itos(MemoryPool::total_memory));
+ print_line("Mlater Ax mem used: "+itos(MemoryPool::max_memory));
return NULL;
@@ -718,8 +735,8 @@ MainLoop* test() {
print_line(String("res://..").simplify_path());
- DVector<uint8_t> a;
- DVector<uint8_t> b;
+ PoolVector<uint8_t> a;
+ PoolVector<uint8_t> b;
a.resize(20);
b=a;
diff --git a/bin/tests/test_math.h b/main/tests/test_math.h
index 492c3a1837..492c3a1837 100644
--- a/bin/tests/test_math.h
+++ b/main/tests/test_math.h
diff --git a/bin/tests/test_physics.cpp b/main/tests/test_physics.cpp
index 8a270f721f..b1a7af8dad 100644
--- a/bin/tests/test_physics.cpp
+++ b/main/tests/test_physics.cpp
@@ -146,7 +146,7 @@ protected:
/* BOX SHAPE */
- DVector<Plane> box_planes = Geometry::build_box_planes(Vector3(0.5,0.5,0.5));
+ PoolVector<Plane> box_planes = Geometry::build_box_planes(Vector3(0.5,0.5,0.5));
RID box_mesh = vs->mesh_create();
Geometry::MeshData box_data = Geometry::build_convex_mesh(box_planes);
vs->mesh_add_surface_from_mesh_data(box_mesh,box_data);
@@ -159,7 +159,7 @@ protected:
/* CAPSULE SHAPE */
- DVector<Plane> capsule_planes = Geometry::build_capsule_planes(0.5,0.7,12,Vector3::AXIS_Z);
+ PoolVector<Plane> capsule_planes = Geometry::build_capsule_planes(0.5,0.7,12,Vector3::AXIS_Z);
RID capsule_mesh = vs->mesh_create();
Geometry::MeshData capsule_data = Geometry::build_convex_mesh(capsule_planes);
@@ -176,7 +176,7 @@ protected:
/* CONVEX SHAPE */
- DVector<Plane> convex_planes = Geometry::build_cylinder_planes(0.5,0.7,5,Vector3::AXIS_Z);
+ PoolVector<Plane> convex_planes = Geometry::build_cylinder_planes(0.5,0.7,5,Vector3::AXIS_Z);
RID convex_mesh = vs->mesh_create();
Geometry::MeshData convex_data = Geometry::build_convex_mesh(convex_planes);
@@ -301,7 +301,7 @@ public:
}
- if (p_event.type == InputEvent::JOYSTICK_MOTION) {
+ if (p_event.type == InputEvent::JOYPAD_MOTION) {
if (p_event.joy_motion.axis == 0) {
@@ -534,7 +534,7 @@ public:
PhysicsServer * ps = PhysicsServer::get_singleton();
- DVector<Plane> capsule_planes = Geometry::build_capsule_planes(0.5,1,12,5,Vector3::AXIS_Y);
+ PoolVector<Plane> capsule_planes = Geometry::build_capsule_planes(0.5,1,12,5,Vector3::AXIS_Y);
RID capsule_mesh = vs->mesh_create();
Geometry::MeshData capsule_data = Geometry::build_convex_mesh(capsule_planes);
diff --git a/bin/tests/test_physics.h b/main/tests/test_physics.h
index 5b6a54f2d4..5b6a54f2d4 100644
--- a/bin/tests/test_physics.h
+++ b/main/tests/test_physics.h
diff --git a/bin/tests/test_physics_2d.cpp b/main/tests/test_physics_2d.cpp
index 93d707b26a..39b4e7edda 100644
--- a/bin/tests/test_physics_2d.cpp
+++ b/main/tests/test_physics_2d.cpp
@@ -74,7 +74,7 @@ class TestPhysics2DMainLoop : public MainLoop {
{
- DVector<uint8_t> pixels;
+ PoolVector<uint8_t> pixels;
pixels.resize(32*2*2);
for(int i=0;i<2;i++) {
@@ -100,7 +100,7 @@ class TestPhysics2DMainLoop : public MainLoop {
{
- DVector<uint8_t> pixels;
+ PoolVector<uint8_t> pixels;
pixels.resize(32*32*2);
for(int i=0;i<32;i++) {
@@ -128,7 +128,7 @@ class TestPhysics2DMainLoop : public MainLoop {
{
- DVector<uint8_t> pixels;
+ PoolVector<uint8_t> pixels;
pixels.resize(32*32*2);
for(int i=0;i<32;i++) {
@@ -157,7 +157,7 @@ class TestPhysics2DMainLoop : public MainLoop {
{
- DVector<uint8_t> pixels;
+ PoolVector<uint8_t> pixels;
pixels.resize(32*64*2);
for(int i=0;i<64;i++) {
@@ -195,7 +195,7 @@ class TestPhysics2DMainLoop : public MainLoop {
RID convex_polygon_shape = ps->shape_create(Physics2DServer::SHAPE_CONVEX_POLYGON);
- DVector<Vector2> arr;
+ PoolVector<Vector2> arr;
Point2 sb(32,32);
arr.push_back(Point2(20,3)-sb);
arr.push_back(Point2(58,23)-sb);
diff --git a/bin/tests/test_physics_2d.h b/main/tests/test_physics_2d.h
index e2eb1f4023..e2eb1f4023 100644
--- a/bin/tests/test_physics_2d.h
+++ b/main/tests/test_physics_2d.h
diff --git a/bin/tests/test_render.cpp b/main/tests/test_render.cpp
index b971d412aa..51e1366073 100644
--- a/bin/tests/test_render.cpp
+++ b/main/tests/test_render.cpp
@@ -87,7 +87,7 @@ public:
Vector<Vector3> vts;
/*
- DVector<Plane> sp = Geometry::build_sphere_planes(2,5,5);
+ PoolVector<Plane> sp = Geometry::build_sphere_planes(2,5,5);
Geometry::MeshData md2 = Geometry::build_convex_mesh(sp);
vts=md2.vertices;
*/
diff --git a/bin/tests/test_render.h b/main/tests/test_render.h
index 6993e75b9f..6993e75b9f 100644
--- a/bin/tests/test_render.h
+++ b/main/tests/test_render.h
diff --git a/bin/tests/test_shader_lang.cpp b/main/tests/test_shader_lang.cpp
index 1a677bcbe2..1a677bcbe2 100644
--- a/bin/tests/test_shader_lang.cpp
+++ b/main/tests/test_shader_lang.cpp
diff --git a/bin/tests/test_shader_lang.h b/main/tests/test_shader_lang.h
index f129fb224a..f129fb224a 100644
--- a/bin/tests/test_shader_lang.h
+++ b/main/tests/test_shader_lang.h
diff --git a/bin/tests/test_sound.cpp b/main/tests/test_sound.cpp
index 44cc117e02..44cc117e02 100644
--- a/bin/tests/test_sound.cpp
+++ b/main/tests/test_sound.cpp
diff --git a/bin/tests/test_sound.h b/main/tests/test_sound.h
index 91b87a2261..91b87a2261 100644
--- a/bin/tests/test_sound.h
+++ b/main/tests/test_sound.h
diff --git a/bin/tests/test_string.cpp b/main/tests/test_string.cpp
index d99ad4476f..d99ad4476f 100644
--- a/bin/tests/test_string.cpp
+++ b/main/tests/test_string.cpp
diff --git a/bin/tests/test_string.h b/main/tests/test_string.h
index 7b3cd9a019..7b3cd9a019 100644
--- a/bin/tests/test_string.h
+++ b/main/tests/test_string.h
diff --git a/modules/chibi/event_stream_chibi.cpp b/modules/chibi/event_stream_chibi.cpp
index 0b680b4fda..73d1c01e33 100644
--- a/modules/chibi/event_stream_chibi.cpp
+++ b/modules/chibi/event_stream_chibi.cpp
@@ -298,9 +298,9 @@ void CPSampleManagerImpl::unlock_data(CPSample_ID p_id){
sd->locks--;
if (sd->locks==0) {
- sd->w=DVector<uint8_t>::Write();
+ sd->w=PoolVector<uint8_t>::Write();
AudioServer::get_singleton()->sample_set_data(sd->rid,sd->lock);
- sd->lock=DVector<uint8_t>();
+ sd->lock=PoolVector<uint8_t>();
}
}
diff --git a/modules/chibi/event_stream_chibi.h b/modules/chibi/event_stream_chibi.h
index 9c6c883f61..0244ee0a95 100644
--- a/modules/chibi/event_stream_chibi.h
+++ b/modules/chibi/event_stream_chibi.h
@@ -54,8 +54,8 @@ class CPSampleManagerImpl : public CPSampleManager {
int loop_begin;
int loop_end;
int locks;
- DVector<uint8_t> lock;
- DVector<uint8_t>::Write w;
+ PoolVector<uint8_t> lock;
+ PoolVector<uint8_t>::Write w;
CPSample_Loop_Type loop_type;
};
diff --git a/modules/cscript/godot_c.h b/modules/cscript/godot_c.h
index b0465d8524..3bf86d1aeb 100644
--- a/modules/cscript/godot_c.h
+++ b/modules/cscript/godot_c.h
@@ -123,8 +123,8 @@ void GDAPI godot_array_free(godot_array p_array);
#define INPUT_EVENT_TYPE_KEY 1
#define INPUT_EVENT_TYPE_MOUSE_MOTION 2
#define INPUT_EVENT_TYPE_MOUSE_BUTTON 3
-#define INPUT_EVENT_TYPE_JOYSTICK_MOTION 4
-#define INPUT_EVENT_TYPE_JOYSTICK_BUTTON 5
+#define INPUT_EVENT_TYPE_JOYPAD_MOTION 4
+#define INPUT_EVENT_TYPE_JOYPAD_BUTTON 5
#define INPUT_EVENT_TYPE_SCREEN_TOUCH 6
#define INPUT_EVENT_TYPE_SCREEN_DRAG 7
#define INPUT_EVENT_TYPE_ACTION 8
@@ -166,12 +166,12 @@ int GDAPI godot_input_event_mouse_motion_get_relative_y(godot_input_event p_even
int GDAPI godot_input_event_mouse_motion_get_speed_x(godot_input_event p_event);
int GDAPI godot_input_event_mouse_motion_get_speed_y(godot_input_event p_event);
-int GDAPI godot_input_event_joystick_motion_get_axis(godot_input_event p_event);
-float GDAPI godot_input_event_joystick_motion_get_axis_value(godot_input_event p_event);
+int GDAPI godot_input_event_joypad_motion_get_axis(godot_input_event p_event);
+float GDAPI godot_input_event_joypad_motion_get_axis_value(godot_input_event p_event);
-int GDAPI godot_input_event_joystick_button_get_button_index(godot_input_event p_event);
-godot_bool GDAPI godot_input_event_joystick_button_is_pressed(godot_input_event p_event);
-float GDAPI godot_input_event_joystick_button_get_pressure(godot_input_event p_event);
+int GDAPI godot_input_event_joypad_button_get_button_index(godot_input_event p_event);
+godot_bool GDAPI godot_input_event_joypad_button_is_pressed(godot_input_event p_event);
+float GDAPI godot_input_event_joypad_button_get_pressure(godot_input_event p_event);
int GDAPI godot_input_event_screen_touch_get_index(godot_input_event p_event);
diff --git a/modules/dds/texture_loader_dds.cpp b/modules/dds/texture_loader_dds.cpp
index 598b2aab0e..1de98a6b1f 100644
--- a/modules/dds/texture_loader_dds.cpp
+++ b/modules/dds/texture_loader_dds.cpp
@@ -223,7 +223,7 @@ RES ResourceFormatDDS::load(const String &p_path, const String& p_original_path,
// print_line("found format: "+String(dds_format_info[dds_format].name));
- DVector<uint8_t> src_data;
+ PoolVector<uint8_t> src_data;
const DDSFormatInfo &info=dds_format_info[dds_format];
uint32_t w = width;
@@ -247,9 +247,9 @@ RES ResourceFormatDDS::load(const String &p_path, const String& p_original_path,
}
src_data.resize(size);
- DVector<uint8_t>::Write wb = src_data.write();
+ PoolVector<uint8_t>::Write wb = src_data.write();
f->get_buffer(wb.ptr(),size);
- wb=DVector<uint8_t>::Write();
+ wb=PoolVector<uint8_t>::Write();
} else if (info.palette) {
@@ -281,7 +281,7 @@ RES ResourceFormatDDS::load(const String &p_path, const String& p_original_path,
}
src_data.resize(size + 256*colsize );
- DVector<uint8_t>::Write wb = src_data.write();
+ PoolVector<uint8_t>::Write wb = src_data.write();
f->get_buffer(wb.ptr(),size);
for(int i=0;i<256;i++) {
@@ -296,7 +296,7 @@ RES ResourceFormatDDS::load(const String &p_path, const String& p_original_path,
}
- wb=DVector<uint8_t>::Write();
+ wb=PoolVector<uint8_t>::Write();
} else {
//uncompressed generic...
@@ -316,7 +316,7 @@ RES ResourceFormatDDS::load(const String &p_path, const String& p_original_path,
size=size*2;
src_data.resize(size);
- DVector<uint8_t>::Write wb = src_data.write();
+ PoolVector<uint8_t>::Write wb = src_data.write();
f->get_buffer(wb.ptr(),size);
@@ -449,7 +449,7 @@ RES ResourceFormatDDS::load(const String &p_path, const String& p_original_path,
}
- wb=DVector<uint8_t>::Write();
+ wb=PoolVector<uint8_t>::Write();
}
diff --git a/modules/etc1/image_etc.cpp b/modules/etc1/image_etc.cpp
index 4bbdc0a60a..845084fef7 100644
--- a/modules/etc1/image_etc.cpp
+++ b/modules/etc1/image_etc.cpp
@@ -37,10 +37,10 @@ static void _decompress_etc(Image *p_img) {
int imgw = p_img->get_width();
int imgh = p_img->get_height();
- DVector<uint8_t> src=p_img->get_data();
- DVector<uint8_t> dst;
+ PoolVector<uint8_t> src=p_img->get_data();
+ PoolVector<uint8_t> dst;
- DVector<uint8_t>::Read r = src.read();
+ PoolVector<uint8_t>::Read r = src.read();
int mmc=p_img->get_mipmap_count();
@@ -49,7 +49,7 @@ static void _decompress_etc(Image *p_img) {
dst.resize(dst.size()+imgw*imgh*3);
const uint8_t *srcbr=&r[p_img->get_mipmap_offset(i)];
- DVector<uint8_t>::Write w = dst.write();
+ PoolVector<uint8_t>::Write w = dst.write();
uint8_t *wptr = &w[dst.size()-imgw*imgh*3];
@@ -91,7 +91,7 @@ static void _decompress_etc(Image *p_img) {
}
- r=DVector<uint8_t>::Read();
+ r=PoolVector<uint8_t>::Read();
//print_line("Re Creating ETC into regular image: w "+itos(p_img->get_width())+" h "+itos(p_img->get_height())+" mm "+itos(p_img->get_mipmaps()));
*p_img=Image(p_img->get_width(),p_img->get_height(),p_img->has_mipmaps(),Image::FORMAT_RGB8,dst);
if (p_img->has_mipmaps())
@@ -117,9 +117,9 @@ static void _compress_etc(Image *p_img) {
img.generate_mipmaps(); // force mipmaps, so it works on most hardware
- DVector<uint8_t> res_data;
- DVector<uint8_t> dst_data;
- DVector<uint8_t>::Read r = img.get_data().read();
+ PoolVector<uint8_t> res_data;
+ PoolVector<uint8_t> dst_data;
+ PoolVector<uint8_t>::Read r = img.get_data().read();
int mc=0;
@@ -134,7 +134,7 @@ static void _compress_etc(Image *p_img) {
const uint8_t *src = &r[img.get_mipmap_offset(i)];
int mmsize = MAX(bw,1)*MAX(bh,1)*8;
dst_data.resize(dst_data.size()+mmsize);
- DVector<uint8_t>::Write w=dst_data.write();
+ PoolVector<uint8_t>::Write w=dst_data.write();
uint8_t *dst = &w[dst_data.size()-mmsize];
diff --git a/modules/etc1/texture_loader_pkm.cpp b/modules/etc1/texture_loader_pkm.cpp
index f8af141979..42c9937b8f 100644
--- a/modules/etc1/texture_loader_pkm.cpp
+++ b/modules/etc1/texture_loader_pkm.cpp
@@ -43,13 +43,13 @@ RES ResourceFormatPKM::load(const String &p_path, const String& p_original_path,
h.origWidth = f->get_16();
h.origHeight = f->get_16();
- DVector<uint8_t> src_data;
+ PoolVector<uint8_t> src_data;
uint32_t size = h.texWidth * h.texHeight / 2;
src_data.resize(size);
- DVector<uint8_t>::Write wb = src_data.write();
+ PoolVector<uint8_t>::Write wb = src_data.write();
f->get_buffer(wb.ptr(),size);
- wb=DVector<uint8_t>::Write();
+ wb=PoolVector<uint8_t>::Write();
int mipmaps = h.format;
int width = h.origWidth;
diff --git a/modules/gdscript/gd_editor.cpp b/modules/gdscript/gd_editor.cpp
index fbd81a61bf..d3c3dac1fd 100644
--- a/modules/gdscript/gd_editor.cpp
+++ b/modules/gdscript/gd_editor.cpp
@@ -2155,6 +2155,27 @@ Error GDScriptLanguage::complete_code(const String& p_code, const String& p_base
case GDParser::COMPLETION_PARENT_FUNCTION: {
} break;
+ case GDParser::COMPLETION_GET_NODE: {
+
+ if (p_owner) {
+ List<String> opts;
+ p_owner->get_argument_options("get_node",0,&opts);
+
+ for (List<String>::Element *E=opts.front();E;E=E->next()) {
+
+ String opt = E->get().strip_edges();
+ if (opt.begins_with("\"") && opt.ends_with("\"")) {
+ String idopt=opt.substr(1,opt.length()-2);
+ if (idopt.replace("/","_").is_valid_identifier()) {
+ options.insert(idopt);
+ } else {
+ options.insert(opt);
+ }
+ }
+ }
+
+ }
+ } break;
case GDParser::COMPLETION_METHOD:
isfunction=true;
case GDParser::COMPLETION_INDEX: {
@@ -2370,8 +2391,8 @@ Error GDScriptLanguage::complete_code(const String& p_code, const String& p_base
"# Key",
"# MouseMotion",
"# MouseButton",
- "# JoystickMotion",
- "# JoystickButton",
+ "# JoypadMotion",
+ "# JoypadButton",
"# ScreenTouch",
"# ScreenDrag",
"# Action"
diff --git a/modules/gdscript/gd_functions.cpp b/modules/gdscript/gd_functions.cpp
index 74b804b206..64578e5f5c 100644
--- a/modules/gdscript/gd_functions.cpp
+++ b/modules/gdscript/gd_functions.cpp
@@ -35,6 +35,7 @@
#include "os/os.h"
#include "variant_parser.h"
#include "io/marshalls.h"
+#include "io/json.h"
const char *GDFunctions::get_func_name(Function p_func) {
@@ -103,6 +104,9 @@ const char *GDFunctions::get_func_name(Function p_func) {
"load",
"inst2dict",
"dict2inst",
+ "validate_json",
+ "parse_json",
+ "to_json",
"hash",
"Color8",
"print_stack",
@@ -846,6 +850,7 @@ void GDFunctions::call(Function p_func,const Variant **p_args,int p_arg_count,Va
if (p_args[0]->get_type()!=Variant::STRING) {
r_error.error=Variant::CallError::CALL_ERROR_INVALID_ARGUMENT;
r_error.argument=0;
+ r_error.expected=Variant::STRING;
r_ret=Variant();
} else {
r_ret=ResourceLoader::load(*p_args[0]);
@@ -1024,6 +1029,57 @@ void GDFunctions::call(Function p_func,const Variant **p_args,int p_arg_count,Va
}
} break;
+ case VALIDATE_JSON: {
+
+ VALIDATE_ARG_COUNT(1);
+
+ if (p_args[0]->get_type()!=Variant::STRING) {
+ r_error.error=Variant::CallError::CALL_ERROR_INVALID_ARGUMENT;
+ r_error.argument=0;
+ r_error.expected=Variant::STRING;
+ r_ret=Variant();
+ return;
+ }
+
+ String errs;
+ int errl;
+
+ Error err = JSON::parse(*p_args[0],r_ret,errs,errl);
+
+ if (err!=OK) {
+ r_ret=itos(errl)+":"+errs;
+ } else {
+ r_ret="";
+ }
+
+ } break;
+ case PARSE_JSON: {
+
+ VALIDATE_ARG_COUNT(1);
+
+ if (p_args[0]->get_type()!=Variant::STRING) {
+ r_error.error=Variant::CallError::CALL_ERROR_INVALID_ARGUMENT;
+ r_error.argument=0;
+ r_error.expected=Variant::STRING;
+ r_ret=Variant();
+ return;
+ }
+
+ String errs;
+ int errl;
+
+ Error err = JSON::parse(*p_args[0],r_ret,errs,errl);
+
+ if (err!=OK) {
+ r_ret=Variant();
+ }
+
+ } break;
+ case TO_JSON: {
+ VALIDATE_ARG_COUNT(1);
+
+ r_ret = JSON::print(*p_args[0]);
+ } break;
case HASH: {
VALIDATE_ARG_COUNT(1);
@@ -1510,6 +1566,24 @@ MethodInfo GDFunctions::get_info(Function p_func) {
mi.return_val.type=Variant::OBJECT;
return mi;
} break;
+ case VALIDATE_JSON: {
+
+ MethodInfo mi("validate_json:Variant",PropertyInfo(Variant::STRING,"json"));
+ mi.return_val.type=Variant::STRING;
+ return mi;
+ } break;
+ case PARSE_JSON: {
+
+ MethodInfo mi("parse_json:Variant",PropertyInfo(Variant::STRING,"json"));
+ mi.return_val.type=Variant::NIL;
+ return mi;
+ } break;
+ case TO_JSON: {
+
+ MethodInfo mi("to_json",PropertyInfo(Variant::NIL,"var:Variant"));
+ mi.return_val.type=Variant::STRING;
+ return mi;
+ } break;
case HASH: {
MethodInfo mi("hash",PropertyInfo(Variant::NIL,"var:Variant"));
diff --git a/modules/gdscript/gd_functions.h b/modules/gdscript/gd_functions.h
index fb04527060..ab708e3ebe 100644
--- a/modules/gdscript/gd_functions.h
+++ b/modules/gdscript/gd_functions.h
@@ -97,6 +97,9 @@ public:
RESOURCE_LOAD,
INST2DICT,
DICT2INST,
+ VALIDATE_JSON,
+ PARSE_JSON,
+ TO_JSON,
HASH,
COLOR8,
PRINT_STACK,
diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp
index bc9d3fa4f4..ede6e63806 100644
--- a/modules/gdscript/gd_parser.cpp
+++ b/modules/gdscript/gd_parser.cpp
@@ -265,6 +265,98 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
tokenizer->advance();
expr=subexpr;
+ } else if (tokenizer->get_token()==GDTokenizer::TK_DOLLAR) {
+ tokenizer->advance();
+
+ String path;
+
+ bool need_identifier=true;
+ bool done=false;
+
+ while(!done) {
+
+ switch(tokenizer->get_token()) {
+ case GDTokenizer::TK_CURSOR: {
+ completion_cursor=StringName();
+ completion_type=COMPLETION_GET_NODE;
+ completion_class=current_class;
+ completion_function=current_function;
+ completion_line=tokenizer->get_token_line();
+ completion_cursor=path;
+ completion_argument=0;
+ completion_block=current_block;
+ completion_found=true;
+ tokenizer->advance();
+ } break;
+ case GDTokenizer::TK_CONSTANT: {
+
+ if (!need_identifier) {
+ done=true;
+ break;
+ }
+
+ if (tokenizer->get_token_constant().get_type()!=Variant::STRING) {
+ _set_error("Expected string constant or identifier after '$' or '/'.");
+ return NULL;
+ }
+
+ path+=String(tokenizer->get_token_constant());
+ tokenizer->advance();
+ need_identifier=false;
+
+ } break;
+ case GDTokenizer::TK_IDENTIFIER: {
+ if (!need_identifier) {
+ done=true;
+ break;
+ }
+
+ path+=String(tokenizer->get_token_identifier());
+ tokenizer->advance();
+ need_identifier=false;
+
+ } break;
+ case GDTokenizer::TK_OP_DIV: {
+
+ if (need_identifier) {
+ done=true;
+ break;
+ }
+
+ path+="/";
+ tokenizer->advance();
+ need_identifier=true;
+
+ } break;
+ default: {
+ done=true;
+ break;
+ }
+ }
+ }
+
+ if (path=="") {
+ _set_error("Path expected after $.");
+ return NULL;
+
+ }
+
+ OperatorNode *op = alloc_node<OperatorNode>();
+ op->op=OperatorNode::OP_CALL;
+
+ op->arguments.push_back(alloc_node<SelfNode>());
+
+ IdentifierNode *funcname = alloc_node<IdentifierNode>();
+ funcname->name="get_node";
+
+ op->arguments.push_back(funcname);
+
+ ConstantNode *nodepath = alloc_node<ConstantNode>();
+ nodepath->value = NodePath(StringName(path));
+ op->arguments.push_back(nodepath);
+
+ expr=op;
+
} else if (tokenizer->get_token()==GDTokenizer::TK_CURSOR) {
tokenizer->advance();
continue; //no point in cursor in the middle of expression
diff --git a/modules/gdscript/gd_parser.h b/modules/gdscript/gd_parser.h
index 1b4a37f67e..e8f5f0f981 100644
--- a/modules/gdscript/gd_parser.h
+++ b/modules/gdscript/gd_parser.h
@@ -376,6 +376,7 @@ public:
enum CompletionType {
COMPLETION_NONE,
COMPLETION_BUILT_IN_TYPE_CONSTANT,
+ COMPLETION_GET_NODE,
COMPLETION_FUNCTION,
COMPLETION_IDENTIFIER,
COMPLETION_PARENT_FUNCTION,
diff --git a/modules/gdscript/gd_script.cpp b/modules/gdscript/gd_script.cpp
index b205a0a890..5fe97335f0 100644
--- a/modules/gdscript/gd_script.cpp
+++ b/modules/gdscript/gd_script.cpp
@@ -830,7 +830,7 @@ Error GDScript::load_byte_code(const String& p_path) {
Error GDScript::load_source_code(const String& p_path) {
- DVector<uint8_t> sourcef;
+ PoolVector<uint8_t> sourcef;
Error err;
FileAccess *f=FileAccess::open(p_path,FileAccess::READ,&err);
if (err) {
@@ -840,7 +840,7 @@ Error GDScript::load_source_code(const String& p_path) {
int len = f->get_len();
sourcef.resize(len+1);
- DVector<uint8_t>::Write w = sourcef.write();
+ PoolVector<uint8_t>::Write w = sourcef.write();
int r = f->get_buffer(w.ptr(),len);
f->close();
memdelete(f);
diff --git a/modules/gdscript/gd_tokenizer.cpp b/modules/gdscript/gd_tokenizer.cpp
index 427b0cbf04..2b306a92fc 100644
--- a/modules/gdscript/gd_tokenizer.cpp
+++ b/modules/gdscript/gd_tokenizer.cpp
@@ -460,6 +460,9 @@ void GDTokenizerText::_advance() {
case ':':
_make_token(TK_COLON); //for methods maybe but now useless.
break;
+ case '$':
+ _make_token(TK_DOLLAR); //for the get_node() shortener
+ break;
case '^': {
if (GETCHAR(1)=='=') {
_make_token(TK_OP_ASSIGN_BIT_XOR);
@@ -728,14 +731,14 @@ void GDTokenizerText::_advance() {
INCPOS(str.length());
if (hexa_found) {
- int val = str.hex_to_int();
+ int64_t val = str.hex_to_int64();
_make_constant(val);
} else if (period_found || exponent_found) {
- real_t val = str.to_double();
+ double val = str.to_double();
//print_line("*%*%*%*% to convert: "+str+" result: "+rtos(val));
_make_constant(val);
} else {
- int val = str.to_int();
+ int64_t val = str.to_int64();
_make_constant(val);
}
@@ -1057,7 +1060,7 @@ void GDTokenizerText::advance(int p_amount) {
//////////////////////////////////////////////////////////////////////////////////////////////////////
-#define BYTECODE_VERSION 11
+#define BYTECODE_VERSION 12
Error GDTokenizerBuffer::set_code_buffer(const Vector<uint8_t> & p_buffer) {
diff --git a/modules/gdscript/gd_tokenizer.h b/modules/gdscript/gd_tokenizer.h
index 38b677ca7a..18e5547d36 100644
--- a/modules/gdscript/gd_tokenizer.h
+++ b/modules/gdscript/gd_tokenizer.h
@@ -123,6 +123,7 @@ public:
TK_PERIOD,
TK_QUESTION_MARK,
TK_COLON,
+ TK_DOLLAR,
TK_NEWLINE,
TK_CONST_PI,
TK_ERROR,
diff --git a/modules/gridmap/grid_map.cpp b/modules/gridmap/grid_map.cpp
index 84d8250033..b934e7ab1b 100644
--- a/modules/gridmap/grid_map.cpp
+++ b/modules/gridmap/grid_map.cpp
@@ -61,9 +61,9 @@ bool GridMap::_set(const StringName& p_name, const Variant& p_value) {
} else if (name=="theme/bake") {
set_bake(p_value);
/* } else if (name=="cells") {
- DVector<int> cells = p_value;
+ PoolVector<int> cells = p_value;
int amount=cells.size();
- DVector<int>::Read r = cells.read();
+ PoolVector<int>::Read r = cells.read();
ERR_FAIL_COND_V(amount&1,false); // not even
cell_map.clear();;
for(int i=0;i<amount/3;i++) {
@@ -86,9 +86,9 @@ bool GridMap::_set(const StringName& p_name, const Variant& p_value) {
baked=d["baked"];
if (d.has("cells")) {
- DVector<int> cells = d["cells"];
+ PoolVector<int> cells = d["cells"];
int amount=cells.size();
- DVector<int>::Read r = cells.read();
+ PoolVector<int>::Read r = cells.read();
ERR_FAIL_COND_V(amount%3,false); // not even
cell_map.clear();;
for(int i=0;i<amount/3;i++) {
@@ -183,10 +183,10 @@ bool GridMap::_get(const StringName& p_name,Variant &r_ret) const {
Dictionary d;
- DVector<int> cells;
+ PoolVector<int> cells;
cells.resize(cell_map.size()*3);
{
- DVector<int>::Write w = cells.write();
+ PoolVector<int>::Write w = cells.write();
int i=0;
for (Map<IndexKey,Cell>::Element *E=cell_map.front();E;E=E->next(),i++) {
@@ -665,7 +665,7 @@ void GridMap::_octant_update(const OctantKey &p_key) {
VS::get_singleton()->mesh_clear(g.collision_debug);
}
- DVector<Vector3> col_debug;
+ PoolVector<Vector3> col_debug;
/*
* foreach item in this octant,
@@ -863,15 +863,15 @@ void GridMap::_octant_bake(const OctantKey &p_key, const Ref<TriangleMesh>& p_tm
if (ii.mesh->surface_get_primitive_type(i)!=Mesh::PRIMITIVE_TRIANGLES)
continue;
Array a = ii.mesh->surface_get_arrays(i);
- DVector<Vector3> av=a[VS::ARRAY_VERTEX];
+ PoolVector<Vector3> av=a[VS::ARRAY_VERTEX];
int avs = av.size();
- DVector<Vector3>::Read vr = av.read();
+ PoolVector<Vector3>::Read vr = av.read();
- DVector<int> ai=a[VS::ARRAY_INDEX];
+ PoolVector<int> ai=a[VS::ARRAY_INDEX];
int ais=ai.size();
if (ais) {
- DVector<int>::Read ir=ai.read();
+ PoolVector<int>::Read ir=ai.read();
for(int j=0;j<ais;j++) {
p_prebake->push_back(xform.xform(vr[ir[j]]));
@@ -1667,7 +1667,7 @@ void GridMap::bake_geometry() {
}
- DVector<Vector3> vv;
+ PoolVector<Vector3> vv;
vv.fill_with(vertices);
//print_line("TOTAL VERTICES: "+itos(vv.size()));
tmesh = Ref<TriangleMesh>( memnew( TriangleMesh ));
diff --git a/modules/gridmap/grid_map_editor_plugin.cpp b/modules/gridmap/grid_map_editor_plugin.cpp
index 08f2c4fbbc..d8409af634 100644
--- a/modules/gridmap/grid_map_editor_plugin.cpp
+++ b/modules/gridmap/grid_map_editor_plugin.cpp
@@ -1126,7 +1126,7 @@ void GridMapEditor::_update_areas_display() {
RID mesh = VisualServer::get_singleton()->mesh_create();
- DVector<Plane> planes;
+ PoolVector<Plane> planes;
for(int i=0;i<3;i++) {
Vector3 axis;
@@ -1257,7 +1257,6 @@ GridMapEditor::GridMapEditor(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_pick_distance = memnew(SpinBox);
settings_pick_distance->set_max(10000.0f);
@@ -1267,7 +1266,7 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
settings_vbc->add_margin_child("Pick Distance:", settings_pick_distance);
clip_mode=CLIP_DISABLED;
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ options->get_popup()->connect("id_pressed", this,"_menu_option");
HBoxContainer *hb = memnew( HBoxContainer );
add_child(hb);
@@ -1343,8 +1342,8 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) {
//selection mesh create
- DVector<Vector3> lines;
- DVector<Vector3> triangles;
+ PoolVector<Vector3> lines;
+ PoolVector<Vector3> triangles;
for (int i=0;i<6;i++) {
diff --git a/modules/jpg/image_loader_jpegd.cpp b/modules/jpg/image_loader_jpegd.cpp
index 9709c0c706..1152d42e1b 100644
--- a/modules/jpg/image_loader_jpegd.cpp
+++ b/modules/jpg/image_loader_jpegd.cpp
@@ -56,11 +56,11 @@ Error jpeg_load_image_from_buffer(Image *p_image,const uint8_t* p_buffer, int p_
const int dst_bpl = image_width * comps;
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(dst_bpl * image_height);
- DVector<uint8_t>::Write dw = data.write();
+ PoolVector<uint8_t>::Write dw = data.write();
jpgd::uint8 *pImage_data = (jpgd::uint8*)dw.ptr();
@@ -88,7 +88,7 @@ Error jpeg_load_image_from_buffer(Image *p_image,const uint8_t* p_buffer, int p_
else
fmt=Image::FORMAT_RGBA8;
- dw = DVector<uint8_t>::Write();
+ dw = PoolVector<uint8_t>::Write();
p_image->create(image_width,image_height,0,fmt,data);
return OK;
@@ -99,12 +99,12 @@ Error jpeg_load_image_from_buffer(Image *p_image,const uint8_t* p_buffer, int p_
Error ImageLoaderJPG::load_image(Image *p_image,FileAccess *f) {
- DVector<uint8_t> src_image;
+ PoolVector<uint8_t> src_image;
int src_image_len = f->get_len();
ERR_FAIL_COND_V(src_image_len == 0, ERR_FILE_CORRUPT);
src_image.resize(src_image_len);
- DVector<uint8_t>::Write w = src_image.write();
+ PoolVector<uint8_t>::Write w = src_image.write();
f->get_buffer(&w[0],src_image_len);
@@ -113,7 +113,7 @@ Error ImageLoaderJPG::load_image(Image *p_image,FileAccess *f) {
Error err = jpeg_load_image_from_buffer(p_image,w.ptr(),src_image_len);
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
return err;
diff --git a/modules/mpc/SCsub b/modules/mpc/SCsub
deleted file mode 100644
index 76b7cbea7a..0000000000
--- a/modules/mpc/SCsub
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env python
-
-Import('env')
-Import('env_modules')
-
-env_mpc = env_modules.Clone()
-
-# Thirdparty source files
-if (env['builtin_libmpcdec'] != 'no'):
- thirdparty_dir = "#thirdparty/libmpcdec/"
- thirdparty_sources = [
- "huffman.c",
- "mpc_bits_reader.c",
- "mpc_decoder.c",
- "mpc_demux.c",
- "mpc_reader.c",
- "requant.c",
- "streaminfo.c",
- "synth_filter.c",
- ]
-
- thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
-
- env_mpc.add_source_files(env.modules_sources, thirdparty_sources)
- env_mpc.Append(CPPPATH=[thirdparty_dir])
-
-# Godot source files
-env_mpc.add_source_files(env.modules_sources, "*.cpp")
diff --git a/modules/mpc/audio_stream_mpc.cpp b/modules/mpc/audio_stream_mpc.cpp
deleted file mode 100644
index d8572d3b5d..0000000000
--- a/modules/mpc/audio_stream_mpc.cpp
+++ /dev/null
@@ -1,414 +0,0 @@
-/*************************************************************************/
-/* audio_stream_mpc.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 "audio_stream_mpc.h"
-
-
-Error AudioStreamPlaybackMPC::_open_file() {
-
- if (f) {
- memdelete(f);
- f=NULL;
- }
- Error err;
- //printf("mpc open file %ls\n", file.c_str());
- f=FileAccess::open(file,FileAccess::READ,&err);
-
- if (err) {
- f=NULL;
- ERR_FAIL_V(err);
- return err;
- }
-
- //printf("file size is %i\n", f->get_len());
- //f->seek_end(0);
- streamlen=f->get_len();
- //f->seek(0);
- if (streamlen<=0) {
- memdelete(f);
- f=NULL;
- ERR_FAIL_V(ERR_INVALID_DATA);
- }
-
- data_ofs=0;
- if (preload) {
-
- data.resize(streamlen);
- DVector<uint8_t>::Write w = data.write();
- f->get_buffer(&w[0],streamlen);
- memdelete(f);
- f=NULL;
-
- }
-
- return OK;
-}
-
-void AudioStreamPlaybackMPC::_close_file() {
-
- if (f) {
- memdelete(f);
- f=NULL;
- }
- data.resize(0);
- streamlen=0;
- data_ofs=0;
-}
-
-int AudioStreamPlaybackMPC::_read_file(void *p_dst,int p_bytes) {
-
- if (f)
- return f->get_buffer((uint8_t*)p_dst,p_bytes);
-
- DVector<uint8_t>::Read r = data.read();
- if (p_bytes+data_ofs > streamlen) {
- p_bytes=streamlen-data_ofs;
- }
-
- copymem(p_dst,&r[data_ofs],p_bytes);
- //print_line("read file: "+itos(p_bytes));
- data_ofs+=p_bytes;
- return p_bytes;
-}
-
-bool AudioStreamPlaybackMPC::_seek_file(int p_pos){
-
- if (p_pos<0 || p_pos>streamlen)
- return false;
-
- if (f) {
- f->seek(p_pos);
- return true;
- }
-
- //print_line("read file to: "+itos(p_pos));
- data_ofs=p_pos;
- return true;
-
-}
-int AudioStreamPlaybackMPC::_tell_file() const{
-
- if (f)
- return f->get_pos();
-
- //print_line("tell file, get: "+itos(data_ofs));
- return data_ofs;
-
-}
-
-int AudioStreamPlaybackMPC::_sizeof_file() const{
-
- //print_line("sizeof file, get: "+itos(streamlen));
- return streamlen;
-}
-
-bool AudioStreamPlaybackMPC::_canseek_file() const{
-
- //print_line("canseek file, get true");
- return true;
-}
-
-/////////////////////
-
-mpc_int32_t AudioStreamPlaybackMPC::_mpc_read(mpc_reader *p_reader,void *p_dst, mpc_int32_t p_bytes) {
-
- AudioStreamPlaybackMPC *smpc=(AudioStreamPlaybackMPC *)p_reader->data;
- return smpc->_read_file(p_dst,p_bytes);
-}
-
-mpc_bool_t AudioStreamPlaybackMPC::_mpc_seek(mpc_reader *p_reader,mpc_int32_t p_offset) {
-
- AudioStreamPlaybackMPC *smpc=(AudioStreamPlaybackMPC *)p_reader->data;
- return smpc->_seek_file(p_offset);
-
-}
-mpc_int32_t AudioStreamPlaybackMPC::_mpc_tell(mpc_reader *p_reader) {
-
- AudioStreamPlaybackMPC *smpc=(AudioStreamPlaybackMPC *)p_reader->data;
- return smpc->_tell_file();
-
-}
-mpc_int32_t AudioStreamPlaybackMPC::_mpc_get_size(mpc_reader *p_reader) {
-
- AudioStreamPlaybackMPC *smpc=(AudioStreamPlaybackMPC *)p_reader->data;
- return smpc->_sizeof_file();
-
-
-}
-mpc_bool_t AudioStreamPlaybackMPC::_mpc_canseek(mpc_reader *p_reader) {
-
- AudioStreamPlaybackMPC *smpc=(AudioStreamPlaybackMPC *)p_reader->data;
- return smpc->_canseek_file();
-}
-
-
-
-
-int AudioStreamPlaybackMPC::mix(int16_t* p_bufer,int p_frames) {
-
- if (!active || paused)
- return 0;
-
- int todo=p_frames;
-
- while(todo>MPC_DECODER_BUFFER_LENGTH/si.channels) {
-
- mpc_frame_info frame;
-
- frame.buffer=sample_buffer;
-
- mpc_status err = mpc_demux_decode(demux, &frame);
- if (frame.bits!=-1) {
-
- int16_t *dst_buff = p_bufer;
-
-#ifdef MPC_FIXED_POINT
-
- for( int i = 0; i < frame.samples * si.channels; i++) {
- int tmp = sample_buffer[i] >> MPC_FIXED_POINT_FRACTPART;
- if (tmp > ((1 << 15) - 1)) tmp = ((1 << 15) - 1);
- if (tmp < -(1 << 15)) tmp = -(1 << 15);
- dst_buff[i] = tmp;
- }
-#else
- for( int i = 0; i < frame.samples * si.channels; i++) {
-
- int tmp = Math::fast_ftoi(sample_buffer[i]*32767.0);
- if (tmp > ((1 << 15) - 1)) tmp = ((1 << 15) - 1);
- if (tmp < -(1 << 15)) tmp = -(1 << 15);
- dst_buff[i] = tmp;
-
- }
-
-#endif
-
- int frames = frame.samples;
- p_bufer+=si.channels*frames;
- todo-=frames;
- } else {
-
- if (err != MPC_STATUS_OK) {
-
- stop();
- ERR_PRINT("Error decoding MPC");
- break;
- } else {
-
- //finished
- if (!loop) {
- stop();
- break;
- } else {
-
-
- loops++;
- mpc_demux_exit(demux);
- _seek_file(0);
- demux = mpc_demux_init(&reader);
- //do loop somehow
-
- }
- }
- }
- }
-
- return p_frames-todo;
-}
-
-Error AudioStreamPlaybackMPC::_reload() {
-
- ERR_FAIL_COND_V(demux!=NULL, ERR_FILE_ALREADY_IN_USE);
-
- Error err = _open_file();
- ERR_FAIL_COND_V(err!=OK,ERR_CANT_OPEN);
-
- demux = mpc_demux_init(&reader);
- ERR_FAIL_COND_V(!demux,ERR_CANT_CREATE);
- mpc_demux_get_info(demux, &si);
-
- return OK;
-}
-
-void AudioStreamPlaybackMPC::set_file(const String& p_file) {
-
- file=p_file;
-
- Error err = _open_file();
- ERR_FAIL_COND(err!=OK);
- demux = mpc_demux_init(&reader);
- ERR_FAIL_COND(!demux);
- mpc_demux_get_info(demux, &si);
- stream_min_size=MPC_DECODER_BUFFER_LENGTH*2/si.channels;
- stream_rate=si.sample_freq;
- stream_channels=si.channels;
-
- mpc_demux_exit(demux);
- demux=NULL;
- _close_file();
-
-}
-
-
-String AudioStreamPlaybackMPC::get_file() const {
-
- return file;
-}
-
-
-void AudioStreamPlaybackMPC::play(float p_offset) {
-
-
- if (active)
- stop();
- active=false;
-
- Error err = _open_file();
- ERR_FAIL_COND(err!=OK);
- if (_reload()!=OK)
- return;
- active=true;
- loops=0;
-
-}
-
-void AudioStreamPlaybackMPC::stop() {
-
-
- if (!active)
- return;
- if (demux) {
- mpc_demux_exit(demux);
- demux=NULL;
- }
- _close_file();
- active=false;
-
-}
-bool AudioStreamPlaybackMPC::is_playing() const {
-
- return active;
-}
-
-
-void AudioStreamPlaybackMPC::set_loop(bool p_enable) {
-
- loop=p_enable;
-}
-bool AudioStreamPlaybackMPC::has_loop() const {
-
- return loop;
-}
-
-float AudioStreamPlaybackMPC::get_length() const {
-
- return 0;
-}
-
-String AudioStreamPlaybackMPC::get_stream_name() const {
-
- return "";
-}
-
-int AudioStreamPlaybackMPC::get_loop_count() const {
-
- return 0;
-}
-
-float AudioStreamPlaybackMPC::get_pos() const {
-
- return 0;
-}
-void AudioStreamPlaybackMPC::seek_pos(float p_time) {
-
-
-}
-
-
-void AudioStreamPlaybackMPC::_bind_methods() {
-
- ClassDB::bind_method(_MD("set_file","name"),&AudioStreamPlaybackMPC::set_file);
- ClassDB::bind_method(_MD("get_file"),&AudioStreamPlaybackMPC::get_file);
-
- ADD_PROPERTYNZ( PropertyInfo(Variant::STRING,"file",PROPERTY_HINT_FILE,"mpc"), _SCS("set_file"), _SCS("get_file"));
-
-}
-
-AudioStreamPlaybackMPC::AudioStreamPlaybackMPC() {
-
- preload=false;
- f=NULL;
- streamlen=0;
- data_ofs=0;
- active=false;
- paused=false;
- loop=false;
- demux=NULL;
- reader.data=this;
- reader.read=_mpc_read;
- reader.seek=_mpc_seek;
- reader.tell=_mpc_tell;
- reader.get_size=_mpc_get_size;
- reader.canseek=_mpc_canseek;
- loops=0;
-
-}
-
-AudioStreamPlaybackMPC::~AudioStreamPlaybackMPC() {
-
- stop();
-
- if (f)
- memdelete(f);
-}
-
-
-
-RES ResourceFormatLoaderAudioStreamMPC::load(const String &p_path, const String& p_original_path, Error *r_error) {
- if (r_error)
- *r_error=OK; //streamed so it will always work..
- AudioStreamMPC *mpc_stream = memnew(AudioStreamMPC);
- mpc_stream->set_file(p_path);
- return Ref<AudioStreamMPC>(mpc_stream);
-}
-
-void ResourceFormatLoaderAudioStreamMPC::get_recognized_extensions(List<String> *p_extensions) const {
-
- p_extensions->push_back("mpc");
-}
-bool ResourceFormatLoaderAudioStreamMPC::handles_type(const String& p_type) const {
-
- return (p_type=="AudioStream") || (p_type=="AudioStreamMPC");
-}
-
-String ResourceFormatLoaderAudioStreamMPC::get_resource_type(const String &p_path) const {
-
- if (p_path.extension().to_lower()=="mpc")
- return "AudioStreamMPC";
- return "";
-}
-
diff --git a/modules/mpc/audio_stream_mpc.h b/modules/mpc/audio_stream_mpc.h
deleted file mode 100644
index e7d677aa8c..0000000000
--- a/modules/mpc/audio_stream_mpc.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*************************************************************************/
-/* audio_stream_mpc.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 AUDIO_STREAM_MPC_H
-#define AUDIO_STREAM_MPC_H
-
-#include "io/resource_loader.h"
-#include "os/file_access.h"
-#include "os/thread_safe.h"
-#include "scene/resources/audio_stream.h"
-
-#include <mpc/mpcdec.h>
-
-class AudioStreamPlaybackMPC : public AudioStreamPlayback {
-
- GDCLASS( AudioStreamPlaybackMPC, AudioStreamPlayback );
-
- bool preload;
- FileAccess *f;
- String file;
- DVector<uint8_t> data;
- int data_ofs;
- int streamlen;
-
-
- bool active;
- bool paused;
- bool loop;
- int loops;
-
- // mpc
- mpc_reader reader;
- mpc_demux* demux;
- mpc_streaminfo si;
- MPC_SAMPLE_FORMAT sample_buffer[MPC_DECODER_BUFFER_LENGTH];
-
- static mpc_int32_t _mpc_read(mpc_reader *p_reader,void *p_dst, mpc_int32_t p_bytes);
- static mpc_bool_t _mpc_seek(mpc_reader *p_reader,mpc_int32_t p_offset);
- static mpc_int32_t _mpc_tell(mpc_reader *p_reader);
- static mpc_int32_t _mpc_get_size(mpc_reader *p_reader);
- static mpc_bool_t _mpc_canseek(mpc_reader *p_reader);
-
- int stream_min_size;
- int stream_rate;
- int stream_channels;
-
-protected:
- Error _open_file();
- void _close_file();
- int _read_file(void *p_dst,int p_bytes);
- bool _seek_file(int p_pos);
- int _tell_file() const;
- int _sizeof_file() const;
- bool _canseek_file() const;
-
-
- Error _reload();
- static void _bind_methods();
-
-public:
-
- void set_file(const String& p_file);
- String get_file() const;
-
- virtual void play(float p_offset=0);
- virtual void stop();
- virtual bool is_playing() const;
-
-
- virtual void set_loop(bool p_enable);
- virtual bool has_loop() const;
-
- virtual float get_length() const;
-
- virtual String get_stream_name() const;
-
- virtual int get_loop_count() const;
-
- virtual float get_pos() const;
- virtual void seek_pos(float p_time);
-
- virtual int get_channels() const { return stream_channels; }
- virtual int get_mix_rate() const { return stream_rate; }
-
- virtual int get_minimum_buffer_size() const { return stream_min_size; }
- virtual int mix(int16_t* p_bufer,int p_frames);
-
- virtual void set_loop_restart_time(float p_time) { }
-
- AudioStreamPlaybackMPC();
- ~AudioStreamPlaybackMPC();
-};
-
-class AudioStreamMPC : public AudioStream {
-
- GDCLASS( AudioStreamMPC, AudioStream );
-
- String file;
-public:
-
- Ref<AudioStreamPlayback> instance_playback() {
- Ref<AudioStreamPlaybackMPC> pb = memnew( AudioStreamPlaybackMPC );
- pb->set_file(file);
- return pb;
- }
-
- void set_file(const String& p_file) { file=p_file; }
-
-
-};
-
-class ResourceFormatLoaderAudioStreamMPC : public ResourceFormatLoader {
-public:
- virtual RES load(const String &p_path,const String& p_original_path="",Error *r_error=NULL);
- virtual void get_recognized_extensions(List<String> *p_extensions) const;
- virtual bool handles_type(const String& p_type) const;
- virtual String get_resource_type(const String &p_path) const;
-
-};
-
-#endif // AUDIO_STREAM_MPC_H
diff --git a/modules/mpc/config.py b/modules/mpc/config.py
deleted file mode 100644
index fb920482f5..0000000000
--- a/modules/mpc/config.py
+++ /dev/null
@@ -1,7 +0,0 @@
-
-def can_build(platform):
- return True
-
-
-def configure(env):
- pass
diff --git a/modules/mpc/register_types.cpp b/modules/mpc/register_types.cpp
deleted file mode 100644
index df058916bb..0000000000
--- a/modules/mpc/register_types.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*************************************************************************/
-/* register_types.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 "register_types.h"
-
-#include "audio_stream_mpc.h"
-
-static ResourceFormatLoaderAudioStreamMPC* mpc_stream_loader = NULL;
-
-void register_mpc_types() {
-
- mpc_stream_loader=memnew( ResourceFormatLoaderAudioStreamMPC );
- ResourceLoader::add_resource_format_loader(mpc_stream_loader);
- ClassDB::register_class<AudioStreamMPC>();
-}
-
-void unregister_mpc_types() {
-
- memdelete( mpc_stream_loader );
-}
diff --git a/modules/mpc/register_types.h b/modules/mpc/register_types.h
deleted file mode 100644
index d1e692f254..0000000000
--- a/modules/mpc/register_types.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*************************************************************************/
-/* register_types.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. */
-/*************************************************************************/
-void register_mpc_types();
-void unregister_mpc_types();
diff --git a/modules/pbm/bitmap_loader_pbm.cpp b/modules/pbm/bitmap_loader_pbm.cpp
index f9fc19b2cc..6caaf10334 100644
--- a/modules/pbm/bitmap_loader_pbm.cpp
+++ b/modules/pbm/bitmap_loader_pbm.cpp
@@ -31,11 +31,11 @@
#include "scene/resources/bit_mask.h"
-static bool _get_token(FileAccessRef& f,uint8_t &saved,DVector<uint8_t>& r_token,bool p_binary=false,bool p_single_chunk=false) {
+static bool _get_token(FileAccessRef& f,uint8_t &saved,PoolVector<uint8_t>& r_token,bool p_binary=false,bool p_single_chunk=false) {
int token_max = r_token.size();
- DVector<uint8_t>::Write w;
+ PoolVector<uint8_t>::Write w;
if (token_max)
w=r_token.write();
int ofs=0;
@@ -53,7 +53,7 @@ static bool _get_token(FileAccessRef& f,uint8_t &saved,DVector<uint8_t>& r_token
}
if (f->eof_reached()) {
if (ofs) {
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
r_token.resize(ofs);
return true;
} else {
@@ -81,7 +81,7 @@ static bool _get_token(FileAccessRef& f,uint8_t &saved,DVector<uint8_t>& r_token
if (ofs && !p_single_chunk) {
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
r_token.resize(ofs);
saved=b;
@@ -98,7 +98,7 @@ static bool _get_token(FileAccessRef& f,uint8_t &saved,DVector<uint8_t>& r_token
resized=true;
}
if (resized) {
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
r_token.resize(token_max);
w=r_token.write();
}
@@ -109,10 +109,10 @@ static bool _get_token(FileAccessRef& f,uint8_t &saved,DVector<uint8_t>& r_token
return false;
}
-static int _get_number_from_token(DVector<uint8_t>& r_token) {
+static int _get_number_from_token(PoolVector<uint8_t>& r_token) {
int len = r_token.size();
- DVector<uint8_t>::Read r = r_token.read();
+ PoolVector<uint8_t>::Read r = r_token.read();
return String::to_int((const char*)r.ptr(),len);
}
@@ -133,7 +133,7 @@ RES ResourceFormatPBM::load(const String &p_path,const String& p_original_path,E
if (!f)
_RETURN(ERR_CANT_OPEN);
- DVector<uint8_t> token;
+ PoolVector<uint8_t> token;
if (!_get_token(f,saved,token)) {
_RETURN(ERR_PARSE_ERROR);
@@ -186,7 +186,7 @@ RES ResourceFormatPBM::load(const String &p_path,const String& p_original_path,E
_RETURN(ERR_FILE_CORRUPT);
}
- DVector<uint8_t>::Read r=token.read();
+ PoolVector<uint8_t>::Read r=token.read();
for(int i=0;i<height;i++) {
for(int j=0;j<width;j++) {
@@ -210,7 +210,7 @@ RES ResourceFormatPBM::load(const String &p_path,const String& p_original_path,E
_RETURN(ERR_FILE_CORRUPT);
}
- DVector<uint8_t>::Read r=token.read();
+ PoolVector<uint8_t>::Read r=token.read();
int bitwidth = width;
if (bitwidth % 8)
bitwidth+=8-(bitwidth%8);
diff --git a/modules/pvr/texture_loader_pvr.cpp b/modules/pvr/texture_loader_pvr.cpp
index 0b07e05410..9f8db98e05 100644
--- a/modules/pvr/texture_loader_pvr.cpp
+++ b/modules/pvr/texture_loader_pvr.cpp
@@ -99,13 +99,13 @@ RES ResourceFormatPVR::load(const String &p_path,const String& p_original_path,E
print_line("surfcount: "+itos(surfcount));
*/
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(surfsize);
ERR_FAIL_COND_V(data.size()==0,RES());
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
f->get_buffer(&w[0],surfsize);
err = f->get_error();
ERR_FAIL_COND_V(err!=OK,RES());
@@ -151,7 +151,7 @@ RES ResourceFormatPVR::load(const String &p_path,const String& p_original_path,E
}
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
int tex_flags=Texture::FLAG_FILTER|Texture::FLAG_REPEAT;
@@ -209,10 +209,10 @@ static void _compress_pvrtc4(Image * p_img) {
Image new_img;
new_img.create(img.get_width(),img.get_height(),true,use_alpha?Image::FORMAT_PVRTC4A:Image::FORMAT_PVRTC4);
- DVector<uint8_t> data=new_img.get_data();
+ PoolVector<uint8_t> data=new_img.get_data();
{
- DVector<uint8_t>::Write wr=data.write();
- DVector<uint8_t>::Read r=img.get_data().read();
+ PoolVector<uint8_t>::Write wr=data.write();
+ PoolVector<uint8_t>::Read r=img.get_data().read();
for(int i=0;i<=new_img.get_mipmap_count();i++) {
@@ -677,13 +677,13 @@ static void _pvrtc_decompress(Image* p_img) {
bool _2bit = (p_img->get_format()==Image::FORMAT_PVRTC2 || p_img->get_format()==Image::FORMAT_PVRTC2A );
- DVector<uint8_t> data = p_img->get_data();
- DVector<uint8_t>::Read r = data.read();
+ PoolVector<uint8_t> data = p_img->get_data();
+ PoolVector<uint8_t>::Read r = data.read();
- DVector<uint8_t> newdata;
+ PoolVector<uint8_t> newdata;
newdata.resize( p_img->get_width() * p_img->get_height() * 4);
- DVector<uint8_t>::Write w=newdata.write();
+ PoolVector<uint8_t>::Write w=newdata.write();
decompress_pvrtc((PVRTCBlock*)r.ptr(),_2bit,p_img->get_width(),p_img->get_height(),0,(unsigned char*)w.ptr());
@@ -691,8 +691,8 @@ static void _pvrtc_decompress(Image* p_img) {
// print_line(itos(w[i]));
//}
- w=DVector<uint8_t>::Write();
- r=DVector<uint8_t>::Read();
+ w=PoolVector<uint8_t>::Write();
+ r=PoolVector<uint8_t>::Read();
bool make_mipmaps=p_img->has_mipmaps();
Image newimg(p_img->get_width(),p_img->get_height(),false,Image::FORMAT_RGBA8,newdata);
diff --git a/modules/squish/image_compress_squish.cpp b/modules/squish/image_compress_squish.cpp
index 6cd9048f1b..7410658603 100644
--- a/modules/squish/image_compress_squish.cpp
+++ b/modules/squish/image_compress_squish.cpp
@@ -66,12 +66,12 @@ void image_compress_squish(Image *p_image) {
int mm_count = p_image->get_mipmap_count();
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
int target_size = Image::get_image_data_size(w,h,target_format,mm_count);
data.resize(target_size);
- DVector<uint8_t>::Read rb = p_image->get_data().read();
- DVector<uint8_t>::Write wb = data.write();
+ PoolVector<uint8_t>::Read rb = p_image->get_data().read();
+ PoolVector<uint8_t>::Write wb = data.write();
int dst_ofs=0;
@@ -84,8 +84,8 @@ void image_compress_squish(Image *p_image) {
h>>=1;
}
- rb = DVector<uint8_t>::Read();
- wb = DVector<uint8_t>::Write();
+ rb = PoolVector<uint8_t>::Read();
+ wb = PoolVector<uint8_t>::Write();
p_image->create(p_image->get_width(),p_image->get_height(),p_image->has_mipmaps(),target_format,data);
diff --git a/modules/theora/video_stream_theora.cpp b/modules/theora/video_stream_theora.cpp
index e6bf55185e..b847f17bb7 100644
--- a/modules/theora/video_stream_theora.cpp
+++ b/modules/theora/video_stream_theora.cpp
@@ -88,7 +88,7 @@ void VideoStreamPlaybackTheora::video_write(void){
{
int pixels = size.x * size.y;
frame_data.resize(pixels * 4);
- DVector<uint8_t>::Write w = frame_data.write();
+ PoolVector<uint8_t>::Write w = frame_data.write();
char* dst = (char*)w.ptr();
int p = 0;
for (int i=0; i<size.y; i++) {
@@ -112,7 +112,7 @@ void VideoStreamPlaybackTheora::video_write(void){
int pitch = 4;
frame_data.resize(size.x * size.y * pitch);
{
- DVector<uint8_t>::Write w = frame_data.write();
+ PoolVector<uint8_t>::Write w = frame_data.write();
char* dst = (char*)w.ptr();
//uv_offset=(ti.pic_x/2)+(yuv[1].stride)*(ti.pic_y/2);
@@ -143,7 +143,7 @@ void VideoStreamPlaybackTheora::video_write(void){
int pitch = 3;
frame_data.resize(size.x * size.y * pitch);
- DVector<uint8_t>::Write w = frame_data.write();
+ PoolVector<uint8_t>::Write w = frame_data.write();
char* dst = (char*)w.ptr();
for(int i=0;i<size.y;i++) {
@@ -174,7 +174,7 @@ void VideoStreamPlaybackTheora::video_write(void){
int pitch = 4;
frame_data.resize(size.x * size.y * pitch);
- DVector<uint8_t>::Write w = frame_data.write();
+ PoolVector<uint8_t>::Write w = frame_data.write();
char* dst = (char*)w.ptr();
uv_offset=(ti.pic_x/2)+(yuv[1].stride)*(ti.pic_y / div);
@@ -208,7 +208,7 @@ void VideoStreamPlaybackTheora::video_write(void){
int pitch = 2;
frame_data.resize(size.x * size.y * pitch);
- DVector<uint8_t>::Write w = frame_data.write();
+ PoolVector<uint8_t>::Write w = frame_data.write();
char* dst = (char*)w.ptr();
uv_offset=(ti.pic_x/2)+(yuv[1].stride)*(ti.pic_y / div);
diff --git a/modules/theora/video_stream_theora.h b/modules/theora/video_stream_theora.h
index bff9d2538d..0e1f5fa864 100644
--- a/modules/theora/video_stream_theora.h
+++ b/modules/theora/video_stream_theora.h
@@ -51,7 +51,7 @@ class VideoStreamPlaybackTheora : public VideoStreamPlayback {
//Image frames[MAX_FRAMES];
Image::Format format;
- DVector<uint8_t> frame_data;
+ PoolVector<uint8_t> frame_data;
int frames_pending;
FileAccess* file;
String file_name;
diff --git a/modules/visual_script/visual_script.h b/modules/visual_script/visual_script.h
index 340db21c32..d030dcc2cb 100644
--- a/modules/visual_script/visual_script.h
+++ b/modules/visual_script/visual_script.h
@@ -24,8 +24,6 @@ friend class VisualScript;
void validate_input_default_values();
protected:
- virtual bool _use_builtin_script() const { return false; }
-
void _notification(int p_what);
void ports_changed_notify();
static void _bind_methods();
diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp
index 91c22fc02b..c359c02205 100644
--- a/modules/visual_script/visual_script_editor.cpp
+++ b/modules/visual_script/visual_script_editor.cpp
@@ -3306,7 +3306,7 @@ VisualScriptEditor::VisualScriptEditor() {
edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/cut_nodes"), EDIT_CUT_NODES);
edit_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("visual_script_editor/paste_nodes"), EDIT_PASTE_NODES);
- edit_menu->get_popup()->connect("item_pressed",this,"_menu_option");
+ edit_menu->get_popup()->connect("id_pressed",this,"_menu_option");
main_hsplit = memnew( HSplitContainer );
add_child(main_hsplit);
@@ -3422,7 +3422,7 @@ VisualScriptEditor::VisualScriptEditor() {
edit_signal_edit = memnew( PropertyEditor );
edit_signal_edit->hide_top_label();
edit_signal_dialog->add_child(edit_signal_edit);
- edit_signal_dialog->set_child_rect(edit_signal_edit);
+
edit_signal_edit->edit(signal_editor);
edit_variable_dialog = memnew( AcceptDialog );
@@ -3434,7 +3434,7 @@ VisualScriptEditor::VisualScriptEditor() {
edit_variable_edit = memnew( PropertyEditor );
edit_variable_edit->hide_top_label();
edit_variable_dialog->add_child(edit_variable_edit);
- edit_variable_dialog->set_child_rect(edit_variable_edit);
+
edit_variable_edit->edit(variable_editor);
select_base_type=memnew(CreateDialog);
@@ -3446,7 +3446,7 @@ VisualScriptEditor::VisualScriptEditor() {
undo_redo = EditorNode::get_singleton()->get_undo_redo();
new_function_menu = memnew( PopupMenu );
- new_function_menu->connect("item_pressed",this,"_override_pressed");
+ new_function_menu->connect("id_pressed",this,"_override_pressed");
add_child(new_function_menu);
updating_members=false;
@@ -3468,7 +3468,7 @@ VisualScriptEditor::VisualScriptEditor() {
port_action_popup = memnew( PopupMenu );
add_child(port_action_popup);
- port_action_popup->connect("item_pressed",this,"_port_action_menu");
+ port_action_popup->connect("id_pressed",this,"_port_action_menu");
}
diff --git a/modules/visual_script/visual_script_flow_control.cpp b/modules/visual_script/visual_script_flow_control.cpp
index bc980d5b25..0e526f8a42 100644
--- a/modules/visual_script/visual_script_flow_control.cpp
+++ b/modules/visual_script/visual_script_flow_control.cpp
@@ -871,9 +871,9 @@ String VisualScriptInputFilter::get_output_sequence_port_text(int p_port) const
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
- InputEventJoystickMotion jm = filters[p_port].joy_motion;
+ InputEventJoypadMotion jm = filters[p_port].joy_motion;
text="JoyMotion Axis "+itos(jm.axis>>1);
if (jm.axis&1)
@@ -882,8 +882,8 @@ String VisualScriptInputFilter::get_output_sequence_port_text(int p_port) const
text+=" < "+rtos(-jm.axis_value);
} break;
- case InputEvent::JOYSTICK_BUTTON: {
- InputEventJoystickButton jb = filters[p_port].joy_button;
+ case InputEvent::JOYPAD_BUTTON: {
+ InputEventJoypadButton jb = filters[p_port].joy_button;
text="JoyButton "+itos(jb.button_index);
if (jb.pressed)
@@ -985,13 +985,13 @@ bool VisualScriptInputFilter::_set(const StringName& p_name, const Variant& p_va
if (what=="type") {
filters[idx]=InputEvent();
filters[idx].type=InputEvent::Type(int(p_value));
- if (filters[idx].type==InputEvent::JOYSTICK_MOTION) {
+ if (filters[idx].type==InputEvent::JOYPAD_MOTION) {
filters[idx].joy_motion.axis_value=0.5; //for treshold
} else if (filters[idx].type==InputEvent::KEY) {
filters[idx].key.pressed=true; //put these as true to make it more user friendly
} else if (filters[idx].type==InputEvent::MOUSE_BUTTON) {
filters[idx].mouse_button.pressed=true;
- } else if (filters[idx].type==InputEvent::JOYSTICK_BUTTON) {
+ } else if (filters[idx].type==InputEvent::JOYPAD_BUTTON) {
filters[idx].joy_button.pressed=true;
} else if (filters[idx].type==InputEvent::SCREEN_TOUCH) {
filters[idx].screen_touch.pressed=true;
@@ -1108,7 +1108,7 @@ bool VisualScriptInputFilter::_set(const StringName& p_name, const Variant& p_va
return true;
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
if (what=="axis") {
filters[idx].joy_motion.axis=int(p_value)<<1|filters[idx].joy_motion.axis;
@@ -1124,7 +1124,7 @@ bool VisualScriptInputFilter::_set(const StringName& p_name, const Variant& p_va
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
if (what=="button_index") {
filters[idx].joy_button.button_index=p_value;
@@ -1326,7 +1326,7 @@ bool VisualScriptInputFilter::_get(const StringName& p_name,Variant &r_ret) cons
return true;
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
if (what=="axis_index") {
r_ret=filters[idx].joy_motion.axis>>1;
@@ -1341,7 +1341,7 @@ bool VisualScriptInputFilter::_get(const StringName& p_name,Variant &r_ret) cons
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
if (what=="button_index") {
r_ret=filters[idx].joy_button.button_index;
@@ -1417,8 +1417,8 @@ static const char* event_type_names[InputEvent::TYPE_MAX]={
"Key",
"MouseMotion",
"MouseButton",
- "JoystickMotion",
- "JoystickButton",
+ "JoypadMotion",
+ "JoypadButton",
"ScreenTouch",
"ScreenDrag",
"Action"
@@ -1489,13 +1489,13 @@ void VisualScriptInputFilter::_get_property_list( List<PropertyInfo> *p_list) co
p_list->push_back(PropertyInfo(Variant::BOOL,base+"mod_meta"));
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
p_list->push_back(PropertyInfo(Variant::INT,base+"axis_index"));
p_list->push_back(PropertyInfo(Variant::INT,base+"mode",PROPERTY_HINT_ENUM,"Min,Max"));
p_list->push_back(PropertyInfo(Variant::REAL,base+"treshold",PROPERTY_HINT_RANGE,"0,1,0.01"));
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
p_list->push_back(PropertyInfo(Variant::INT,base+"button_index"));
p_list->push_back(PropertyInfo(Variant::BOOL,base+"pressed"));
@@ -1632,10 +1632,10 @@ public:
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
- InputEventJoystickMotion jm = ie.joy_motion;
- InputEventJoystickMotion jm2 = event.joy_motion;
+ InputEventJoypadMotion jm = ie.joy_motion;
+ InputEventJoypadMotion jm2 = event.joy_motion;
int axis = jm.axis>>1;
@@ -1656,9 +1656,9 @@ public:
} break;
- case InputEvent::JOYSTICK_BUTTON: {
- InputEventJoystickButton jb = ie.joy_button;
- InputEventJoystickButton jb2 = event.joy_button;
+ case InputEvent::JOYPAD_BUTTON: {
+ InputEventJoypadButton jb = ie.joy_button;
+ InputEventJoypadButton jb2 = event.joy_button;
if ( jb.button_index==jb2.button_index &&
jb.pressed == jb2.pressed
diff --git a/modules/visual_script/visual_script_func_nodes.cpp b/modules/visual_script/visual_script_func_nodes.cpp
index bf2b4016c7..9f3ba8a8cb 100644
--- a/modules/visual_script/visual_script_func_nodes.cpp
+++ b/modules/visual_script/visual_script_func_nodes.cpp
@@ -971,8 +971,8 @@ static const char* event_type_names[InputEvent::TYPE_MAX]={
"Key",
"MouseMotion",
"MouseButton",
- "JoystickMotion",
- "JoystickButton",
+ "JoypadMotion",
+ "JoypadButton",
"ScreenTouch",
"ScreenDrag",
"Action"
diff --git a/modules/visual_script/visual_script_nodes.cpp b/modules/visual_script/visual_script_nodes.cpp
index e442cd48e7..0ccdfedb81 100644
--- a/modules/visual_script/visual_script_nodes.cpp
+++ b/modules/visual_script/visual_script_nodes.cpp
@@ -3848,7 +3848,7 @@ void VisualScriptDeconstruct::_bind_methods() {
argt+=","+Variant::get_type_name(Variant::Type(i));
}
- String iet="None,Key,MouseMotion,MouseButton,JoystickMotion,JoystickButton,ScreenTouch,ScreenDrag,Action";
+ String iet="None,Key,MouseMotion,MouseButton,JoypadMotion,JoypadButton,ScreenTouch,ScreenDrag,Action";
ADD_PROPERTY( PropertyInfo(Variant::INT,"type",PROPERTY_HINT_ENUM,argt),_SCS("set_deconstruct_type"),_SCS("get_deconstruct_type"));
ADD_PROPERTY( PropertyInfo(Variant::INT,"input_type",PROPERTY_HINT_ENUM,iet),_SCS("set_deconstruct_input_type"),_SCS("get_deconstruct_input_type"));
diff --git a/modules/visual_script/visual_script_nodes.h b/modules/visual_script/visual_script_nodes.h
index eb70c86637..7a06fbf5e8 100644
--- a/modules/visual_script/visual_script_nodes.h
+++ b/modules/visual_script/visual_script_nodes.h
@@ -706,8 +706,6 @@ class VisualScriptCustomNode: public VisualScriptNode {
protected:
- virtual bool _use_builtin_script() const { return true; }
-
static void _bind_methods();
public:
diff --git a/modules/webm/video_stream_webm.cpp b/modules/webm/video_stream_webm.cpp
index 35b215cb52..d132e89690 100644
--- a/modules/webm/video_stream_webm.cpp
+++ b/modules/webm/video_stream_webm.cpp
@@ -293,7 +293,7 @@ void VideoStreamPlaybackWebm::update(float p_delta) {
if (err == VPXDecoder::NO_ERROR && image.w == webm->getWidth() && image.h == webm->getHeight()) {
- DVector<uint8_t>::Write w = frame_data.write();
+ PoolVector<uint8_t>::Write w = frame_data.write();
bool converted = false;
if (image.chromaShiftW == 1 && image.chromaShiftH == 1) {
diff --git a/modules/webm/video_stream_webm.h b/modules/webm/video_stream_webm.h
index a34591d9b9..cb4ef53f6d 100644
--- a/modules/webm/video_stream_webm.h
+++ b/modules/webm/video_stream_webm.h
@@ -56,7 +56,7 @@ class VideoStreamPlaybackWebm : public VideoStreamPlayback {
double delay_compensation;
double time, video_frame_delay, video_pos;
- DVector<uint8_t> frame_data;
+ PoolVector<uint8_t> frame_data;
Ref<ImageTexture> texture;
int16_t *pcm;
diff --git a/modules/webp/image_loader_webp.cpp b/modules/webp/image_loader_webp.cpp
index 56fc386ef4..3508c6a663 100644
--- a/modules/webp/image_loader_webp.cpp
+++ b/modules/webp/image_loader_webp.cpp
@@ -36,9 +36,9 @@
#include <webp/decode.h>
#include <webp/encode.h>
-static DVector<uint8_t> _webp_lossy_pack(const Image& p_image,float p_quality) {
+static PoolVector<uint8_t> _webp_lossy_pack(const Image& p_image,float p_quality) {
- ERR_FAIL_COND_V(p_image.empty(),DVector<uint8_t>());
+ ERR_FAIL_COND_V(p_image.empty(),PoolVector<uint8_t>());
Image img=p_image;
if (img.detect_alpha())
@@ -47,8 +47,8 @@ static DVector<uint8_t> _webp_lossy_pack(const Image& p_image,float p_quality) {
img.convert(Image::FORMAT_RGB8);
Size2 s(img.get_width(),img.get_height());
- 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();
uint8_t *dst_buff=NULL;
size_t dst_size=0;
@@ -59,25 +59,25 @@ static DVector<uint8_t> _webp_lossy_pack(const Image& p_image,float p_quality) {
dst_size = WebPEncodeRGBA(r.ptr(),s.width,s.height,4*s.width,CLAMP(p_quality*100.0,0,100.0),&dst_buff);
}
- ERR_FAIL_COND_V(dst_size==0,DVector<uint8_t>());
- DVector<uint8_t> dst;
+ ERR_FAIL_COND_V(dst_size==0,PoolVector<uint8_t>());
+ PoolVector<uint8_t> dst;
dst.resize(4+dst_size);
- DVector<uint8_t>::Write w = dst.write();
+ PoolVector<uint8_t>::Write w = dst.write();
w[0]='W';
w[1]='E';
w[2]='B';
w[3]='P';
copymem(&w[4],dst_buff,dst_size);
free(dst_buff);
- w=DVector<uint8_t>::Write();
+ w=PoolVector<uint8_t>::Write();
return dst;
}
-static Image _webp_lossy_unpack(const DVector<uint8_t>& p_buffer) {
+static Image _webp_lossy_unpack(const PoolVector<uint8_t>& p_buffer) {
int size = p_buffer.size()-4;
ERR_FAIL_COND_V(size<=0,Image());
- DVector<uint8_t>::Read r = p_buffer.read();
+ PoolVector<uint8_t>::Read r = p_buffer.read();
ERR_FAIL_COND_V(r[0]!='W' || r[1]!='E' || r[2]!='B' || r[3]!='P',Image());
WebPBitstreamFeatures features;
@@ -90,11 +90,11 @@ static Image _webp_lossy_unpack(const DVector<uint8_t>& p_buffer) {
//print_line("height: "+itos(features.height));
//print_line("alpha: "+itos(features.has_alpha));
- DVector<uint8_t> dst_image;
+ PoolVector<uint8_t> dst_image;
int datasize = features.width*features.height*(features.has_alpha?4:3);
dst_image.resize(datasize);
- DVector<uint8_t>::Write dst_w = dst_image.write();
+ PoolVector<uint8_t>::Write dst_w = dst_image.write();
bool errdec=false;
if (features.has_alpha) {
@@ -107,7 +107,7 @@ static Image _webp_lossy_unpack(const DVector<uint8_t>& p_buffer) {
//ERR_EXPLAIN("Error decoding webp! - "+p_file);
ERR_FAIL_COND_V(errdec,Image());
- dst_w = DVector<uint8_t>::Write();
+ dst_w = PoolVector<uint8_t>::Write();
return Image(features.width,features.height,0,features.has_alpha?Image::FORMAT_RGBA8:Image::FORMAT_RGB8,dst_image);
@@ -118,12 +118,12 @@ Error ImageLoaderWEBP::load_image(Image *p_image,FileAccess *f) {
uint32_t size = f->get_len();
- DVector<uint8_t> src_image;
+ PoolVector<uint8_t> src_image;
src_image.resize(size);
WebPBitstreamFeatures features;
- DVector<uint8_t>::Write src_w = src_image.write();
+ PoolVector<uint8_t>::Write src_w = src_image.write();
f->get_buffer(src_w.ptr(),size);
ERR_FAIL_COND_V(f->eof_reached(), ERR_FILE_EOF);
@@ -137,14 +137,14 @@ Error ImageLoaderWEBP::load_image(Image *p_image,FileAccess *f) {
print_line("height: "+itos(features.height));
print_line("alpha: "+itos(features.has_alpha));
- src_w = DVector<uint8_t>::Write();
+ src_w = PoolVector<uint8_t>::Write();
- DVector<uint8_t> dst_image;
+ PoolVector<uint8_t> dst_image;
int datasize = features.width*features.height*(features.has_alpha?4:3);
dst_image.resize(datasize);
- DVector<uint8_t>::Read src_r = src_image.read();
- DVector<uint8_t>::Write dst_w = dst_image.write();
+ PoolVector<uint8_t>::Read src_r = src_image.read();
+ PoolVector<uint8_t>::Write dst_w = dst_image.write();
bool errdec=false;
@@ -158,8 +158,8 @@ Error ImageLoaderWEBP::load_image(Image *p_image,FileAccess *f) {
//ERR_EXPLAIN("Error decoding webp! - "+p_file);
ERR_FAIL_COND_V(errdec,ERR_FILE_CORRUPT);
- src_r = DVector<uint8_t>::Read();
- dst_w = DVector<uint8_t>::Write();
+ src_r = PoolVector<uint8_t>::Read();
+ dst_w = PoolVector<uint8_t>::Write();
*p_image = Image(features.width,features.height,0,features.has_alpha?Image::FORMAT_RGBA8:Image::FORMAT_RGB8,dst_image);
diff --git a/platform/android/godot_android.cpp b/platform/android/godot_android.cpp
index 715021db33..c4d1a85c5f 100644
--- a/platform/android/godot_android.cpp
+++ b/platform/android/godot_android.cpp
@@ -153,7 +153,7 @@ public:
} break;
case Variant::STRING_ARRAY: {
- DVector<String> sarray = *p_args[i];
+ PoolVector<String> sarray = *p_args[i];
jobjectArray arr = env->NewObjectArray(sarray.size(),env->FindClass("java/lang/String"),env->NewStringUTF(""));
for(int j=0;j<sarray.size();j++) {
@@ -165,18 +165,18 @@ public:
} break;
case Variant::INT_ARRAY: {
- DVector<int> array = *p_args[i];
+ PoolVector<int> array = *p_args[i];
jintArray arr = env->NewIntArray(array.size());
- DVector<int>::Read r = array.read();
+ PoolVector<int>::Read r = array.read();
env->SetIntArrayRegion(arr,0,array.size(),r.ptr());
v[i].l=arr;
} break;
case Variant::REAL_ARRAY: {
- DVector<float> array = *p_args[i];
+ PoolVector<float> array = *p_args[i];
jfloatArray arr = env->NewFloatArray(array.size());
- DVector<float>::Read r = array.read();
+ PoolVector<float>::Read r = array.read();
env->SetFloatArrayRegion(arr,0,array.size(),r.ptr());
v[i].l=arr;
@@ -225,7 +225,7 @@ public:
jobjectArray arr = (jobjectArray)env->CallObjectMethodA(instance,E->get().method,v);
int stringCount = env->GetArrayLength(arr);
- DVector<String> sarr;
+ PoolVector<String> sarr;
for (int i=0; i<stringCount; i++) {
jstring string = (jstring) env->GetObjectArrayElement(arr, i);
@@ -241,12 +241,12 @@ public:
jintArray arr = (jintArray)env->CallObjectMethodA(instance,E->get().method,v);
int fCount = env->GetArrayLength(arr);
- DVector<int> sarr;
+ PoolVector<int> sarr;
sarr.resize(fCount);
- DVector<int>::Write w = sarr.write();
+ PoolVector<int>::Write w = sarr.write();
env->GetIntArrayRegion(arr,0,fCount,w.ptr());
- w = DVector<int>::Write();
+ w = PoolVector<int>::Write();
ret=sarr;
} break;
case Variant::REAL_ARRAY: {
@@ -254,12 +254,12 @@ public:
jfloatArray arr = (jfloatArray)env->CallObjectMethodA(instance,E->get().method,v);
int fCount = env->GetArrayLength(arr);
- DVector<float> sarr;
+ PoolVector<float> sarr;
sarr.resize(fCount);
- DVector<float>::Write w = sarr.write();
+ PoolVector<float>::Write w = sarr.write();
env->GetFloatArrayRegion(arr,0,fCount,w.ptr());
- w = DVector<float>::Write();
+ w = PoolVector<float>::Write();
ret=sarr;
} break;
default: {
diff --git a/platform/android/java_glue.cpp b/platform/android/java_glue.cpp
index 602d22dfa2..3e8ce35910 100644
--- a/platform/android/java_glue.cpp
+++ b/platform/android/java_glue.cpp
@@ -122,7 +122,7 @@ jvalret _variant_to_jvalue(JNIEnv *env, Variant::Type p_type, const Variant* p_a
} break;
case Variant::STRING_ARRAY: {
- DVector<String> sarray = *p_arg;
+ PoolVector<String> sarray = *p_arg;
jobjectArray arr = env->NewObjectArray(sarray.size(),env->FindClass("java/lang/String"),env->NewStringUTF(""));
for(int j=0;j<sarray.size();j++) {
@@ -181,18 +181,18 @@ jvalret _variant_to_jvalue(JNIEnv *env, Variant::Type p_type, const Variant* p_a
case Variant::INT_ARRAY: {
- DVector<int> array = *p_arg;
+ PoolVector<int> array = *p_arg;
jintArray arr = env->NewIntArray(array.size());
- DVector<int>::Read r = array.read();
+ PoolVector<int>::Read r = array.read();
env->SetIntArrayRegion(arr,0,array.size(),r.ptr());
v.val.l=arr;
v.obj=arr;
} break;
case Variant::RAW_ARRAY: {
- DVector<uint8_t> array = *p_arg;
+ PoolVector<uint8_t> array = *p_arg;
jbyteArray arr = env->NewByteArray(array.size());
- DVector<uint8_t>::Read r = array.read();
+ PoolVector<uint8_t>::Read r = array.read();
env->SetByteArrayRegion(arr,0,array.size(),reinterpret_cast<const signed char*>(r.ptr()));
v.val.l=arr;
v.obj=arr;
@@ -200,9 +200,9 @@ jvalret _variant_to_jvalue(JNIEnv *env, Variant::Type p_type, const Variant* p_a
} break;
case Variant::REAL_ARRAY: {
- DVector<float> array = *p_arg;
+ PoolVector<float> array = *p_arg;
jfloatArray arr = env->NewFloatArray(array.size());
- DVector<float>::Read r = array.read();
+ PoolVector<float>::Read r = array.read();
env->SetFloatArrayRegion(arr,0,array.size(),r.ptr());
v.val.l=arr;
v.obj=arr;
@@ -259,7 +259,7 @@ Variant _jobject_to_variant(JNIEnv * env, jobject obj) {
jobjectArray arr = (jobjectArray)obj;
int stringCount = env->GetArrayLength(arr);
//print_line("String array! " + String::num(stringCount));
- DVector<String> sarr;
+ PoolVector<String> sarr;
for (int i=0; i<stringCount; i++) {
jstring string = (jstring) env->GetObjectArrayElement(arr, i);
@@ -290,12 +290,12 @@ Variant _jobject_to_variant(JNIEnv * env, jobject obj) {
jintArray arr = (jintArray)obj;
int fCount = env->GetArrayLength(arr);
- DVector<int> sarr;
+ PoolVector<int> sarr;
sarr.resize(fCount);
- DVector<int>::Write w = sarr.write();
+ PoolVector<int>::Write w = sarr.write();
env->GetIntArrayRegion(arr,0,fCount,w.ptr());
- w = DVector<int>::Write();
+ w = PoolVector<int>::Write();
return sarr;
};
@@ -303,12 +303,12 @@ Variant _jobject_to_variant(JNIEnv * env, jobject obj) {
jbyteArray arr = (jbyteArray)obj;
int fCount = env->GetArrayLength(arr);
- DVector<uint8_t> sarr;
+ PoolVector<uint8_t> sarr;
sarr.resize(fCount);
- DVector<uint8_t>::Write w = sarr.write();
+ PoolVector<uint8_t>::Write w = sarr.write();
env->GetByteArrayRegion(arr,0,fCount,reinterpret_cast<signed char*>(w.ptr()));
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
return sarr;
};
@@ -540,12 +540,12 @@ public:
jintArray arr = (jintArray)env->CallObjectMethodA(instance,E->get().method,v);
int fCount = env->GetArrayLength(arr);
- DVector<int> sarr;
+ PoolVector<int> sarr;
sarr.resize(fCount);
- DVector<int>::Write w = sarr.write();
+ PoolVector<int>::Write w = sarr.write();
env->GetIntArrayRegion(arr,0,fCount,w.ptr());
- w = DVector<int>::Write();
+ w = PoolVector<int>::Write();
ret=sarr;
env->DeleteLocalRef(arr);
} break;
@@ -554,12 +554,12 @@ public:
jfloatArray arr = (jfloatArray)env->CallObjectMethodA(instance,E->get().method,v);
int fCount = env->GetArrayLength(arr);
- DVector<float> sarr;
+ PoolVector<float> sarr;
sarr.resize(fCount);
- DVector<float>::Write w = sarr.write();
+ PoolVector<float>::Write w = sarr.write();
env->GetFloatArrayRegion(arr,0,fCount,w.ptr());
- w = DVector<float>::Write();
+ w = PoolVector<float>::Write();
ret=sarr;
env->DeleteLocalRef(arr);
} break;
@@ -642,7 +642,7 @@ struct JAndroidPointerEvent {
static List<JAndroidPointerEvent> pointer_events;
static List<InputEvent> key_events;
-static List<OS_Android::JoystickEvent> joy_events;
+static List<OS_Android::JoypadEvent> joy_events;
static bool initialized=false;
static Mutex *input_mutex=NULL;
static Mutex *suspend_mutex=NULL;
@@ -1090,7 +1090,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv * env, jo
while (joy_events.size()) {
- OS_Android::JoystickEvent event = joy_events.front()->get();
+ OS_Android::JoypadEvent event = joy_events.front()->get();
os_android->process_joy_event(event);
joy_events.pop_front();
@@ -1415,7 +1415,7 @@ static unsigned int android_get_keysym(unsigned int p_code) {
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joybutton(JNIEnv * env, jobject obj, jint p_device, jint p_button, jboolean p_pressed) {
- OS_Android::JoystickEvent jevent;
+ OS_Android::JoypadEvent jevent;
jevent.device = p_device;
jevent.type = OS_Android::JOY_EVENT_BUTTON;
jevent.index = p_button;
@@ -1428,7 +1428,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joybutton(JNIEnv * en
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyaxis(JNIEnv * env, jobject obj, jint p_device, jint p_axis, jfloat p_value) {
- OS_Android::JoystickEvent jevent;
+ OS_Android::JoypadEvent jevent;
jevent.device = p_device;
jevent.type = OS_Android::JOY_EVENT_AXIS;
jevent.index = p_axis;
@@ -1440,7 +1440,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyaxis(JNIEnv * env,
}
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_joyhat(JNIEnv * env, jobject obj, jint p_device, jint p_hat_x, jint p_hat_y) {
- OS_Android::JoystickEvent jevent;
+ OS_Android::JoypadEvent jevent;
jevent.device = p_device;
jevent.type = OS_Android::JOY_EVENT_HAT;
int hat = 0;
diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp
index 093064104a..e625c0d7ec 100644
--- a/platform/android/os_android.cpp
+++ b/platform/android/os_android.cpp
@@ -370,7 +370,7 @@ void OS_Android::main_loop_focusin(){
}
-void OS_Android::process_joy_event(OS_Android::JoystickEvent p_event) {
+void OS_Android::process_joy_event(OS_Android::JoypadEvent p_event) {
switch (p_event.type) {
case JOY_EVENT_BUTTON:
diff --git a/platform/android/os_android.h b/platform/android/os_android.h
index 68b50b2087..5e1fc10fd6 100644
--- a/platform/android/os_android.h
+++ b/platform/android/os_android.h
@@ -91,7 +91,7 @@ public:
JOY_EVENT_HAT = 2
};
- struct JoystickEvent {
+ struct JoypadEvent {
int device;
int type;
@@ -249,7 +249,7 @@ public:
void process_magnetometer(const Vector3& p_magnetometer);
void process_gyroscope(const Vector3& p_gyroscope);
void process_touch(int p_what,int p_pointer, const Vector<TouchPos>& p_points);
- void process_joy_event(JoystickEvent p_event);
+ void process_joy_event(JoypadEvent p_event);
void process_event(InputEvent p_event);
void init_video_mode(int p_video_width,int p_video_height);
diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp
index e4d99cc502..1d12501aea 100644
--- a/platform/iphone/os_iphone.cpp
+++ b/platform/iphone/os_iphone.cpp
@@ -331,7 +331,7 @@ void OSIPhone::update_accelerometer(float p_x, float p_y, float p_z) {
if (p_x != last_accel.x) {
//printf("updating accel x %f\n", p_x);
InputEvent ev;
- ev.type = InputEvent::JOYSTICK_MOTION;
+ ev.type = InputEvent::JOYPAD_MOTION;
ev.device = 0;
ev.joy_motion.axis = JOY_ANALOG_0_X;
ev.joy_motion.axis_value = (p_x / (float)ACCEL_RANGE);
@@ -342,7 +342,7 @@ void OSIPhone::update_accelerometer(float p_x, float p_y, float p_z) {
if (p_y != last_accel.y) {
//printf("updating accel y %f\n", p_y);
InputEvent ev;
- ev.type = InputEvent::JOYSTICK_MOTION;
+ ev.type = InputEvent::JOYPAD_MOTION;
ev.device = 0;
ev.joy_motion.axis = JOY_ANALOG_0_Y;
ev.joy_motion.axis_value = (p_y / (float)ACCEL_RANGE);
@@ -353,7 +353,7 @@ void OSIPhone::update_accelerometer(float p_x, float p_y, float p_z) {
if (p_z != last_accel.z) {
//printf("updating accel z %f\n", p_z);
InputEvent ev;
- ev.type = InputEvent::JOYSTICK_MOTION;
+ ev.type = InputEvent::JOYPAD_MOTION;
ev.device = 0;
ev.joy_motion.axis = JOY_ANALOG_1_X;
ev.joy_motion.axis_value = ( (1.0 - p_z) / (float)ACCEL_RANGE);
diff --git a/platform/iphone/rasterizer_iphone.cpp b/platform/iphone/rasterizer_iphone.cpp
index 3654f6d2d6..ee0457cfb1 100644
--- a/platform/iphone/rasterizer_iphone.cpp
+++ b/platform/iphone/rasterizer_iphone.cpp
@@ -286,7 +286,7 @@ void RasterizerIPhone::texture_blit_rect(RID p_texture,int p_x,int p_y, const Im
GLenum blit_target = GL_TEXTURE_2D; //(texture->target == GL_TEXTURE_CUBE_MAP)?_cube_side_enum[p_cube_side]:GL_TEXTURE_2D;
- DVector<uint8_t>::Read read = img.get_data().read();
+ PoolVector<uint8_t>::Read read = img.get_data().read();
glBindTexture(texture->target, texture->tex_id);
glTexSubImage2D( blit_target, 0, p_x,p_y,img.get_width(),img.get_height(),format,GL_UNSIGNED_BYTE,read.ptr() );
@@ -770,7 +770,7 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
ERR_FAIL_COND_V( surface->index_array_len<=0, ERR_INVALID_DATA );
ERR_FAIL_COND_V( p_array.get_type() != Variant::INT_ARRAY, ERR_INVALID_PARAMETER );
- DVector<int> indices = p_array;
+ PoolVector<int> indices = p_array;
ERR_FAIL_COND_V( indices.size() == 0, ERR_INVALID_PARAMETER );
ERR_FAIL_COND_V( indices.size() != surface->index_array_len, ERR_INVALID_PARAMETER );
@@ -780,7 +780,7 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,surface->index_id);
};
- DVector<int>::Read read = indices.read();
+ PoolVector<int>::Read read = indices.read();
const int *src=read.ptr();
for (int i=0;i<surface->index_array_len;i++) {
@@ -822,14 +822,14 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
ERR_FAIL_COND_V( p_array.get_type() != Variant::VECTOR3_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Vector3> array = p_array;
+ PoolVector<Vector3> array = p_array;
ERR_FAIL_COND_V( array.size() != surface->array_len, ERR_INVALID_PARAMETER );
if (surface->array_local == 0) {
glBindBuffer(GL_ARRAY_BUFFER,surface->vertex_id);
};
- DVector<Vector3>::Read read = array.read();
+ PoolVector<Vector3>::Read read = array.read();
const Vector3* src=read.ptr();
// setting vertices means regenerating the AABB
@@ -868,7 +868,7 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
ERR_FAIL_COND_V( p_array.get_type() != Variant::REAL_ARRAY, ERR_INVALID_PARAMETER );
- DVector<real_t> array = p_array;
+ PoolVector<real_t> array = p_array;
ERR_FAIL_COND_V( array.size() != surface->array_len*4, ERR_INVALID_PARAMETER );
@@ -877,7 +877,7 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
};
- DVector<real_t>::Read read = array.read();
+ PoolVector<real_t>::Read read = array.read();
const real_t* src = read.ptr();
for (int i=0;i<surface->array_len;i++) {
@@ -908,7 +908,7 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
ERR_FAIL_COND_V( p_array.get_type() != Variant::COLOR_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Color> array = p_array;
+ PoolVector<Color> array = p_array;
ERR_FAIL_COND_V( array.size() != surface->array_len, ERR_INVALID_PARAMETER );
@@ -916,7 +916,7 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
glBindBuffer(GL_ARRAY_BUFFER,surface->vertex_id);
- DVector<Color>::Read read = array.read();
+ PoolVector<Color>::Read read = array.read();
const Color* src = read.ptr();
surface->has_alpha_cache=false;
@@ -943,14 +943,14 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
ERR_FAIL_COND_V( p_array.get_type() != Variant::VECTOR3_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Vector3> array = p_array;
+ PoolVector<Vector3> array = p_array;
ERR_FAIL_COND_V( array.size() != surface->array_len , ERR_INVALID_PARAMETER);
if (surface->array_local == 0)
glBindBuffer(GL_ARRAY_BUFFER,surface->vertex_id);
- DVector<Vector3>::Read read = array.read();
+ PoolVector<Vector3>::Read read = array.read();
const Vector3 * src=read.ptr();
@@ -975,14 +975,14 @@ Error RasterizerIPhone::mesh_surface_set_array(RID p_mesh, int p_surface,VS::Arr
ERR_FAIL_COND_V( p_array.get_type() != Variant::REAL_ARRAY, ERR_INVALID_PARAMETER );
- DVector<real_t> array = p_array;
+ PoolVector<real_t> array = p_array;
ERR_FAIL_COND_V( array.size() != surface->array_len*VS::ARRAY_WEIGHTS_SIZE, ERR_INVALID_PARAMETER );
if (surface->array_local == 0)
glBindBuffer(GL_ARRAY_BUFFER,surface->vertex_id);
- DVector<real_t>::Read read = array.read();
+ PoolVector<real_t>::Read read = array.read();
const real_t * src = read.ptr();
diff --git a/platform/javascript/audio_server_javascript.cpp b/platform/javascript/audio_server_javascript.cpp
index fec553df04..d1fba030a5 100644
--- a/platform/javascript/audio_server_javascript.cpp
+++ b/platform/javascript/audio_server_javascript.cpp
@@ -87,7 +87,7 @@ const void* AudioServerJavascript::sample_get_data_ptr(RID p_sample) const{
return NULL;
}
-void AudioServerJavascript::sample_set_data(RID p_sample, const DVector<uint8_t>& p_buffer){
+void AudioServerJavascript::sample_set_data(RID p_sample, const PoolVector<uint8_t>& p_buffer){
Sample *sample = sample_owner.get(p_sample);
ERR_FAIL_COND(!sample);
@@ -95,7 +95,7 @@ void AudioServerJavascript::sample_set_data(RID p_sample, const DVector<uint8_t>
Vector<float> buffer;
buffer.resize(sample->length*chans);
- DVector<uint8_t>::Read r=p_buffer.read();
+ PoolVector<uint8_t>::Read r=p_buffer.read();
if (sample->format==SAMPLE_FORMAT_PCM8) {
const int8_t*ptr = (const int8_t*)r.ptr();
for(int i=0;i<sample->length*chans;i++) {
@@ -116,10 +116,10 @@ void AudioServerJavascript::sample_set_data(RID p_sample, const DVector<uint8_t>
}
-DVector<uint8_t> AudioServerJavascript::sample_get_data(RID p_sample) const{
+PoolVector<uint8_t> AudioServerJavascript::sample_get_data(RID p_sample) const{
- return DVector<uint8_t>();
+ return PoolVector<uint8_t>();
}
void AudioServerJavascript::sample_set_mix_rate(RID p_sample,int p_rate){
diff --git a/platform/javascript/audio_server_javascript.h b/platform/javascript/audio_server_javascript.h
index 47aadf6bc6..8e61e94dfc 100644
--- a/platform/javascript/audio_server_javascript.h
+++ b/platform/javascript/audio_server_javascript.h
@@ -131,8 +131,8 @@ public:
virtual const void* sample_get_data_ptr(RID p_sample) const;
- virtual void sample_set_data(RID p_sample, const DVector<uint8_t>& p_buffer);
- virtual DVector<uint8_t> sample_get_data(RID p_sample) const;
+ virtual void sample_set_data(RID p_sample, const PoolVector<uint8_t>& p_buffer);
+ virtual PoolVector<uint8_t> sample_get_data(RID p_sample) const;
virtual void sample_set_mix_rate(RID p_sample,int p_rate);
virtual int sample_get_mix_rate(RID p_sample) const;
diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp
index 3553bdc7a6..47c8ea89d7 100644
--- a/platform/javascript/os_javascript.cpp
+++ b/platform/javascript/os_javascript.cpp
@@ -519,7 +519,7 @@ bool OS_JavaScript::main_loop_iterate() {
}
- process_joysticks();
+ process_joypads();
return Main::iteration();
}
@@ -824,7 +824,7 @@ void OS_JavaScript::_close_notification_funcs(const String& p_file,int p_flags)
}
}
-void OS_JavaScript::process_joysticks() {
+void OS_JavaScript::process_joypads() {
int joy_count = emscripten_get_num_gamepads();
for (int i = 0; i < joy_count; i++) {
diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h
index 4cdc88f4f9..370322e93d 100644
--- a/platform/javascript/os_javascript.h
+++ b/platform/javascript/os_javascript.h
@@ -93,7 +93,7 @@ private:
static void _close_notification_funcs(const String& p_file,int p_flags);
- void process_joysticks();
+ void process_joypads();
public:
diff --git a/platform/osx/SCsub b/platform/osx/SCsub
index c8e0e17612..00f23687cf 100644
--- a/platform/osx/SCsub
+++ b/platform/osx/SCsub
@@ -9,7 +9,7 @@ files = [
'sem_osx.cpp',
# 'context_gl_osx.cpp',
'dir_access_osx.mm',
- 'joystick_osx.cpp',
+ 'joypad_osx.cpp',
]
env.Program('#bin/godot', files)
diff --git a/platform/osx/joystick_osx.cpp b/platform/osx/joypad_osx.cpp
index 740c349fe1..5d25017aa6 100644
--- a/platform/osx/joystick_osx.cpp
+++ b/platform/osx/joypad_osx.cpp
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* joystick_osx.cpp */
+/* joypad_osx.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -26,14 +26,15 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "joystick_osx.h"
+#include "joypad_osx.h"
+
#include <machine/endian.h>
-#define GODOT_JOY_LOOP_RUN_MODE CFSTR("GodotJoystick")
+#define GODOT_JOY_LOOP_RUN_MODE CFSTR("GodotJoypad")
-static JoystickOSX* self = NULL;
+static JoypadOSX* self = NULL;
-joystick::joystick() {
+joypad::joypad() {
device_ref = NULL;
ff_device = NULL;
ff_axes = NULL;
@@ -56,7 +57,7 @@ joystick::joystick() {
ff_effect.dwSize = sizeof(ff_effect);
}
-void joystick::free() {
+void joypad::free() {
if (device_ref) {
IOHIDDeviceUnscheduleFromRunLoop(device_ref, CFRunLoopGetCurrent(), GODOT_JOY_LOOP_RUN_MODE);
}
@@ -68,7 +69,7 @@ void joystick::free() {
}
}
-bool joystick::has_element(IOHIDElementCookie p_cookie, Vector<rec_element> *p_list) const {
+bool joypad::has_element(IOHIDElementCookie p_cookie, Vector<rec_element> *p_list) const {
for (int i = 0; i < p_list->size(); i++) {
if (p_cookie == p_list->get(i).cookie) {
return true;
@@ -77,7 +78,7 @@ bool joystick::has_element(IOHIDElementCookie p_cookie, Vector<rec_element> *p_l
return false;
}
-int joystick::get_hid_element_state(rec_element *p_element) const {
+int joypad::get_hid_element_state(rec_element *p_element) const {
int value = 0;
if (p_element && p_element->ref) {
IOHIDValueRef valueRef;
@@ -95,7 +96,7 @@ int joystick::get_hid_element_state(rec_element *p_element) const {
}
return value;
}
-void joystick::add_hid_element(IOHIDElementRef p_element) {
+void joypad::add_hid_element(IOHIDElementRef p_element) {
const CFTypeID elementTypeID = p_element ? CFGetTypeID(p_element) : 0;
if (p_element && (elementTypeID == IOHIDElementGetTypeID())) {
@@ -198,26 +199,26 @@ void joystick::add_hid_element(IOHIDElementRef p_element) {
}
static void hid_element_added(const void *p_value, void *p_parameter) {
- joystick *joy = (joystick*) p_parameter;
+ joypad *joy = (joypad*) p_parameter;
joy->add_hid_element((IOHIDElementRef) p_value);
}
-void joystick::add_hid_elements(CFArrayRef p_array) {
+void joypad::add_hid_elements(CFArrayRef p_array) {
CFRange range = { 0, CFArrayGetCount(p_array) };
CFArrayApplyFunction(p_array, range,hid_element_added,this);
}
-static void joystick_removed_callback(void *ctx, IOReturn result, void *sender) {
+static void joypad_removed_callback(void *ctx, IOReturn result, void *sender) {
int id = (intptr_t) ctx;
self->_device_removed(id);
}
-static void joystick_added_callback(void *ctx, IOReturn res, void *sender, IOHIDDeviceRef ioHIDDeviceObject) {
+static void joypad_added_callback(void *ctx, IOReturn res, void *sender, IOHIDDeviceRef ioHIDDeviceObject) {
self->_device_added(res, ioHIDDeviceObject);
}
-static bool is_joystick(IOHIDDeviceRef p_device_ref) {
+static bool is_joypad(IOHIDDeviceRef p_device_ref) {
CFTypeRef refCF = NULL;
int usage_page = 0;
int usage = 0;
@@ -241,32 +242,32 @@ static bool is_joystick(IOHIDDeviceRef p_device_ref) {
return true;
}
-void JoystickOSX::_device_added(IOReturn p_res, IOHIDDeviceRef p_device) {
+void JoypadOSX::_device_added(IOReturn p_res, IOHIDDeviceRef p_device) {
if (p_res != kIOReturnSuccess || have_device(p_device)) {
return;
}
- joystick new_joystick;
- if (is_joystick(p_device)) {
- configure_joystick(p_device, &new_joystick);
+ joypad new_joypad;
+ if (is_joypad(p_device)) {
+ configure_joypad(p_device, &new_joypad);
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
if (IOHIDDeviceGetService != NULL) {
#endif
const io_service_t ioservice = IOHIDDeviceGetService(p_device);
- if ((ioservice) && (FFIsForceFeedback(ioservice) == FF_OK) && new_joystick.config_force_feedback(ioservice)) {
- new_joystick.ffservice = ioservice;
+ if ((ioservice) && (FFIsForceFeedback(ioservice) == FF_OK) && new_joypad.config_force_feedback(ioservice)) {
+ new_joypad.ffservice = ioservice;
}
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
}
#endif
- device_list.push_back(new_joystick);
+ device_list.push_back(new_joypad);
}
- IOHIDDeviceRegisterRemovalCallback(p_device, joystick_removed_callback, (void*) (intptr_t) new_joystick.id);
+ IOHIDDeviceRegisterRemovalCallback(p_device, joypad_removed_callback, (void*) (intptr_t) new_joypad.id);
IOHIDDeviceScheduleWithRunLoop(p_device, CFRunLoopGetCurrent(), GODOT_JOY_LOOP_RUN_MODE);
}
-void JoystickOSX::_device_removed(int p_id) {
+void JoypadOSX::_device_removed(int p_id) {
int device = get_joy_index(p_id);
ERR_FAIL_COND(device == -1);
@@ -289,7 +290,7 @@ static String _hex_str(uint8_t p_byte) {
return ret;
}
-bool JoystickOSX::configure_joystick(IOHIDDeviceRef p_device_ref, joystick* p_joy) {
+bool JoypadOSX::configure_joypad(IOHIDDeviceRef p_device_ref, joypad* p_joy) {
CFTypeRef refCF = NULL;
@@ -302,7 +303,7 @@ bool JoystickOSX::configure_joystick(IOHIDDeviceRef p_device_ref, joystick* p_jo
refCF = IOHIDDeviceGetProperty(p_device_ref, CFSTR(kIOHIDManufacturerKey));
}
if ((!refCF) || (!CFStringGetCString((CFStringRef) refCF, c_name, sizeof (c_name), kCFStringEncodingUTF8))) {
- name = "Unidentified Joystick";
+ name = "Unidentified Joypad";
}
name = c_name;
@@ -345,7 +346,7 @@ bool JoystickOSX::configure_joystick(IOHIDDeviceRef p_device_ref, joystick* p_jo
}
#define FF_ERR() { if (ret != FF_OK) { FFReleaseDevice(ff_device); return false; } }
-bool joystick::config_force_feedback(io_service_t p_service) {
+bool joypad::config_force_feedback(io_service_t p_service) {
HRESULT ret = FFCreateDevice(p_service, &ff_device);
ERR_FAIL_COND_V(ret != FF_OK, false);
@@ -367,7 +368,7 @@ bool joystick::config_force_feedback(io_service_t p_service) {
#undef FF_ERR
#define TEST_FF(ff) (features.supportedEffects & (ff))
-bool joystick::check_ff_features() {
+bool joypad::check_ff_features() {
FFCAPABILITIES features;
HRESULT ret = FFDeviceGetForceFeedbackCapabilities(ff_device, &features);
@@ -432,7 +433,7 @@ static int process_hat_value(int p_min, int p_max, int p_value) {
return hat_value;
}
-void JoystickOSX::poll_joysticks() const {
+void JoypadOSX::poll_joypads() const {
while (CFRunLoopRunInMode(GODOT_JOY_LOOP_RUN_MODE,0,TRUE) == kCFRunLoopRunHandledSource) {
/* no-op. Pending callbacks will fire. */
}
@@ -454,11 +455,11 @@ static const InputDefault::JoyAxis axis_correct(int p_value, int p_min, int p_ma
return jx;
}
-uint32_t JoystickOSX::process_joysticks(uint32_t p_last_id){
- poll_joysticks();
+uint32_t JoypadOSX::process_joypads(uint32_t p_last_id){
+ poll_joypads();
for (int i = 0; i < device_list.size(); i++) {
- joystick &joy = device_list[i];
+ joypad &joy = device_list[i];
for (int j = 0; j < joy.axis_elements.size(); j++) {
rec_element &elem = joy.axis_elements[j];
@@ -482,11 +483,11 @@ uint32_t JoystickOSX::process_joysticks(uint32_t p_last_id){
Vector2 strength = input->get_joy_vibration_strength(joy.id);
float duration = input->get_joy_vibration_duration(joy.id);
if (strength.x == 0 && strength.y == 0) {
- joystick_vibration_stop(joy.id, timestamp);
+ joypad_vibration_stop(joy.id, timestamp);
}
else {
float gain = MAX(strength.x, strength.y);
- joystick_vibration_start(joy.id, gain, duration, timestamp);
+ joypad_vibration_start(joy.id, gain, duration, timestamp);
}
}
}
@@ -494,8 +495,8 @@ uint32_t JoystickOSX::process_joysticks(uint32_t p_last_id){
return p_last_id;
}
-void JoystickOSX::joystick_vibration_start(int p_id, float p_magnitude, float p_duration, uint64_t p_timestamp) {
- joystick *joy = &device_list[get_joy_index(p_id)];
+void JoypadOSX::joypad_vibration_start(int p_id, float p_magnitude, float p_duration, uint64_t p_timestamp) {
+ joypad *joy = &device_list[get_joy_index(p_id)];
joy->ff_timestamp = p_timestamp;
joy->ff_effect.dwDuration = p_duration * FF_SECONDS;
joy->ff_effect.dwGain = p_magnitude * FF_FFNOMINALMAX;
@@ -503,14 +504,14 @@ void JoystickOSX::joystick_vibration_start(int p_id, float p_magnitude, float p_
FFEffectStart(joy->ff_object, 1, 0);
}
-void JoystickOSX::joystick_vibration_stop(int p_id, uint64_t p_timestamp) {
- joystick* joy = &device_list[get_joy_index(p_id)];
+void JoypadOSX::joypad_vibration_stop(int p_id, uint64_t p_timestamp) {
+ joypad* joy = &device_list[get_joy_index(p_id)];
joy->ff_timestamp = p_timestamp;
FFEffectStop(joy->ff_object);
}
-int JoystickOSX::get_free_joy_id() {
- for (int i = 0; i < JOYSTICKS_MAX; i++) {
+int JoypadOSX::get_free_joy_id() {
+ for (int i = 0; i < JOYPADS_MAX; i++) {
if (!attached_devices[i]) {
attached_devices[i] = true;
return i;
@@ -519,14 +520,14 @@ int JoystickOSX::get_free_joy_id() {
return -1;
}
-int JoystickOSX::get_joy_index(int p_id) const {
+int JoypadOSX::get_joy_index(int p_id) const {
for (int i = 0; i < device_list.size(); i++) {
if (device_list[i].id == p_id) return i;
}
return -1;
}
-bool JoystickOSX::have_device(IOHIDDeviceRef p_device) const {
+bool JoypadOSX::have_device(IOHIDDeviceRef p_device) const {
for (int i = 0; i < device_list.size(); i++) {
if (device_list[i].device_ref == p_device) {
return true;
@@ -561,14 +562,14 @@ static CFDictionaryRef create_match_dictionary(const UInt32 page, const UInt32 u
return retval;
}
-void JoystickOSX::config_hid_manager(CFArrayRef p_matching_array) const {
+void JoypadOSX::config_hid_manager(CFArrayRef p_matching_array) const {
CFRunLoopRef runloop = CFRunLoopGetCurrent();
IOReturn ret = IOHIDManagerOpen(hid_manager, kIOHIDOptionsTypeNone);
ERR_FAIL_COND(ret != kIOReturnSuccess);
IOHIDManagerSetDeviceMatchingMultiple(hid_manager, p_matching_array);
- IOHIDManagerRegisterDeviceMatchingCallback(hid_manager, joystick_added_callback, NULL);
+ IOHIDManagerRegisterDeviceMatchingCallback(hid_manager, joypad_added_callback, NULL);
IOHIDManagerScheduleWithRunLoop(hid_manager, runloop, GODOT_JOY_LOOP_RUN_MODE);
while (CFRunLoopRunInMode(GODOT_JOY_LOOP_RUN_MODE,0,TRUE) == kCFRunLoopRunHandledSource) {
@@ -576,12 +577,12 @@ void JoystickOSX::config_hid_manager(CFArrayRef p_matching_array) const {
}
}
-JoystickOSX::JoystickOSX()
+JoypadOSX::JoypadOSX()
{
self = this;
input = (InputDefault*)Input::get_singleton();
- for (int i = 0; i < JOYSTICKS_MAX; i++) {
+ for (int i = 0; i < JOYPADS_MAX; i++) {
attached_devices[i] = false;
}
@@ -609,7 +610,7 @@ JoystickOSX::JoystickOSX()
}
}
-JoystickOSX::~JoystickOSX() {
+JoypadOSX::~JoypadOSX() {
for (int i = 0; i < device_list.size(); i++) {
device_list[i].free();
diff --git a/platform/osx/joystick_osx.h b/platform/osx/joypad_osx.h
index ec745fe5d1..aafd82880d 100644
--- a/platform/osx/joystick_osx.h
+++ b/platform/osx/joypad_osx.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* joystick_osx.h */
+/* joypad_osx.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -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. */
/*************************************************************************/
-#ifndef JOYSTICKOSX_H
-#define JOYSTICKOSX_H
+#ifndef JOYPADOSX_H
+#define JOYPADOSX_H
#ifdef MACOS_10_0_4
#include <IOKit/hidsystem/IOHIDUsageTables.h>
@@ -54,7 +54,7 @@ struct rec_element {
};
};
-struct joystick {
+struct joypad {
IOHIDDeviceRef device_ref;
Vector<rec_element> axis_elements;
@@ -82,44 +82,44 @@ struct joystick {
int get_hid_element_state(rec_element *p_element) const;
void free();
- joystick();
+ joypad();
};
-class JoystickOSX {
+class JoypadOSX {
enum {
- JOYSTICKS_MAX = 16,
+ JOYPADS_MAX = 16,
};
private:
InputDefault *input;
IOHIDManagerRef hid_manager;
- bool attached_devices[JOYSTICKS_MAX];
- Vector<joystick> device_list;
+ bool attached_devices[JOYPADS_MAX];
+ Vector<joypad> device_list;
bool have_device(IOHIDDeviceRef p_device) const;
- bool configure_joystick(IOHIDDeviceRef p_device_ref, joystick *p_joy);
+ bool configure_joypad(IOHIDDeviceRef p_device_ref, joypad *p_joy);
int get_free_joy_id();
int get_joy_index(int p_id) const;
- void poll_joysticks() const;
- void setup_joystick_objects();
+ void poll_joypads() const;
+ void setup_joypad_objects();
void config_hid_manager(CFArrayRef p_matching_array) const;
- void joystick_vibration_start(int p_id, float p_magnitude, float p_duration, uint64_t p_timestamp);
- void joystick_vibration_stop(int p_id, uint64_t p_timestamp);
+ void joypad_vibration_start(int p_id, float p_magnitude, float p_duration, uint64_t p_timestamp);
+ void joypad_vibration_stop(int p_id, uint64_t p_timestamp);
public:
- uint32_t process_joysticks(uint32_t p_last_id);
+ uint32_t process_joypads(uint32_t p_last_id);
void _device_added(IOReturn p_res, IOHIDDeviceRef p_device);
void _device_removed(int p_id);
- JoystickOSX();
- ~JoystickOSX();
+ JoypadOSX();
+ ~JoypadOSX();
};
-#endif // JOYSTICKOSX_H
+#endif // JOYPADOSX_H
diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h
index a547e318c8..fc64c2b867 100644
--- a/platform/osx/os_osx.h
+++ b/platform/osx/os_osx.h
@@ -31,7 +31,7 @@
#include "os/input.h"
-#include "joystick_osx.h"
+#include "joypad_osx.h"
#include "drivers/unix/os_unix.h"
#include "main/input_default.h"
#include "servers/visual_server.h"
@@ -78,7 +78,7 @@ public:
SpatialSound2DServerSW *spatial_sound_2d_server;
InputDefault *input;
- JoystickOSX *joystick_osx;
+ JoypadOSX *joypad_osx;
/* objc */
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index f27eb98764..a66f6abba5 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -1122,7 +1122,7 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
physics_2d_server->init();
input = memnew( InputDefault );
- joystick_osx = memnew( JoystickOSX );
+ joypad_osx = memnew( JoypadOSX );
_ensure_data_dir();
@@ -1165,7 +1165,7 @@ void OS_OSX::finalize() {
spatial_sound_2d_server->finish();
memdelete(spatial_sound_2d_server);
- memdelete(joystick_osx);
+ memdelete(joypad_osx);
memdelete(input);
memdelete(sample_manager);
@@ -1327,8 +1327,8 @@ void OS_OSX::set_icon(const Image& p_icon) {
uint8_t *pixels = [imgrep bitmapData];
int len = img.get_width()*img.get_height();
- 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();
/* Premultiply the alpha channel */
for (int i = 0; i<len ; i++) {
@@ -1738,7 +1738,7 @@ void OS_OSX::run() {
while (!force_quit) {
process_events(); // get rid of pending events
- last_id = joystick_osx->process_joysticks(last_id);
+ last_id = joypad_osx->process_joypads(last_id);
if (Main::iteration()==true)
break;
};
diff --git a/platform/uwp/SCsub b/platform/uwp/SCsub
index 430d4ef9e7..0167ea9e02 100644
--- a/platform/uwp/SCsub
+++ b/platform/uwp/SCsub
@@ -8,7 +8,7 @@ files = [
'#platform/windows/packet_peer_udp_winsock.cpp',
'#platform/windows/stream_peer_winsock.cpp',
'#platform/windows/key_mapping_win.cpp',
- 'joystick_uwp.cpp',
+ 'joypad_uwp.cpp',
'gl_context_egl.cpp',
'app.cpp',
'os_uwp.cpp',
diff --git a/platform/uwp/joystick_uwp.cpp b/platform/uwp/joypad_uwp.cpp
index 8ed6473c37..7f0837d7be 100644
--- a/platform/uwp/joystick_uwp.cpp
+++ b/platform/uwp/joypad_uwp.cpp
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* joystick_uwp.cpp */
+/* joypad_uwp.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -27,20 +27,20 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "joystick_uwp.h"
+#include "joypad_uwp.h"
using namespace Windows::Gaming::Input;
using namespace Windows::Foundation;
-void JoystickUWP::register_events() {
+void JoypadUWP::register_events() {
Gamepad::GamepadAdded +=
- ref new EventHandler<Gamepad^>(this, &JoystickUWP::OnGamepadAdded);
+ ref new EventHandler<Gamepad^>(this, &JoypadUWP::OnGamepadAdded);
Gamepad::GamepadRemoved +=
- ref new EventHandler<Gamepad^>(this, &JoystickUWP::OnGamepadRemoved);
+ ref new EventHandler<Gamepad^>(this, &JoypadUWP::OnGamepadRemoved);
}
-uint32_t JoystickUWP::process_controllers(uint32_t p_last_id) {
+uint32_t JoypadUWP::process_controllers(uint32_t p_last_id) {
for (int i = 0; i < MAX_CONTROLLERS; i++) {
@@ -74,20 +74,20 @@ uint32_t JoystickUWP::process_controllers(uint32_t p_last_id) {
return p_last_id;
}
-JoystickUWP::JoystickUWP() {
+JoypadUWP::JoypadUWP() {
for (int i = 0; i < MAX_CONTROLLERS; i++)
controllers[i].id = i;
}
-JoystickUWP::JoystickUWP(InputDefault * p_input) {
+JoypadUWP::JoypadUWP(InputDefault * p_input) {
input = p_input;
- JoystickUWP();
+ JoypadUWP();
}
-void JoystickUWP::OnGamepadAdded(Platform::Object ^ sender, Windows::Gaming::Input::Gamepad ^ value) {
+void JoypadUWP::OnGamepadAdded(Platform::Object ^ sender, Windows::Gaming::Input::Gamepad ^ value) {
short idx = -1;
@@ -109,7 +109,7 @@ void JoystickUWP::OnGamepadAdded(Platform::Object ^ sender, Windows::Gaming::Inp
input->joy_connection_changed(controllers[idx].id, true, "Xbox Controller", "__UWP_GAMEPAD__");
}
-void JoystickUWP::OnGamepadRemoved(Platform::Object ^ sender, Windows::Gaming::Input::Gamepad ^ value) {
+void JoypadUWP::OnGamepadRemoved(Platform::Object ^ sender, Windows::Gaming::Input::Gamepad ^ value) {
short idx = -1;
@@ -136,7 +136,7 @@ void JoystickUWP::OnGamepadRemoved(Platform::Object ^ sender, Windows::Gaming::I
input->joy_connection_changed(idx, false, "Xbox Controller");
}
-InputDefault::JoyAxis JoystickUWP::axis_correct(double p_val, bool p_negate, bool p_trigger) const {
+InputDefault::JoyAxis JoypadUWP::axis_correct(double p_val, bool p_negate, bool p_trigger) const {
InputDefault::JoyAxis jx;
diff --git a/platform/uwp/joystick_uwp.h b/platform/uwp/joypad_uwp.h
index f854f0b471..90505b409a 100644
--- a/platform/uwp/joystick_uwp.h
+++ b/platform/uwp/joypad_uwp.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* joystick_uwp.h */
+/* joypad_uwp.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -26,20 +26,20 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#ifndef JOYSTICK_UWP_H
-#define JOYSTICK_UWP_H
+#ifndef JOYPAD_UWP_H
+#define JOYPAD_UWP_H
#include "main/input_default.h"
-ref class JoystickUWP sealed {
+ref class JoypadUWP sealed {
internal:
void register_events();
uint32_t process_controllers(uint32_t p_last_id);
- JoystickUWP();
- JoystickUWP(InputDefault* p_input);
+ JoypadUWP();
+ JoypadUWP(InputDefault* p_input);
private:
diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp
index 387cfe579f..34977bc048 100644
--- a/platform/uwp/os_uwp.cpp
+++ b/platform/uwp/os_uwp.cpp
@@ -285,8 +285,8 @@ void OSUWP::initialize(const VideoMode& p_desired,int p_video_driver,int p_audio
input = memnew( InputDefault );
- joystick = ref new JoystickUWP(input);
- joystick->register_events();
+ joypad = ref new JoypadUWP(input);
+ joypad->register_events();
AudioDriverManagerSW::get_driver(p_audio_driver)->set_singleton();
@@ -429,7 +429,7 @@ void OSUWP::finalize() {
physics_2d_server->finish();
memdelete(physics_2d_server);
- joystick = nullptr;
+ joypad = nullptr;
}
void OSUWP::finalize_core() {
@@ -725,7 +725,7 @@ uint64_t OSUWP::get_ticks_usec() const {
void OSUWP::process_events() {
- last_id = joystick->process_controllers(last_id);
+ last_id = joypad->process_controllers(last_id);
process_key_events();
}
diff --git a/platform/uwp/os_uwp.h b/platform/uwp/os_uwp.h
index c50d34aca2..82376dd2f6 100644
--- a/platform/uwp/os_uwp.h
+++ b/platform/uwp/os_uwp.h
@@ -55,7 +55,7 @@
#include <stdio.h>
#include "main/input_default.h"
-#include "joystick_uwp.h"
+#include "joypad_uwp.h"
/**
@author Juan Linietsky <reduzio@gmail.com>
@@ -85,7 +85,7 @@ public:
private:
enum {
- JOYSTICKS_MAX = 8,
+ JOYPADS_MAX = 8,
JOY_AXIS_COUNT = 6,
MAX_JOY_AXIS = 32768, // I've no idea
KEY_EVENT_BUFFER_SIZE=512
@@ -137,7 +137,7 @@ private:
InputDefault *input;
- JoystickUWP^ joystick;
+ JoypadUWP^ joypad;
Windows::System::Display::DisplayRequest^ display_request;
diff --git a/platform/windows/SCsub b/platform/windows/SCsub
index 32c23b906a..ae8c07384f 100644
--- a/platform/windows/SCsub
+++ b/platform/windows/SCsub
@@ -11,7 +11,7 @@ common_win = [
"tcp_server_winsock.cpp",
"packet_peer_udp_winsock.cpp",
"stream_peer_winsock.cpp",
- "joystick.cpp",
+ "joypad.cpp",
]
restarget = "godot_res" + env["OBJSUFFIX"]
diff --git a/platform/windows/context_gl_win.cpp b/platform/windows/context_gl_win.cpp
index 136ac310f6..6b60ade5f0 100644
--- a/platform/windows/context_gl_win.cpp
+++ b/platform/windows/context_gl_win.cpp
@@ -40,7 +40,6 @@
//
//
-#define WINVER 0x0500
#include "context_gl_win.h"
//#include "drivers/opengl/glwrapper.h"
diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index 28030afa82..2262fae031 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -207,6 +207,10 @@ def build_res_file(target, source, env):
def configure(env):
env.Append(CPPPATH=['#platform/windows'])
+
+ # Targeted Windows version: Vista (and later)
+ env.Append(CPPFLAGS=['-D_WIN32_WINNT=0x0600'])
+
env['is_mingw'] = False
if (os.name == "nt" and os.getenv("VCINSTALLDIR")):
# build using visual studio
diff --git a/platform/windows/joystick.cpp b/platform/windows/joypad.cpp
index 3fdf20a472..6ea23ebb28 100644
--- a/platform/windows/joystick.cpp
+++ b/platform/windows/joypad.cpp
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* joystick.cpp */
+/* joypad.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -26,8 +26,7 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-//author: Andreas Haas <hondres, liugam3@gmail.com>
-#include "joystick.h"
+#include "joypad.h"
#include <iostream>
#include <wbemidl.h>
#include <oleauto.h>
@@ -39,15 +38,15 @@
DWORD WINAPI _xinput_get_state(DWORD dwUserIndex, XINPUT_STATE* pState) { return ERROR_DEVICE_NOT_CONNECTED; }
DWORD WINAPI _xinput_set_state(DWORD dwUserIndex, XINPUT_VIBRATION* pVibration) { return ERROR_DEVICE_NOT_CONNECTED; }
-joystick_windows::joystick_windows() {
+JoypadWindows::JoypadWindows() {
}
-joystick_windows::joystick_windows(InputDefault* _input, HWND* hwnd) {
+JoypadWindows::JoypadWindows(InputDefault* _input, HWND* hwnd) {
input = _input;
hWnd = hwnd;
- joystick_count = 0;
+ joypad_count = 0;
dinput = NULL;
xinput_dll = NULL;
xinput_get_state = NULL;
@@ -55,8 +54,8 @@ joystick_windows::joystick_windows(InputDefault* _input, HWND* hwnd) {
load_xinput();
- for (int i = 0; i < JOYSTICKS_MAX; i++)
- attached_joysticks[i] = false;
+ for (int i = 0; i < JOYPADS_MAX; i++)
+ attached_joypads[i] = false;
HRESULT result;
@@ -64,35 +63,35 @@ joystick_windows::joystick_windows(InputDefault* _input, HWND* hwnd) {
if (FAILED(result)) {
printf("failed init DINPUT: %ld\n", result);
}
- probe_joysticks();
+ probe_joypads();
}
-joystick_windows::~joystick_windows() {
+JoypadWindows::~JoypadWindows() {
- close_joystick();
+ close_joypad();
dinput->Release();
unload_xinput();
}
-bool joystick_windows::have_device(const GUID &p_guid) {
+bool JoypadWindows::have_device(const GUID &p_guid) {
- for (int i = 0; i < JOYSTICKS_MAX; i++) {
+ for (int i = 0; i < JOYPADS_MAX; i++) {
- if (d_joysticks[i].guid == p_guid) {
+ if (d_joypads[i].guid == p_guid) {
- d_joysticks[i].confirmed = true;
+ d_joypads[i].confirmed = true;
return true;
}
}
return false;
}
-int joystick_windows::check_free_joy_slot() const {
+int JoypadWindows::check_free_joy_slot() const {
- for (int i = 0; i < JOYSTICKS_MAX; i++) {
+ for (int i = 0; i < JOYPADS_MAX; i++) {
- if (!attached_joysticks[i])
+ if (!attached_joypads[i])
return i;
}
return -1;
@@ -100,7 +99,7 @@ int joystick_windows::check_free_joy_slot() const {
// adapted from SDL2, works a lot better than the MSDN version
-bool joystick_windows::is_xinput_device(const GUID *p_guid) {
+bool JoypadWindows::is_xinput_device(const GUID *p_guid) {
static GUID IID_ValveStreamingGamepad = { MAKELONG(0x28DE, 0x11FF), 0x0000, 0x0000, { 0x00, 0x00, 0x50, 0x49, 0x44, 0x56, 0x49, 0x44 } };
static GUID IID_X360WiredGamepad = { MAKELONG(0x045E, 0x02A1), 0x0000, 0x0000, { 0x00, 0x00, 0x50, 0x49, 0x44, 0x56, 0x49, 0x44 } };
@@ -144,7 +143,7 @@ bool joystick_windows::is_xinput_device(const GUID *p_guid) {
return false;
}
-bool joystick_windows::setup_dinput_joystick(const DIDEVICEINSTANCE* instance) {
+bool JoypadWindows::setup_dinput_joypad(const DIDEVICEINSTANCE* instance) {
HRESULT hr;
int num = check_free_joy_slot();
@@ -152,8 +151,8 @@ bool joystick_windows::setup_dinput_joystick(const DIDEVICEINSTANCE* instance) {
if (have_device(instance->guidInstance) || num == -1)
return false;
- d_joysticks[joystick_count] = dinput_gamepad();
- dinput_gamepad* joy = &d_joysticks[joystick_count];
+ d_joypads[joypad_count] = dinput_gamepad();
+ dinput_gamepad* joy = &d_joypads[joypad_count];
const DWORD devtype = (instance->dwDevType & 0xFF);
@@ -177,7 +176,7 @@ bool joystick_windows::setup_dinput_joystick(const DIDEVICEINSTANCE* instance) {
guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3],
guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);
- id_to_change = joystick_count;
+ id_to_change = joypad_count;
joy->di_joy->SetDataFormat(&c_dfDIJoystick2);
joy->di_joy->SetCooperativeLevel(*hWnd, DISCL_FOREGROUND);
@@ -188,13 +187,13 @@ bool joystick_windows::setup_dinput_joystick(const DIDEVICEINSTANCE* instance) {
input->joy_connection_changed(num, true, instance->tszProductName, uid);
joy->attached = true;
joy->id = num;
- attached_joysticks[num] = true;
+ attached_joypads[num] = true;
joy->confirmed = true;
- joystick_count++;
+ joypad_count++;
return true;
}
-void joystick_windows::setup_joystick_object(const DIDEVICEOBJECTINSTANCE *ob, int p_joy_id) {
+void JoypadWindows::setup_joypad_object(const DIDEVICEOBJECTINSTANCE *ob, int p_joy_id) {
if (ob->dwType & DIDFT_AXIS) {
@@ -225,7 +224,7 @@ void joystick_windows::setup_joystick_object(const DIDEVICEOBJECTINSTANCE *ob, i
prop_range.lMin = -MAX_JOY_AXIS;
prop_range.lMax = +MAX_JOY_AXIS;
- dinput_gamepad &joy = d_joysticks[p_joy_id];
+ dinput_gamepad &joy = d_joypads[p_joy_id];
res = IDirectInputDevice8_SetProperty(joy.di_joy, DIPROP_RANGE, &prop_range.diph);
@@ -246,100 +245,100 @@ void joystick_windows::setup_joystick_object(const DIDEVICEOBJECTINSTANCE *ob, i
}
}
-BOOL CALLBACK joystick_windows::enumCallback(const DIDEVICEINSTANCE* instance, void* pContext) {
+BOOL CALLBACK JoypadWindows::enumCallback(const DIDEVICEINSTANCE* instance, void* pContext) {
- joystick_windows* self = (joystick_windows*)pContext;
+ JoypadWindows* self = (JoypadWindows*)pContext;
if (self->is_xinput_device(&instance->guidProduct)) {;
return DIENUM_CONTINUE;
}
- self->setup_dinput_joystick(instance);
+ self->setup_dinput_joypad(instance);
return DIENUM_CONTINUE;
}
-BOOL CALLBACK joystick_windows::objectsCallback(const DIDEVICEOBJECTINSTANCE *instance, void *context) {
+BOOL CALLBACK JoypadWindows::objectsCallback(const DIDEVICEOBJECTINSTANCE *instance, void *context) {
- joystick_windows* self = (joystick_windows*)context;
- self->setup_joystick_object(instance, self->id_to_change);
+ JoypadWindows* self = (JoypadWindows*)context;
+ self->setup_joypad_object(instance, self->id_to_change);
return DIENUM_CONTINUE;
}
-void joystick_windows::close_joystick(int id) {
+void JoypadWindows::close_joypad(int id) {
if (id == -1) {
- for (int i = 0; i < JOYSTICKS_MAX; i++) {
+ for (int i = 0; i < JOYPADS_MAX; i++) {
- close_joystick(i);
+ close_joypad(i);
}
return;
}
- if (!d_joysticks[id].attached) return;
+ if (!d_joypads[id].attached) return;
- d_joysticks[id].di_joy->Unacquire();
- d_joysticks[id].di_joy->Release();
- d_joysticks[id].attached = false;
- attached_joysticks[d_joysticks[id].id] = false;
- d_joysticks[id].guid.Data1 = d_joysticks[id].guid.Data2 = d_joysticks[id].guid.Data3 = 0;
- input->joy_connection_changed(d_joysticks[id].id, false, "");
- joystick_count--;
+ d_joypads[id].di_joy->Unacquire();
+ d_joypads[id].di_joy->Release();
+ d_joypads[id].attached = false;
+ attached_joypads[d_joypads[id].id] = false;
+ d_joypads[id].guid.Data1 = d_joypads[id].guid.Data2 = d_joypads[id].guid.Data3 = 0;
+ input->joy_connection_changed(d_joypads[id].id, false, "");
+ joypad_count--;
}
-void joystick_windows::probe_joysticks() {
+void JoypadWindows::probe_joypads() {
DWORD dwResult;
for (DWORD i = 0; i < XUSER_MAX_COUNT; i++) {
- ZeroMemory(&x_joysticks[i].state, sizeof(XINPUT_STATE));
+ ZeroMemory(&x_joypads[i].state, sizeof(XINPUT_STATE));
- dwResult = xinput_get_state(i, &x_joysticks[i].state);
+ dwResult = xinput_get_state(i, &x_joypads[i].state);
if ( dwResult == ERROR_SUCCESS) {
int id = check_free_joy_slot();
- if (id != -1 && !x_joysticks[i].attached) {
-
- x_joysticks[i].attached = true;
- x_joysticks[i].id = id;
- x_joysticks[i].ff_timestamp = 0;
- x_joysticks[i].ff_end_timestamp = 0;
- x_joysticks[i].vibrating = false;
- attached_joysticks[id] = true;
+ if (id != -1 && !x_joypads[i].attached) {
+
+ x_joypads[i].attached = true;
+ x_joypads[i].id = id;
+ x_joypads[i].ff_timestamp = 0;
+ x_joypads[i].ff_end_timestamp = 0;
+ x_joypads[i].vibrating = false;
+ attached_joypads[id] = true;
input->joy_connection_changed(id, true, "XInput Gamepad","__XINPUT_DEVICE__");
}
}
- else if (x_joysticks[i].attached) {
+ else if (x_joypads[i].attached) {
- x_joysticks[i].attached = false;
- attached_joysticks[x_joysticks[i].id] = false;
- input->joy_connection_changed(x_joysticks[i].id, false, "");
+ x_joypads[i].attached = false;
+ attached_joypads[x_joypads[i].id] = false;
+ input->joy_connection_changed(x_joypads[i].id, false, "");
}
}
- for (int i = 0; i < joystick_count; i++) {
+ for (int i = 0; i < joypad_count; i++) {
- d_joysticks[i].confirmed = false;
+ d_joypads[i].confirmed = false;
}
dinput->EnumDevices(DI8DEVCLASS_GAMECTRL, enumCallback, this, DIEDFL_ATTACHEDONLY);
- for (int i = 0; i < joystick_count; i++) {
+ for (int i = 0; i < joypad_count; i++) {
- if (!d_joysticks[i].confirmed) {
+ if (!d_joypads[i].confirmed) {
- close_joystick(i);
+ close_joypad(i);
}
}
}
-unsigned int joystick_windows::process_joysticks(unsigned int p_last_id) {
+unsigned int JoypadWindows::process_joypads(unsigned int p_last_id) {
HRESULT hr;
for (int i = 0; i < XUSER_MAX_COUNT; i++) {
- xinput_gamepad &joy = x_joysticks[i];
+ xinput_gamepad &joy = x_joypads[i];
if (!joy.attached) {
continue;
}
@@ -368,20 +367,20 @@ unsigned int joystick_windows::process_joysticks(unsigned int p_last_id) {
Vector2 strength = input->get_joy_vibration_strength(joy.id);
float duration = input->get_joy_vibration_duration(joy.id);
if (strength.x == 0 && strength.y == 0) {
- joystick_vibration_stop_xinput(i, timestamp);
+ joypad_vibration_stop_xinput(i, timestamp);
} else {
- joystick_vibration_start_xinput(i, strength.x, strength.y, duration, timestamp);
+ joypad_vibration_start_xinput(i, strength.x, strength.y, duration, timestamp);
}
} else if (joy.vibrating && joy.ff_end_timestamp != 0) {
uint64_t current_time = OS::get_singleton()->get_ticks_usec();
if (current_time >= joy.ff_end_timestamp)
- joystick_vibration_stop_xinput(i, current_time);
+ joypad_vibration_stop_xinput(i, current_time);
}
}
- for (int i = 0; i < JOYSTICKS_MAX; i++) {
+ for (int i = 0; i < JOYPADS_MAX; i++) {
- dinput_gamepad* joy = &d_joysticks[i];
+ dinput_gamepad* joy = &d_joypads[i];
if (!joy->attached)
continue;
@@ -438,7 +437,7 @@ unsigned int joystick_windows::process_joysticks(unsigned int p_last_id) {
return p_last_id;
}
-unsigned int joystick_windows::post_hat(unsigned int p_last_id, int p_device, DWORD p_dpad) {
+unsigned int JoypadWindows::post_hat(unsigned int p_last_id, int p_device, DWORD p_dpad) {
int dpad_val = 0;
@@ -487,7 +486,7 @@ unsigned int joystick_windows::post_hat(unsigned int p_last_id, int p_device, DW
return input->joy_hat(p_last_id, p_device, dpad_val);
};
-InputDefault::JoyAxis joystick_windows::axis_correct(int p_val, bool p_xinput, bool p_trigger, bool p_negate) const {
+InputDefault::JoyAxis JoypadWindows::axis_correct(int p_val, bool p_xinput, bool p_trigger, bool p_negate) const {
InputDefault::JoyAxis jx;
if (Math::abs(p_val) < MIN_JOY_AXIS) {
@@ -519,8 +518,8 @@ InputDefault::JoyAxis joystick_windows::axis_correct(int p_val, bool p_xinput, b
return jx;
}
-void joystick_windows::joystick_vibration_start_xinput(int p_device, float p_weak_magnitude, float p_strong_magnitude, float p_duration, uint64_t p_timestamp) {
- xinput_gamepad &joy = x_joysticks[p_device];
+void JoypadWindows::joypad_vibration_start_xinput(int p_device, float p_weak_magnitude, float p_strong_magnitude, float p_duration, uint64_t p_timestamp) {
+ xinput_gamepad &joy = x_joypads[p_device];
if (joy.attached) {
XINPUT_VIBRATION effect;
effect.wLeftMotorSpeed = (65535 * p_strong_magnitude);
@@ -533,8 +532,8 @@ void joystick_windows::joystick_vibration_start_xinput(int p_device, float p_wea
}
}
-void joystick_windows::joystick_vibration_stop_xinput(int p_device, uint64_t p_timestamp) {
- xinput_gamepad &joy = x_joysticks[p_device];
+void JoypadWindows::joypad_vibration_stop_xinput(int p_device, uint64_t p_timestamp) {
+ xinput_gamepad &joy = x_joypads[p_device];
if (joy.attached) {
XINPUT_VIBRATION effect;
effect.wLeftMotorSpeed = 0;
@@ -547,7 +546,7 @@ void joystick_windows::joystick_vibration_stop_xinput(int p_device, uint64_t p_t
}
-void joystick_windows::load_xinput() {
+void JoypadWindows::load_xinput() {
xinput_get_state = &_xinput_get_state;
xinput_set_state = &_xinput_set_state;
@@ -576,7 +575,7 @@ void joystick_windows::load_xinput() {
xinput_set_state = set_func;
}
-void joystick_windows::unload_xinput() {
+void JoypadWindows::unload_xinput() {
if (xinput_dll) {
diff --git a/platform/windows/joystick.h b/platform/windows/joypad.h
index 6de05bf108..63eee8c015 100644
--- a/platform/windows/joystick.h
+++ b/platform/windows/joypad.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* joystick.h */
+/* joypad.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -26,9 +26,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-//author: Andreas Haas <hondres, liugam3@gmail.com>
-#ifndef JOYSTICK_H
-#define JOYSTICK_H
+#ifndef JOYPAD_H
+#define JOYPAD_H
#include "os_windows.h"
#define DIRECTINPUT_VERSION 0x0800
@@ -48,19 +47,19 @@ if(x != NULL) \
#define XUSER_MAX_COUNT 4
#endif
-class joystick_windows
+class JoypadWindows
{
public:
- joystick_windows();
- joystick_windows(InputDefault* _input, HWND* hwnd);
- ~joystick_windows();
+ JoypadWindows();
+ JoypadWindows(InputDefault* _input, HWND* hwnd);
+ ~JoypadWindows();
- void probe_joysticks();
- unsigned int process_joysticks(unsigned int p_last_id);
+ void probe_joypads();
+ unsigned int process_joypads(unsigned int p_last_id);
private:
enum {
- JOYSTICKS_MAX = 16,
+ JOYPADS_MAX = 16,
JOY_AXIS_COUNT = 6,
MIN_JOY_AXIS = 10,
MAX_JOY_AXIS = 32768,
@@ -120,16 +119,16 @@ private:
InputDefault* input;
int id_to_change;
- int joystick_count;
- bool attached_joysticks[JOYSTICKS_MAX];
- dinput_gamepad d_joysticks[JOYSTICKS_MAX];
- xinput_gamepad x_joysticks[XUSER_MAX_COUNT];
+ int joypad_count;
+ bool attached_joypads[JOYPADS_MAX];
+ dinput_gamepad d_joypads[JOYPADS_MAX];
+ xinput_gamepad x_joypads[XUSER_MAX_COUNT];
static BOOL CALLBACK enumCallback(const DIDEVICEINSTANCE* p_instance, void* p_context);
static BOOL CALLBACK objectsCallback(const DIDEVICEOBJECTINSTANCE* instance, void* context);
- void setup_joystick_object(const DIDEVICEOBJECTINSTANCE* ob, int p_joy_id);
- void close_joystick(int id = -1);
+ void setup_joypad_object(const DIDEVICEOBJECTINSTANCE* ob, int p_joy_id);
+ void close_joypad(int id = -1);
void load_xinput();
void unload_xinput();
@@ -138,9 +137,9 @@ private:
bool have_device(const GUID &p_guid);
bool is_xinput_device(const GUID* p_guid);
- bool setup_dinput_joystick(const DIDEVICEINSTANCE* instance);
- void joystick_vibration_start_xinput(int p_device, float p_weak_magnitude, float p_strong_magnitude, float p_duration, uint64_t p_timestamp);
- void joystick_vibration_stop_xinput(int p_device, uint64_t p_timestamp);
+ bool setup_dinput_joypad(const DIDEVICEINSTANCE* instance);
+ void joypad_vibration_start_xinput(int p_device, float p_weak_magnitude, float p_strong_magnitude, float p_duration, uint64_t p_timestamp);
+ void joypad_vibration_stop_xinput(int p_device, uint64_t p_timestamp);
InputDefault::JoyAxis axis_correct(int p_val, bool p_xinput = false, bool p_trigger = false, bool p_negate = false) const;
XInputGetState_t xinput_get_state;
diff --git a/platform/windows/key_mapping_win.cpp b/platform/windows/key_mapping_win.cpp
index 00a0ca79c7..9ab222e9ee 100644
--- a/platform/windows/key_mapping_win.cpp
+++ b/platform/windows/key_mapping_win.cpp
@@ -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. */
/*************************************************************************/
-#define WINVER 0x0500
#include "key_mapping_win.h"
+
#include <stdio.h>
struct _WinTranslatePair {
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 97ed8d7ae0..6256cb58e0 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -30,10 +30,11 @@
#include "os_windows.h"
#include "drivers/gles3/rasterizer_gles3.h"
-#include "os/memory_pool_dynamic_static.h"
+
#include "drivers/windows/thread_windows.h"
#include "drivers/windows/semaphore_windows.h"
#include "drivers/windows/mutex_windows.h"
+#include "drivers/windows/rw_lock_windows.h"
#include "main/main.h"
#include "drivers/windows/file_access_windows.h"
#include "drivers/windows/dir_access_windows.h"
@@ -47,10 +48,10 @@
#include "packet_peer_udp_winsock.h"
#include "stream_peer_winsock.h"
#include "lang_table.h"
-#include "os/memory_pool_dynamic_prealloc.h"
+
#include "globals.h"
#include "io/marshalls.h"
-#include "joystick.h"
+#include "joypad.h"
#include "shlobj.h"
#include <regstr.h>
@@ -166,7 +167,6 @@ const char * OS_Windows::get_audio_driver_name(int p_driver) const {
return AudioDriverManagerSW::get_driver(p_driver)->get_name();
}
-static MemoryPoolDynamic *mempool_dynamic=NULL;
void OS_Windows::initialize_core() {
@@ -181,6 +181,7 @@ void OS_Windows::initialize_core() {
ThreadWindows::make_default();
SemaphoreWindows::make_default();
MutexWindows::make_default();
+ RWLockWindows::make_default();
FileAccess::make_default<FileAccessWindows>(FileAccess::ACCESS_RESOURCES);
FileAccess::make_default<FileAccessWindows>(FileAccess::ACCESS_USERDATA);
@@ -194,14 +195,6 @@ void OS_Windows::initialize_core() {
StreamPeerWinsock::make_default();
PacketPeerUDPWinsock::make_default();
-#if 1
- mempool_dynamic = memnew( MemoryPoolDynamicStatic );
-#else
-#define DYNPOOL_SIZE 4*1024*1024
- void * buffer = malloc( DYNPOOL_SIZE );
- mempool_dynamic = memnew( MemoryPoolDynamicPrealloc(buffer,DYNPOOL_SIZE) );
-
-#endif
// We need to know how often the clock is updated
if( !QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_second) )
@@ -684,7 +677,7 @@ LRESULT OS_Windows::WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam) {
print_line("input lang change");
} break;
- #if WINVER >= 0x0700 // for windows 7
+ #if WINVER >= 0x0601 // for windows 7
case WM_TOUCH: {
BOOL bHandled = FALSE;
@@ -721,7 +714,7 @@ LRESULT OS_Windows::WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam) {
#endif
case WM_DEVICECHANGE: {
- joystick->probe_joysticks();
+ joypad->probe_joypads();
} break;
case WM_SETCURSOR: {
@@ -1127,7 +1120,7 @@ void OS_Windows::initialize(const VideoMode& p_desired,int p_video_driver,int p_
visual_server->init();
input = memnew( InputDefault );
- joystick = memnew (joystick_windows(input, &hWnd));
+ joypad = memnew (JoypadWindows(input, &hWnd));
AudioDriverManagerSW::get_driver(p_audio_driver)->set_singleton();
@@ -1260,7 +1253,7 @@ void OS_Windows::finalize() {
main_loop=NULL;
- memdelete(joystick);
+ memdelete(joypad);
memdelete(input);
visual_server->finish();
@@ -1303,9 +1296,6 @@ void OS_Windows::finalize_core() {
memdelete(process_map);
- if (mempool_dynamic)
- memdelete( mempool_dynamic );
-
TCPServerWinsock::cleanup();
StreamPeerWinsock::cleanup();
@@ -1938,7 +1928,7 @@ void OS_Windows::process_events() {
MSG msg;
- last_id = joystick->process_joysticks(last_id);
+ last_id = joypad->process_joypads(last_id);
while(PeekMessageW(&msg,NULL,0,0,PM_REMOVE)) {
@@ -2126,7 +2116,7 @@ void OS_Windows::set_icon(const Image& p_icon) {
encode_uint32(0,&icon_bmp[36]);
uint8_t *wr=&icon_bmp[40];
- DVector<uint8_t>::Read r= icon.get_data().read();
+ PoolVector<uint8_t>::Read r= icon.get_data().read();
for(int i=0;i<h;i++) {
diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h
index 19367c758b..7ca89e6366 100644
--- a/platform/windows/os_windows.h
+++ b/platform/windows/os_windows.h
@@ -29,8 +29,6 @@
#ifndef OS_WINDOWS_H
#define OS_WINDOWS_H
-#define WINVER 0x0600
-
#include "os/input.h"
#include "os/os.h"
#include "context_gl_win.h"
@@ -63,7 +61,7 @@
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
-class joystick_windows;
+class JoypadWindows;
class OS_Windows : public OS {
enum {
@@ -135,7 +133,7 @@ class OS_Windows : public OS {
CursorShape cursor_shape;
InputDefault *input;
- joystick_windows *joystick;
+ JoypadWindows *joypad;
#ifdef RTAUDIO_ENABLED
AudioDriverRtAudio driver_rtaudio;
diff --git a/platform/x11/SCsub b/platform/x11/SCsub
index 0defd4f025..4ae8ac07f7 100644
--- a/platform/x11/SCsub
+++ b/platform/x11/SCsub
@@ -7,7 +7,7 @@ common_x11 = [\
"context_gl_x11.cpp",\
"os_x11.cpp",\
"key_mapping_x11.cpp",\
- "joystick_linux.cpp",\
+ "joypad_linux.cpp",\
]
env.Program('#bin/godot', ['godot_x11.cpp'] + common_x11)
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 0169abf7fd..b5f6359d21 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -139,6 +139,13 @@ def configure(env):
if (env['builtin_libwebp'] == 'no'):
env.ParseConfig('pkg-config libwebp --cflags --libs')
+ # freetype depends on libpng and zlib, so bundling one of them while keeping others
+ # as shared libraries leads to weird issues
+ if (env['builtin_freetype'] == 'yes' or env['builtin_libpng'] == 'yes' or env['builtin_zlib'] == 'yes'):
+ env['builtin_freetype'] = 'yes'
+ env['builtin_libpng'] = 'yes'
+ env['builtin_zlib'] = 'yes'
+
if (env['builtin_freetype'] == 'no'):
env.ParseConfig('pkg-config freetype2 --cflags --libs')
@@ -203,10 +210,14 @@ def configure(env):
else:
print("PulseAudio development libraries not found, disabling driver")
+ if (env['builtin_zlib'] == 'no'):
+ env.ParseConfig('pkg-config zlib --cflags --libs')
+
env.Append(CPPFLAGS=['-DX11_ENABLED', '-DUNIX_ENABLED', '-DGLES2_ENABLED', '-DGLES_OVER_GL'])
- env.Append(LIBS=['GL', 'pthread', 'z'])
+ env.Append(LIBS=['GL', 'pthread'])
+
if (platform.system() == "Linux"):
- env.Append(LIBS='dl')
+ env.Append(LIBS=['dl'])
# env.Append(CPPFLAGS=['-DMPC_FIXED_POINT'])
# host compiler is default..
diff --git a/platform/x11/joystick_linux.cpp b/platform/x11/joypad_linux.cpp
index d101a725ad..362999661e 100644
--- a/platform/x11/joystick_linux.cpp
+++ b/platform/x11/joypad_linux.cpp
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* joystick_linux.cpp */
+/* joypad_linux.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -27,10 +27,9 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-//author: Andreas Haas <hondres, liugam3@gmail.com>
#ifdef JOYDEV_ENABLED
-#include "joystick_linux.h"
+#include "joypad_linux.h"
#include <linux/input.h>
#include <unistd.h>
@@ -49,7 +48,7 @@
static const char* ignore_str = "/dev/input/js";
#endif
-joystick_linux::Joystick::Joystick() {
+JoypadLinux::Joypad::Joypad() {
fd = -1;
dpad = 0;
devpath = "";
@@ -58,7 +57,7 @@ joystick_linux::Joystick::Joystick() {
}
}
-joystick_linux::Joystick::~Joystick() {
+JoypadLinux::Joypad::~Joypad() {
for (int i = 0; i < MAX_ABS; i++) {
if (abs_info[i]) {
@@ -67,7 +66,7 @@ joystick_linux::Joystick::~Joystick() {
}
}
-void joystick_linux::Joystick::reset() {
+void JoypadLinux::Joypad::reset() {
dpad = 0;
fd = -1;
@@ -80,7 +79,7 @@ void joystick_linux::Joystick::reset() {
}
}
-joystick_linux::joystick_linux(InputDefault *in)
+JoypadLinux::JoypadLinux(InputDefault *in)
{
exit_udev = false;
input = in;
@@ -88,37 +87,37 @@ joystick_linux::joystick_linux(InputDefault *in)
joy_thread = Thread::create(joy_thread_func, this);
}
-joystick_linux::~joystick_linux() {
+JoypadLinux::~JoypadLinux() {
exit_udev = true;
Thread::wait_to_finish(joy_thread);
memdelete(joy_thread);
memdelete(joy_mutex);
- close_joystick();
+ close_joypad();
}
-void joystick_linux::joy_thread_func(void *p_user) {
+void JoypadLinux::joy_thread_func(void *p_user) {
if (p_user) {
- joystick_linux* joy = (joystick_linux*) p_user;
- joy->run_joystick_thread();
+ JoypadLinux* joy = (JoypadLinux*) p_user;
+ joy->run_joypad_thread();
}
return;
}
-void joystick_linux::run_joystick_thread() {
+void JoypadLinux::run_joypad_thread() {
#ifdef UDEV_ENABLED
udev *_udev = udev_new();
ERR_FAIL_COND(!_udev);
- enumerate_joysticks(_udev);
- monitor_joysticks(_udev);
+ enumerate_joypads(_udev);
+ monitor_joypads(_udev);
udev_unref(_udev);
#else
- monitor_joysticks();
+ monitor_joypads();
#endif
}
#ifdef UDEV_ENABLED
-void joystick_linux::enumerate_joysticks(udev *p_udev) {
+void JoypadLinux::enumerate_joypads(udev *p_udev) {
udev_enumerate *enumerate;
udev_list_entry *devices, *dev_list_entry;
@@ -126,7 +125,7 @@ void joystick_linux::enumerate_joysticks(udev *p_udev) {
enumerate = udev_enumerate_new(p_udev);
udev_enumerate_add_match_subsystem(enumerate,"input");
- udev_enumerate_add_match_property(enumerate, "ID_INPUT_JOYSTICK", "1");
+ udev_enumerate_add_match_property(enumerate, "ID_INPUT_JOYPAD", "1");
udev_enumerate_scan_devices(enumerate);
devices = udev_enumerate_get_list_entry(enumerate);
@@ -141,7 +140,7 @@ void joystick_linux::enumerate_joysticks(udev *p_udev) {
String devnode_str = devnode;
if (devnode_str.find(ignore_str) == -1) {
joy_mutex->lock();
- open_joystick(devnode);
+ open_joypad(devnode);
joy_mutex->unlock();
}
}
@@ -150,7 +149,7 @@ void joystick_linux::enumerate_joysticks(udev *p_udev) {
udev_enumerate_unref(enumerate);
}
-void joystick_linux::monitor_joysticks(udev *p_udev) {
+void JoypadLinux::monitor_joypads(udev *p_udev) {
udev_device *dev = NULL;
udev_monitor *mon = udev_monitor_new_from_netlink(p_udev, "udev");
@@ -188,9 +187,9 @@ void joystick_linux::monitor_joysticks(udev *p_udev) {
if (devnode_str.find(ignore_str) == -1) {
if (action == "add")
- open_joystick(devnode);
+ open_joypad(devnode);
else if (String(action) == "remove")
- close_joystick(get_joy_from_path(devnode));
+ close_joypad(get_joy_from_path(devnode));
}
}
@@ -204,7 +203,7 @@ void joystick_linux::monitor_joysticks(udev *p_udev) {
}
#endif
-void joystick_linux::monitor_joysticks() {
+void JoypadLinux::monitor_joypads() {
while (!exit_udev) {
joy_mutex->lock();
@@ -212,7 +211,7 @@ void joystick_linux::monitor_joysticks() {
char fname[64];
sprintf(fname, "/dev/input/event%d", i);
if (attached_devices.find(fname) == -1) {
- open_joystick(fname);
+ open_joypad(fname);
}
}
joy_mutex->unlock();
@@ -220,37 +219,37 @@ void joystick_linux::monitor_joysticks() {
}
}
-int joystick_linux::get_free_joy_slot() const {
+int JoypadLinux::get_free_joy_slot() const {
- for (int i = 0; i < JOYSTICKS_MAX; i++) {
+ for (int i = 0; i < JOYPADS_MAX; i++) {
- if (joysticks[i].fd == -1) return i;
+ if (joypads[i].fd == -1) return i;
}
return -1;
}
-int joystick_linux::get_joy_from_path(String p_path) const {
+int JoypadLinux::get_joy_from_path(String p_path) const {
- for (int i = 0; i < JOYSTICKS_MAX; i++) {
+ for (int i = 0; i < JOYPADS_MAX; i++) {
- if (joysticks[i].devpath == p_path) {
+ if (joypads[i].devpath == p_path) {
return i;
}
}
return -2;
}
-void joystick_linux::close_joystick(int p_id) {
+void JoypadLinux::close_joypad(int p_id) {
if (p_id == -1) {
- for (int i=0; i<JOYSTICKS_MAX; i++) {
+ for (int i=0; i<JOYPADS_MAX; i++) {
- close_joystick(i);
+ close_joypad(i);
};
return;
}
else if (p_id < 0) return;
- Joystick &joy = joysticks[p_id];
+ Joypad &joy = joypads[p_id];
if (joy.fd != -1) {
@@ -273,9 +272,9 @@ static String _hex_str(uint8_t p_byte) {
return ret;
}
-void joystick_linux::setup_joystick_properties(int p_id) {
+void JoypadLinux::setup_joypad_properties(int p_id) {
- Joystick* joy = &joysticks[p_id];
+ Joypad* joy = &joypads[p_id];
unsigned long keybit[NBITS(KEY_MAX)] = { 0 };
unsigned long absbit[NBITS(ABS_MAX)] = { 0 };
@@ -328,7 +327,7 @@ void joystick_linux::setup_joystick_properties(int p_id) {
}
}
-void joystick_linux::open_joystick(const char *p_path) {
+void JoypadLinux::open_joypad(const char *p_path) {
int joy_num = get_free_joy_slot();
int fd = open(p_path, O_RDWR | O_NONBLOCK);
@@ -349,7 +348,7 @@ void joystick_linux::open_joystick(const char *p_path) {
}
//check if the device supports basic gamepad events, prevents certain keyboards from
- //being detected as joysticks
+ //being detected as joypads
if (!(test_bit(EV_KEY, evbit) && test_bit(EV_ABS, evbit) &&
(test_bit(ABS_X, absbit) || test_bit(ABS_Y, absbit) || test_bit(ABS_HAT0X, absbit) ||
test_bit(ABS_GAS, absbit) || test_bit(ABS_RUDDER, absbit)) &&
@@ -372,12 +371,12 @@ void joystick_linux::open_joystick(const char *p_path) {
return;
}
- joysticks[joy_num].reset();
+ joypads[joy_num].reset();
- Joystick &joy = joysticks[joy_num];
+ Joypad &joy = joypads[joy_num];
joy.fd = fd;
joy.devpath = String(p_path);
- setup_joystick_properties(joy_num);
+ setup_joypad_properties(joy_num);
sprintf(uid, "%04x%04x", __bswap_16(inpid.bustype), 0);
if (inpid.vendor && inpid.product && inpid.version) {
@@ -401,14 +400,14 @@ void joystick_linux::open_joystick(const char *p_path) {
}
}
-void joystick_linux::joystick_vibration_start(int p_id, float p_weak_magnitude, float p_strong_magnitude, float p_duration, uint64_t p_timestamp)
+void JoypadLinux::joypad_vibration_start(int p_id, float p_weak_magnitude, float p_strong_magnitude, float p_duration, uint64_t p_timestamp)
{
- Joystick& joy = joysticks[p_id];
+ Joypad& joy = joypads[p_id];
if (!joy.force_feedback || joy.fd == -1 || p_weak_magnitude < 0.f || p_weak_magnitude > 1.f || p_strong_magnitude < 0.f || p_strong_magnitude > 1.f) {
return;
}
if (joy.ff_effect_id != -1) {
- joystick_vibration_stop(p_id, p_timestamp);
+ joypad_vibration_stop(p_id, p_timestamp);
}
struct ff_effect effect;
@@ -433,9 +432,9 @@ void joystick_linux::joystick_vibration_start(int p_id, float p_weak_magnitude,
joy.ff_effect_timestamp = p_timestamp;
}
-void joystick_linux::joystick_vibration_stop(int p_id, uint64_t p_timestamp)
+void JoypadLinux::joypad_vibration_stop(int p_id, uint64_t p_timestamp)
{
- Joystick& joy = joysticks[p_id];
+ Joypad& joy = joypads[p_id];
if (!joy.force_feedback || joy.fd == -1 || joy.ff_effect_id == -1) {
return;
}
@@ -448,7 +447,7 @@ void joystick_linux::joystick_vibration_stop(int p_id, uint64_t p_timestamp)
joy.ff_effect_timestamp = p_timestamp;
}
-InputDefault::JoyAxis joystick_linux::axis_correct(const input_absinfo *p_abs, int p_value) const {
+InputDefault::JoyAxis JoypadLinux::axis_correct(const input_absinfo *p_abs, int p_value) const {
int min = p_abs->minimum;
int max = p_abs->maximum;
@@ -468,17 +467,17 @@ InputDefault::JoyAxis joystick_linux::axis_correct(const input_absinfo *p_abs, i
return jx;
}
-uint32_t joystick_linux::process_joysticks(uint32_t p_event_id) {
+uint32_t JoypadLinux::process_joypads(uint32_t p_event_id) {
if (joy_mutex->try_lock() != OK) {
return p_event_id;
}
- for (int i=0; i<JOYSTICKS_MAX; i++) {
+ for (int i=0; i<JOYPADS_MAX; i++) {
- if (joysticks[i].fd == -1) continue;
+ if (joypads[i].fd == -1) continue;
input_event events[32];
- Joystick* joy = &joysticks[i];
+ Joypad* joy = &joypads[i];
int len;
@@ -539,7 +538,7 @@ uint32_t joystick_linux::process_joysticks(uint32_t p_event_id) {
}
}
if (len == 0 || (len < 0 && errno != EAGAIN)) {
- close_joystick(i);
+ close_joypad(i);
};
if (joy->force_feedback) {
@@ -548,9 +547,9 @@ uint32_t joystick_linux::process_joysticks(uint32_t p_event_id) {
Vector2 strength = input->get_joy_vibration_strength(i);
float duration = input->get_joy_vibration_duration(i);
if (strength.x == 0 && strength.y == 0) {
- joystick_vibration_stop(i, timestamp);
+ joypad_vibration_stop(i, timestamp);
} else {
- joystick_vibration_start(i, strength.x, strength.y, duration, timestamp);
+ joypad_vibration_start(i, strength.x, strength.y, duration, timestamp);
}
}
}
diff --git a/platform/x11/joystick_linux.h b/platform/x11/joypad_linux.h
index 34e7001ca9..18ad199f6b 100644
--- a/platform/x11/joystick_linux.h
+++ b/platform/x11/joypad_linux.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* joystick_linux.h */
+/* joypad_linux.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -28,8 +28,9 @@
/*************************************************************************/
//author: Andreas Haas <hondres, liugam3@gmail.com>
-#ifndef JOYSTICK_LINUX_H
-#define JOYSTICK_LINUX_H
+#ifndef JOYPAD_LINUX_H
+#define JOYPAD_LINUX_H
+
#ifdef JOYDEV_ENABLED
#include "main/input_default.h"
#include "os/thread.h"
@@ -37,21 +38,21 @@
struct input_absinfo;
-class joystick_linux
+class JoypadLinux
{
public:
- joystick_linux(InputDefault *in);
- ~joystick_linux();
- uint32_t process_joysticks(uint32_t p_event_id);
+ JoypadLinux(InputDefault *in);
+ ~JoypadLinux();
+ uint32_t process_joypads(uint32_t p_event_id);
private:
enum {
- JOYSTICKS_MAX = 16,
+ JOYPADS_MAX = 16,
MAX_ABS = 63,
MAX_KEY = 767, // Hack because <linux/input.h> can't be included here
};
- struct Joystick {
+ struct Joypad {
InputDefault::JoyAxis curr_axis[MAX_ABS];
int key_map[MAX_KEY];
int abs_map[MAX_ABS];
@@ -65,8 +66,8 @@ private:
int ff_effect_id;
uint64_t ff_effect_timestamp;
- Joystick();
- ~Joystick();
+ Joypad();
+ ~Joypad();
void reset();
};
@@ -74,7 +75,7 @@ private:
Mutex *joy_mutex;
Thread *joy_thread;
InputDefault *input;
- Joystick joysticks[JOYSTICKS_MAX];
+ Joypad joypads[JOYPADS_MAX];
Vector<String> attached_devices;
static void joy_thread_func(void *p_user);
@@ -82,21 +83,21 @@ private:
int get_joy_from_path(String path) const;
int get_free_joy_slot() const;
- void setup_joystick_properties(int p_id);
- void close_joystick(int p_id = -1);
+ void setup_joypad_properties(int p_id);
+ void close_joypad(int p_id = -1);
#ifdef UDEV_ENABLED
- void enumerate_joysticks(struct udev *_udev);
- void monitor_joysticks(struct udev *_udev);
+ void enumerate_joypads(struct udev *_udev);
+ void monitor_joypads(struct udev *_udev);
#endif
- void monitor_joysticks();
- void run_joystick_thread();
- void open_joystick(const char* path);
+ void monitor_joypads();
+ void run_joypad_thread();
+ void open_joypad(const char* path);
- void joystick_vibration_start(int p_id, float p_weak_magnitude, float p_strong_magnitude, float p_duration, uint64_t p_timestamp);
- void joystick_vibration_stop(int p_id, uint64_t p_timestamp);
+ void joypad_vibration_start(int p_id, float p_weak_magnitude, float p_strong_magnitude, float p_duration, uint64_t p_timestamp);
+ void joypad_vibration_stop(int p_id, uint64_t p_timestamp);
InputDefault::JoyAxis axis_correct(const input_absinfo *abs, int value) const;
};
#endif
-#endif // JOYSTICK_LINUX_H
+#endif // JOYPAD_LINUX_H
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index 74482a57e7..9a4b19f2db 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -458,7 +458,7 @@ void OS_X11::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
input = memnew( InputDefault );
#ifdef JOYDEV_ENABLED
- joystick = memnew( joystick_linux(input));
+ joypad = memnew( JoypadLinux(input));
#endif
_ensure_data_dir();
}
@@ -479,7 +479,7 @@ void OS_X11::finalize() {
//}
#ifdef JOYDEV_ENABLED
- memdelete(joystick);
+ memdelete(joypad);
#endif
memdelete(input);
@@ -1894,7 +1894,7 @@ void OS_X11::set_icon(const Image& p_icon) {
pd[0]=w;
pd[1]=h;
- DVector<uint8_t>::Read r = img.get_data().read();
+ PoolVector<uint8_t>::Read r = img.get_data().read();
long * wr = &pd[2];
uint8_t const * pr = r.ptr();
@@ -1932,7 +1932,7 @@ void OS_X11::run() {
process_xevents(); // get rid of pending events
#ifdef JOYDEV_ENABLED
- event_id = joystick->process_joysticks(event_id);
+ event_id = joypad->process_joypads(event_id);
#endif
if (Main::iteration()==true)
break;
diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h
index b89921fb3e..bf676b5edf 100644
--- a/platform/x11/os_x11.h
+++ b/platform/x11/os_x11.h
@@ -48,7 +48,7 @@
#include "servers/physics_2d/physics_2d_server_sw.h"
#include "servers/physics_2d/physics_2d_server_wrap_mt.h"
#include "main/input_default.h"
-#include "joystick_linux.h"
+#include "joypad_linux.h"
#include <X11/keysym.h>
#include <X11/Xlib.h>
@@ -155,7 +155,7 @@ class OS_X11 : public OS_Unix {
InputDefault *input;
#ifdef JOYDEV_ENABLED
- joystick_linux *joystick;
+ JoypadLinux *joypad;
#endif
#ifdef RTAUDIO_ENABLED
diff --git a/prop_renames.txt b/prop_renames.txt
index 8ab54f7221..9821a32b68 100644
--- a/prop_renames.txt
+++ b/prop_renames.txt
@@ -497,6 +497,22 @@ expand_margin/right = expand_margin_right
modulate/color = modulate_color
+[AnimatedSprite]
+
+modulate = self_modulate
+
+[Sprite]
+
+modulate = self_modulate
+
+[Patch9Frame]
+
+modulate = self_modulate
+
+[TextureFrame]
+
+modulate = self_modulate
+
diff --git a/scene/2d/animated_sprite.cpp b/scene/2d/animated_sprite.cpp
index bde3f50754..97c23f3a46 100644
--- a/scene/2d/animated_sprite.cpp
+++ b/scene/2d/animated_sprite.cpp
@@ -363,7 +363,7 @@ void AnimatedSprite::_notification(int p_what) {
} else {
frame++;
if (frame==fc-1) {
- emit_signal(SceneStringNames::get_singleton()->finished);
+ emit_signal(SceneStringNames::get_singleton()->animation_finished);
}
}
@@ -428,7 +428,7 @@ void AnimatedSprite::_notification(int p_what) {
dst_rect.size.y=-dst_rect.size.y;
//texture->draw_rect(ci,dst_rect,false,modulate);
- texture->draw_rect_region(ci,dst_rect,Rect2(Vector2(),texture->get_size()),modulate);
+ texture->draw_rect_region(ci,dst_rect,Rect2(Vector2(),texture->get_size()));
// VisualServer::get_singleton()->canvas_item_add_texture_rect_region(ci,dst_rect,texture->get_rid(),src_rect,modulate);
} break;
@@ -544,17 +544,6 @@ bool AnimatedSprite::is_flipped_v() const {
}
-void AnimatedSprite::set_modulate(const Color& p_color) {
-
- modulate=p_color;
- update();
-}
-
-Color AnimatedSprite::get_modulate() const{
-
- return modulate;
-}
-
Rect2 AnimatedSprite::get_item_rect() const {
@@ -692,14 +681,11 @@ void AnimatedSprite::_bind_methods() {
ClassDB::bind_method(_MD("set_frame","frame"),&AnimatedSprite::set_frame);
ClassDB::bind_method(_MD("get_frame"),&AnimatedSprite::get_frame);
- ClassDB::bind_method(_MD("set_modulate","modulate"),&AnimatedSprite::set_modulate);
- ClassDB::bind_method(_MD("get_modulate"),&AnimatedSprite::get_modulate);
-
ClassDB::bind_method(_MD("_res_changed"),&AnimatedSprite::_res_changed);
ADD_SIGNAL(MethodInfo("frame_changed"));
- ADD_SIGNAL(MethodInfo("finished"));
+ ADD_SIGNAL(MethodInfo("animation_finished"));
ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "frames",PROPERTY_HINT_RESOURCE_TYPE,"SpriteFrames"), _SCS("set_sprite_frames"),_SCS("get_sprite_frames"));
ADD_PROPERTY( PropertyInfo( Variant::STRING, "animation"), _SCS("set_animation"),_SCS("get_animation"));
@@ -709,7 +695,7 @@ void AnimatedSprite::_bind_methods() {
ADD_PROPERTYNZ( PropertyInfo( Variant::VECTOR2, "offset"), _SCS("set_offset"),_SCS("get_offset"));
ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "flip_h"), _SCS("set_flip_h"),_SCS("is_flipped_h"));
ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "flip_v"), _SCS("set_flip_v"),_SCS("is_flipped_v"));
- ADD_PROPERTYNO( PropertyInfo( Variant::COLOR, "modulate"), _SCS("set_modulate"),_SCS("get_modulate"));
+
}
@@ -722,7 +708,6 @@ AnimatedSprite::AnimatedSprite() {
frame=0;
playing=false;
animation="default";
- modulate=Color(1,1,1,1);
timeout=0;
diff --git a/scene/2d/animated_sprite.h b/scene/2d/animated_sprite.h
index f546de038b..fbeea7f69b 100644
--- a/scene/2d/animated_sprite.h
+++ b/scene/2d/animated_sprite.h
@@ -124,7 +124,6 @@ class AnimatedSprite : public Node2D {
bool hflip;
bool vflip;
- Color modulate;
void _res_changed();
diff --git a/scene/2d/collision_polygon_2d.cpp b/scene/2d/collision_polygon_2d.cpp
index 4b7a918023..46baa7c184 100644
--- a/scene/2d/collision_polygon_2d.cpp
+++ b/scene/2d/collision_polygon_2d.cpp
@@ -68,16 +68,16 @@ void CollisionPolygon2D::_add_to_collision_object(Object *p_obj) {
Ref<ConcavePolygonShape2D> concave = memnew( ConcavePolygonShape2D );
- DVector<Vector2> segments;
+ PoolVector<Vector2> segments;
segments.resize(polygon.size()*2);
- DVector<Vector2>::Write w=segments.write();
+ PoolVector<Vector2>::Write w=segments.write();
for(int i=0;i<polygon.size();i++) {
w[(i<<1)+0]=polygon[i];
w[(i<<1)+1]=polygon[(i+1)%polygon.size()];
}
- w=DVector<Vector2>::Write();
+ w=PoolVector<Vector2>::Write();
concave->set_segments(segments);
co->add_shape(concave,get_transform());
diff --git a/scene/2d/light_occluder_2d.cpp b/scene/2d/light_occluder_2d.cpp
index ac1fb16d78..ac2a8d4dc5 100644
--- a/scene/2d/light_occluder_2d.cpp
+++ b/scene/2d/light_occluder_2d.cpp
@@ -29,14 +29,14 @@
#include "light_occluder_2d.h"
-void OccluderPolygon2D::set_polygon(const DVector<Vector2>& p_polygon) {
+void OccluderPolygon2D::set_polygon(const PoolVector<Vector2>& p_polygon) {
polygon=p_polygon;
VS::get_singleton()->canvas_occluder_polygon_set_shape(occ_polygon,p_polygon,closed);
emit_changed();
}
-DVector<Vector2> OccluderPolygon2D::get_polygon() const{
+PoolVector<Vector2> OccluderPolygon2D::get_polygon() const{
return polygon;
}
@@ -141,7 +141,7 @@ void LightOccluder2D::_notification(int p_what) {
if (occluder_polygon.is_valid()) {
- DVector<Vector2> poly = occluder_polygon->get_polygon();
+ PoolVector<Vector2> poly = occluder_polygon->get_polygon();
if (poly.size()) {
if (occluder_polygon->is_closed()) {
@@ -151,7 +151,7 @@ void LightOccluder2D::_notification(int p_what) {
} else {
int ps=poly.size();
- DVector<Vector2>::Read r = poly.read();
+ PoolVector<Vector2>::Read r = poly.read();
for(int i=0;i<ps-1;i++) {
draw_line(r[i],r[i+1],Color(0,0,0,0.6),3);
diff --git a/scene/2d/light_occluder_2d.h b/scene/2d/light_occluder_2d.h
index 1d7430689f..777785cd1d 100644
--- a/scene/2d/light_occluder_2d.h
+++ b/scene/2d/light_occluder_2d.h
@@ -45,7 +45,7 @@ private:
RID occ_polygon;
- DVector<Vector2> polygon;
+ PoolVector<Vector2> polygon;
bool closed;
CullMode cull;
@@ -54,8 +54,8 @@ protected:
static void _bind_methods();
public:
- void set_polygon(const DVector<Vector2>& p_polygon);
- DVector<Vector2> get_polygon() const;
+ void set_polygon(const PoolVector<Vector2>& p_polygon);
+ PoolVector<Vector2> get_polygon() const;
void set_closed(bool p_closed);
bool is_closed() const;
diff --git a/scene/2d/navigation2d.cpp b/scene/2d/navigation2d.cpp
index 1a7d01c762..be68c61bd8 100644
--- a/scene/2d/navigation2d.cpp
+++ b/scene/2d/navigation2d.cpp
@@ -36,12 +36,12 @@ void Navigation2D::_navpoly_link(int p_id) {
NavMesh &nm=navpoly_map[p_id];
ERR_FAIL_COND(nm.linked);
- DVector<Vector2> vertices=nm.navpoly->get_vertices();
+ PoolVector<Vector2> vertices=nm.navpoly->get_vertices();
int len = vertices.size();
if (len==0)
return;
- DVector<Vector2>::Read r=vertices.read();
+ PoolVector<Vector2>::Read r=vertices.read();
for(int i=0;i<nm.navpoly->get_polygon_count();i++) {
diff --git a/scene/2d/navigation_polygon.cpp b/scene/2d/navigation_polygon.cpp
index a11f2240f9..add3a183ef 100644
--- a/scene/2d/navigation_polygon.cpp
+++ b/scene/2d/navigation_polygon.cpp
@@ -31,12 +31,12 @@
#include "triangulator.h"
#include "core_string_names.h"
-void NavigationPolygon::set_vertices(const DVector<Vector2>& p_vertices) {
+void NavigationPolygon::set_vertices(const PoolVector<Vector2>& p_vertices) {
vertices=p_vertices;
}
-DVector<Vector2> NavigationPolygon::get_vertices() const{
+PoolVector<Vector2> NavigationPolygon::get_vertices() const{
return vertices;
}
@@ -89,7 +89,7 @@ void NavigationPolygon::add_polygon(const Vector<int>& p_polygon){
}
-void NavigationPolygon::add_outline_at_index(const DVector<Vector2>& p_outline,int p_index) {
+void NavigationPolygon::add_outline_at_index(const PoolVector<Vector2>& p_outline,int p_index) {
outlines.insert(p_index,p_outline);
}
@@ -108,7 +108,7 @@ void NavigationPolygon::clear_polygons(){
polygons.clear();
}
-void NavigationPolygon::add_outline(const DVector<Vector2>& p_outline) {
+void NavigationPolygon::add_outline(const PoolVector<Vector2>& p_outline) {
outlines.push_back(p_outline);
}
@@ -118,7 +118,7 @@ int NavigationPolygon::get_outline_count() const{
return outlines.size();
}
-void NavigationPolygon::set_outline(int p_idx,const DVector<Vector2>& p_outline) {
+void NavigationPolygon::set_outline(int p_idx,const PoolVector<Vector2>& p_outline) {
ERR_FAIL_INDEX(p_idx,outlines.size());
outlines[p_idx]=p_outline;
}
@@ -130,8 +130,8 @@ void NavigationPolygon::remove_outline(int p_idx) {
}
-DVector<Vector2> NavigationPolygon::get_outline(int p_idx) const {
- ERR_FAIL_INDEX_V(p_idx,outlines.size(),DVector<Vector2>());
+PoolVector<Vector2> NavigationPolygon::get_outline(int p_idx) const {
+ ERR_FAIL_INDEX_V(p_idx,outlines.size(),PoolVector<Vector2>());
return outlines[p_idx];
}
@@ -147,11 +147,11 @@ void NavigationPolygon::make_polygons_from_outlines(){
for(int i=0;i<outlines.size();i++) {
- DVector<Vector2> ol = outlines[i];
+ PoolVector<Vector2> ol = outlines[i];
int olsize = ol.size();
if (olsize<3)
continue;
- DVector<Vector2>::Read r=ol.read();
+ PoolVector<Vector2>::Read r=ol.read();
for(int j=0;j<olsize;j++) {
outside_point.x = MAX( r[j].x, outside_point.x );
outside_point.y = MAX( r[j].y, outside_point.y );
@@ -165,11 +165,11 @@ void NavigationPolygon::make_polygons_from_outlines(){
for(int i=0;i<outlines.size();i++) {
- DVector<Vector2> ol = outlines[i];
+ PoolVector<Vector2> ol = outlines[i];
int olsize = ol.size();
if (olsize<3)
continue;
- DVector<Vector2>::Read r=ol.read();
+ PoolVector<Vector2>::Read r=ol.read();
int interscount=0;
//test if this is an outer outline
@@ -178,11 +178,11 @@ void NavigationPolygon::make_polygons_from_outlines(){
if (i==k)
continue; //no self intersect
- DVector<Vector2> ol2 = outlines[k];
+ PoolVector<Vector2> ol2 = outlines[k];
int olsize2 = ol2.size();
if (olsize2<3)
continue;
- DVector<Vector2>::Read r2=ol2.read();
+ PoolVector<Vector2>::Read r2=ol2.read();
for(int l=0;l<olsize2;l++) {
@@ -368,7 +368,7 @@ void NavigationPolygonInstance::_notification(int p_what) {
if (is_inside_tree() && (get_tree()->is_editor_hint() || get_tree()->is_debugging_navigation_hint()) && navpoly.is_valid()) {
- DVector<Vector2> verts=navpoly->get_vertices();
+ PoolVector<Vector2> verts=navpoly->get_vertices();
int vsize = verts.size();
if (vsize<3)
return;
@@ -385,7 +385,7 @@ void NavigationPolygonInstance::_notification(int p_what) {
vertices.resize(vsize);
colors.resize(vsize);
{
- DVector<Vector2>::Read vr = verts.read();
+ PoolVector<Vector2>::Read vr = verts.read();
for(int i=0;i<vsize;i++) {
vertices[i]=vr[i];
colors[i]=color;
diff --git a/scene/2d/navigation_polygon.h b/scene/2d/navigation_polygon.h
index edf3dcadc3..7f1762b6f5 100644
--- a/scene/2d/navigation_polygon.h
+++ b/scene/2d/navigation_polygon.h
@@ -36,12 +36,12 @@ class NavigationPolygon : public Resource {
GDCLASS( NavigationPolygon, Resource );
- DVector<Vector2> vertices;
+ PoolVector<Vector2> vertices;
struct Polygon {
Vector<int> indices;
};
Vector<Polygon> polygons;
- Vector< DVector<Vector2> > outlines;
+ Vector< PoolVector<Vector2> > outlines;
protected:
@@ -57,16 +57,16 @@ public:
- void set_vertices(const DVector<Vector2>& p_vertices);
- DVector<Vector2> get_vertices() const;
+ void set_vertices(const PoolVector<Vector2>& p_vertices);
+ PoolVector<Vector2> get_vertices() const;
void add_polygon(const Vector<int>& p_polygon);
int get_polygon_count() const;
- void add_outline(const DVector<Vector2>& p_outline);
- void add_outline_at_index(const DVector<Vector2>& p_outline,int p_index);
- void set_outline(int p_idx,const DVector<Vector2>& p_outline);
- DVector<Vector2> get_outline(int p_idx) const;
+ void add_outline(const PoolVector<Vector2>& p_outline);
+ void add_outline_at_index(const PoolVector<Vector2>& p_outline,int p_index);
+ void set_outline(int p_idx,const PoolVector<Vector2>& p_outline);
+ PoolVector<Vector2> get_outline(int p_idx) const;
void remove_outline(int p_idx);
int get_outline_count() const;
diff --git a/scene/2d/particles_2d.cpp b/scene/2d/particles_2d.cpp
index 168bd1b289..f8747d54b7 100644
--- a/scene/2d/particles_2d.cpp
+++ b/scene/2d/particles_2d.cpp
@@ -276,7 +276,7 @@ void Particles2D::_process_particles(float p_delta) {
active_count=0;
- DVector<Point2>::Read r;
+ PoolVector<Point2>::Read r;
int emission_point_count=0;
if (emission_points.size()) {
@@ -992,12 +992,12 @@ int Particles2D::get_v_frames() const{
-void Particles2D::set_emission_points(const DVector<Vector2>& p_points) {
+void Particles2D::set_emission_points(const PoolVector<Vector2>& p_points) {
emission_points=p_points;
}
-DVector<Vector2> Particles2D::get_emission_points() const{
+PoolVector<Vector2> Particles2D::get_emission_points() const{
return emission_points;
}
diff --git a/scene/2d/particles_2d.h b/scene/2d/particles_2d.h
index 9b740dad7d..91f42c5222 100644
--- a/scene/2d/particles_2d.h
+++ b/scene/2d/particles_2d.h
@@ -151,7 +151,7 @@ private:
Point2 emissor_offset;
Vector2 initial_velocity;
Vector2 extents;
- DVector<Vector2> emission_points;
+ PoolVector<Vector2> emission_points;
float time;
int active_count;
@@ -245,8 +245,8 @@ public:
void set_initial_velocity(const Vector2& p_velocity);
Vector2 get_initial_velocity() const;
- void set_emission_points(const DVector<Vector2>& p_points);
- DVector<Vector2> get_emission_points() const;
+ void set_emission_points(const PoolVector<Vector2>& p_points);
+ PoolVector<Vector2> get_emission_points() const;
void pre_process(float p_delta);
void reset();
diff --git a/scene/2d/polygon_2d.cpp b/scene/2d/polygon_2d.cpp
index 179e71fa90..948c8b0818 100644
--- a/scene/2d/polygon_2d.cpp
+++ b/scene/2d/polygon_2d.cpp
@@ -33,7 +33,7 @@ Rect2 Polygon2D::get_item_rect() const {
if (rect_cache_dirty){
int l =polygon.size();
- DVector<Vector2>::Read r = polygon.read();
+ PoolVector<Vector2>::Read r = polygon.read();
item_rect=Rect2();
for(int i=0;i<l;i++) {
Vector2 pos = r[i] + offset;
@@ -84,7 +84,7 @@ void Polygon2D::_notification(int p_what) {
int len = points.size();
{
- DVector<Vector2>::Read polyr =polygon.read();
+ PoolVector<Vector2>::Read polyr =polygon.read();
for(int i=0;i<len;i++) {
points[i]=polyr[i]+offset;
}
@@ -157,7 +157,7 @@ void Polygon2D::_notification(int p_what) {
if (points.size()==uv.size()) {
- DVector<Vector2>::Read uvr = uv.read();
+ PoolVector<Vector2>::Read uvr = uv.read();
for(int i=0;i<len;i++) {
uvs[i]=texmat.xform(uvr[i])/tex_size;
@@ -176,7 +176,7 @@ void Polygon2D::_notification(int p_what) {
int color_len=vertex_colors.size();
colors.resize(len);
{
- DVector<Color>::Read color_r=vertex_colors.read();
+ PoolVector<Color>::Read color_r=vertex_colors.read();
for(int i=0;i<color_len && i<len;i++){
colors[i]=color_r[i];
}
@@ -194,25 +194,25 @@ void Polygon2D::_notification(int p_what) {
}
-void Polygon2D::set_polygon(const DVector<Vector2>& p_polygon) {
+void Polygon2D::set_polygon(const PoolVector<Vector2>& p_polygon) {
polygon=p_polygon;
rect_cache_dirty=true;
update();
}
-DVector<Vector2> Polygon2D::get_polygon() const{
+PoolVector<Vector2> Polygon2D::get_polygon() const{
return polygon;
}
-void Polygon2D::set_uv(const DVector<Vector2>& p_uv) {
+void Polygon2D::set_uv(const PoolVector<Vector2>& p_uv) {
uv=p_uv;
update();
}
-DVector<Vector2> Polygon2D::get_uv() const{
+PoolVector<Vector2> Polygon2D::get_uv() const{
return uv;
}
@@ -227,12 +227,12 @@ Color Polygon2D::get_color() const{
return color;
}
-void Polygon2D::set_vertex_colors(const DVector<Color>& p_colors){
+void Polygon2D::set_vertex_colors(const PoolVector<Color>& p_colors){
vertex_colors=p_colors;
update();
}
-DVector<Color> Polygon2D::get_vertex_colors() const{
+PoolVector<Color> Polygon2D::get_vertex_colors() const{
return vertex_colors;
}
diff --git a/scene/2d/polygon_2d.h b/scene/2d/polygon_2d.h
index 6327021295..8434dae40c 100644
--- a/scene/2d/polygon_2d.h
+++ b/scene/2d/polygon_2d.h
@@ -35,9 +35,9 @@ class Polygon2D : public Node2D {
GDCLASS(Polygon2D,Node2D);
- DVector<Vector2> polygon;
- DVector<Vector2> uv;
- DVector<Color> vertex_colors;
+ PoolVector<Vector2> polygon;
+ PoolVector<Vector2> uv;
+ PoolVector<Color> vertex_colors;
Color color;
Ref<Texture> texture;
Size2 tex_scale;
@@ -60,17 +60,17 @@ protected:
static void _bind_methods();
public:
- void set_polygon(const DVector<Vector2>& p_polygon);
- DVector<Vector2> get_polygon() const;
+ void set_polygon(const PoolVector<Vector2>& p_polygon);
+ PoolVector<Vector2> get_polygon() const;
- void set_uv(const DVector<Vector2>& p_uv);
- DVector<Vector2> get_uv() const;
+ void set_uv(const PoolVector<Vector2>& p_uv);
+ PoolVector<Vector2> get_uv() const;
void set_color(const Color& p_color);
Color get_color() const;
- void set_vertex_colors(const DVector<Color>& p_colors);
- DVector<Color> get_vertex_colors() const;
+ void set_vertex_colors(const PoolVector<Color>& p_colors);
+ PoolVector<Color> get_vertex_colors() const;
void set_texture(const Ref<Texture>& p_texture);
Ref<Texture> get_texture() const;
diff --git a/scene/2d/sprite.cpp b/scene/2d/sprite.cpp
index 480991c71d..8bad8fcb38 100644
--- a/scene/2d/sprite.cpp
+++ b/scene/2d/sprite.cpp
@@ -97,7 +97,7 @@ void Sprite::_notification(int p_what) {
if (vflip)
dst_rect.size.y=-dst_rect.size.y;
- texture->draw_rect_region(ci,dst_rect,src_rect,modulate);
+ texture->draw_rect_region(ci,dst_rect,src_rect);
} break;
}
@@ -249,16 +249,6 @@ int Sprite::get_hframes() const {
return hframes;
}
-void Sprite::set_modulate(const Color& p_color) {
-
- modulate=p_color;
- update();
-}
-
-Color Sprite::get_modulate() const{
-
- return modulate;
-}
Rect2 Sprite::get_item_rect() const {
@@ -332,9 +322,6 @@ void Sprite::_bind_methods() {
ClassDB::bind_method(_MD("set_hframes","hframes"),&Sprite::set_hframes);
ClassDB::bind_method(_MD("get_hframes"),&Sprite::get_hframes);
- ClassDB::bind_method(_MD("set_modulate","modulate"),&Sprite::set_modulate);
- ClassDB::bind_method(_MD("get_modulate"),&Sprite::get_modulate);
-
ADD_SIGNAL(MethodInfo("frame_changed"));
ADD_SIGNAL(MethodInfo("texture_changed"));
@@ -346,7 +333,6 @@ void Sprite::_bind_methods() {
ADD_PROPERTYNO( PropertyInfo( Variant::INT, "vframes",PROPERTY_HINT_RANGE,"1,16384,1"), _SCS("set_vframes"),_SCS("get_vframes"));
ADD_PROPERTYNO( PropertyInfo( Variant::INT, "hframes",PROPERTY_HINT_RANGE,"1,16384,1"), _SCS("set_hframes"),_SCS("get_hframes"));
ADD_PROPERTYNZ( PropertyInfo( Variant::INT, "frame",PROPERTY_HINT_SPRITE_FRAME), _SCS("set_frame"),_SCS("get_frame"));
- ADD_PROPERTYNO( PropertyInfo( Variant::COLOR, "modulate"), _SCS("set_modulate"),_SCS("get_modulate"));
ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "region"), _SCS("set_region"),_SCS("is_region"));
ADD_PROPERTYNZ( PropertyInfo( Variant::RECT2, "region_rect"), _SCS("set_region_rect"),_SCS("get_region_rect"));
@@ -364,9 +350,6 @@ Sprite::Sprite() {
vframes=1;
hframes=1;
- modulate=Color(1,1,1,1);
-
-
}
diff --git a/scene/2d/sprite.h b/scene/2d/sprite.h
index 687d054297..05c0bd9eec 100644
--- a/scene/2d/sprite.h
+++ b/scene/2d/sprite.h
@@ -52,7 +52,6 @@ class Sprite : public Node2D {
int vframes;
int hframes;
- Color modulate;
protected:
@@ -99,9 +98,6 @@ public:
void set_hframes(int p_amount);
int get_hframes() const;
- void set_modulate(const Color& p_color);
- Color get_modulate() const;
-
virtual Rect2 get_item_rect() const;
Sprite();
diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp
index 54d3f9f5dd..04b0379a1c 100644
--- a/scene/2d/tile_map.cpp
+++ b/scene/2d/tile_map.cpp
@@ -819,10 +819,10 @@ void TileMap::clear() {
tile_map.clear();
}
-void TileMap::_set_tile_data(const DVector<int>& p_data) {
+void TileMap::_set_tile_data(const PoolVector<int>& p_data) {
int c=p_data.size();
- DVector<int>::Read r = p_data.read();
+ PoolVector<int>::Read r = p_data.read();
for(int i=0;i<c;i+=2) {
@@ -857,11 +857,11 @@ void TileMap::_set_tile_data(const DVector<int>& p_data) {
}
-DVector<int> TileMap::_get_tile_data() const {
+PoolVector<int> TileMap::_get_tile_data() const {
- DVector<int> data;
+ PoolVector<int> data;
data.resize(tile_map.size()*2);
- DVector<int>::Write w = data.write();
+ PoolVector<int>::Write w = data.write();
int idx=0;
for(const Map<PosKey,Cell>::Element *E=tile_map.front();E;E=E->next()) {
@@ -882,7 +882,7 @@ DVector<int> TileMap::_get_tile_data() const {
}
- w = DVector<int>::Write();
+ w = PoolVector<int>::Write();
return data;
diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h
index 8cc144b74d..f863c0b2ea 100644
--- a/scene/2d/tile_map.h
+++ b/scene/2d/tile_map.h
@@ -168,8 +168,8 @@ private:
_FORCE_INLINE_ int _get_quadrant_size() const;
- void _set_tile_data(const DVector<int>& p_data);
- DVector<int> _get_tile_data() const;
+ void _set_tile_data(const PoolVector<int>& p_data);
+ PoolVector<int> _get_tile_data() const;
void _set_old_cell_size(int p_size) { set_cell_size(Size2(p_size,p_size)); }
int _get_old_cell_size() const { return cell_size.x; }
diff --git a/scene/3d/baked_light_instance.cpp b/scene/3d/baked_light_instance.cpp
index b5cc451835..f85dfea80e 100644
--- a/scene/3d/baked_light_instance.cpp
+++ b/scene/3d/baked_light_instance.cpp
@@ -204,7 +204,7 @@ Vector<Color> BakedLight::_get_bake_texture(Image &p_image,const Color& p_color)
p_image.resize(bake_texture_size,bake_texture_size,Image::INTERPOLATE_CUBIC);
- DVector<uint8_t>::Read r = p_image.get_data().read();
+ PoolVector<uint8_t>::Read r = p_image.get_data().read();
ret.resize(bake_texture_size*bake_texture_size);
for(int i=0;i<bake_texture_size*bake_texture_size;i++) {
@@ -506,7 +506,7 @@ void BakedLight::_plot_face(int p_idx, int p_level, const Vector3 *p_vtx, const
if (bake_cells_used==(1<<bake_cells_alloc)) {
//exhausted cells, creating more space
bake_cells_alloc++;
- bake_cells_write=DVector<BakeCell>::Write();
+ bake_cells_write=PoolVector<BakeCell>::Write();
bake_cells.resize(1<<bake_cells_alloc);
bake_cells_write=bake_cells.write();
}
@@ -670,11 +670,11 @@ void BakedLight::_bake_add_mesh(const Transform& p_xform,Ref<Mesh>& p_mesh) {
Array a = p_mesh->surface_get_arrays(i);
- DVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX];
- DVector<Vector3>::Read vr=vertices.read();
- DVector<Vector2> uv = a[Mesh::ARRAY_TEX_UV];
- DVector<Vector2>::Read uvr;
- DVector<int> index = a[Mesh::ARRAY_INDEX];
+ PoolVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX];
+ PoolVector<Vector3>::Read vr=vertices.read();
+ PoolVector<Vector2> uv = a[Mesh::ARRAY_TEX_UV];
+ PoolVector<Vector2>::Read uvr;
+ PoolVector<int> index = a[Mesh::ARRAY_INDEX];
bool read_uv=false;
@@ -687,7 +687,7 @@ void BakedLight::_bake_add_mesh(const Transform& p_xform,Ref<Mesh>& p_mesh) {
if (index.size()) {
int facecount = index.size()/3;
- DVector<int>::Read ir=index.read();
+ PoolVector<int>::Read ir=index.read();
for(int j=0;j<facecount;j++) {
@@ -747,9 +747,9 @@ void BakedLight::_bake_add_to_aabb(const Transform& p_xform,Ref<Mesh>& p_mesh,bo
continue; //only triangles
Array a = p_mesh->surface_get_arrays(i);
- DVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX];
+ PoolVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX];
int vc = vertices.size();
- DVector<Vector3>::Read vr=vertices.read();
+ PoolVector<Vector3>::Read vr=vertices.read();
if (first) {
bounds.pos=p_xform.xform(vr[0]);
@@ -827,7 +827,7 @@ void BakedLight::bake() {
_fixup_plot(0, 0,0,0,0);
- bake_cells_write=DVector<BakeCell>::Write();
+ bake_cells_write=PoolVector<BakeCell>::Write();
bake_cells.resize(bake_cells_used);
@@ -1005,7 +1005,7 @@ void BakedLight::bake_lights() {
_upscale_light(0,0);
- bake_cells_write=DVector<BakeCell>::Write();
+ bake_cells_write=PoolVector<BakeCell>::Write();
}
@@ -1371,7 +1371,7 @@ void BakedLight::bake_radiance() {
_bake_radiance(0,0,0,0,0);
- bake_cells_write=DVector<BakeCell>::Write();
+ bake_cells_write=PoolVector<BakeCell>::Write();
}
int BakedLight::_find_cell(int x,int y, int z) {
@@ -1538,9 +1538,9 @@ AABB BakedLight::get_aabb() const {
return AABB(Vector3(0,0,0),Vector3(1,1,1));
}
-DVector<Face3> BakedLight::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> BakedLight::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
@@ -1621,8 +1621,8 @@ void BakedLight::create_debug_mesh(DebugMode p_mode) {
Array arr;
arr.resize(Mesh::ARRAY_MAX);
- DVector<Vector3> vertices;
- DVector<Color> colors;
+ PoolVector<Vector3> vertices;
+ PoolVector<Color> colors;
int vtx_idx=0;
#define ADD_VTX(m_idx);\
diff --git a/scene/3d/baked_light_instance.h b/scene/3d/baked_light_instance.h
index d097a9af60..461b3adeff 100644
--- a/scene/3d/baked_light_instance.h
+++ b/scene/3d/baked_light_instance.h
@@ -107,8 +107,8 @@ private:
int bake_cells_used;
int zero_alphas;
Vector<int> bake_cells_level_used;
- DVector<BakeCell> bake_cells;
- DVector<BakeCell>::Write bake_cells_write;
+ PoolVector<BakeCell> bake_cells;
+ PoolVector<BakeCell>::Write bake_cells_write;
@@ -157,7 +157,7 @@ public:
void create_debug_mesh(DebugMode p_mode);
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
String get_configuration_warning() const;
@@ -192,7 +192,7 @@ protected:
public:
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
void set_param(Param p_param,float p_value);
float get_param(Param p_param) const;
diff --git a/scene/3d/body_shape.cpp b/scene/3d/body_shape.cpp
index 0f71933388..ff8b0f15bf 100644
--- a/scene/3d/body_shape.cpp
+++ b/scene/3d/body_shape.cpp
@@ -83,8 +83,8 @@ void CollisionShape::_update_indicator() {
if (shape.is_null())
return;
- DVector<Vector3> points;
- DVector<Vector3> normals;
+ PoolVector<Vector3> points;
+ PoolVector<Vector3> normals;
VS::PrimitiveType pt = VS::PRIMITIVE_TRIANGLES;
@@ -235,7 +235,7 @@ void CollisionShape::_update_indicator() {
CapsuleShape *shapeptr=shape->cast_to<CapsuleShape>();
- DVector<Plane> planes = Geometry::build_capsule_planes(shapeptr->get_radius(), shapeptr->get_height()/2.0, 12, Vector3::AXIS_Z);
+ PoolVector<Plane> planes = Geometry::build_capsule_planes(shapeptr->get_radius(), shapeptr->get_height()/2.0, 12, Vector3::AXIS_Z);
Geometry::MeshData md = Geometry::build_convex_mesh(planes);
for(int i=0;i<md.faces.size();i++) {
@@ -840,7 +840,7 @@ void CollisionShapeCylinder::update_indicator(RID p_indicator) {
vs->poly_clear(p_indicator);
Color col(0.4,1.0,1.0,0.5);
- DVector<Plane> planes = Geometry::build_cylinder_planes(radius, height, 12, Vector3::AXIS_Z);
+ PoolVector<Plane> planes = Geometry::build_cylinder_planes(radius, height, 12, Vector3::AXIS_Z);
Geometry::MeshData md = Geometry::build_convex_mesh(planes);
for(int i=0;i<md.faces.size();i++) {
@@ -906,7 +906,7 @@ void CollisionShapeCapsule::update_indicator(RID p_indicator) {
vs->poly_clear(p_indicator);
Color col(0.4,1.0,1.0,0.5);
- DVector<Plane> planes = Geometry::build_capsule_planes(radius, height, 12, 3, Vector3::AXIS_Z);
+ PoolVector<Plane> planes = Geometry::build_capsule_planes(radius, height, 12, 3, Vector3::AXIS_Z);
Geometry::MeshData md = Geometry::build_convex_mesh(planes);
for(int i=0;i<md.faces.size();i++) {
diff --git a/scene/3d/collision_polygon.cpp b/scene/3d/collision_polygon.cpp
index 8c34748191..6cc0291707 100644
--- a/scene/3d/collision_polygon.cpp
+++ b/scene/3d/collision_polygon.cpp
@@ -56,11 +56,11 @@ void CollisionPolygon::_add_to_collision_object(Object *p_obj) {
shape_from=co->get_shape_count();
for(int i=0;i<decomp.size();i++) {
Ref<ConvexPolygonShape> convex = memnew( ConvexPolygonShape );
- DVector<Vector3> cp;
+ PoolVector<Vector3> cp;
int cs = decomp[i].size();
cp.resize(cs*2);
{
- DVector<Vector3>::Write w = cp.write();
+ PoolVector<Vector3>::Write w = cp.write();
int idx=0;
for(int j=0;j<cs;j++) {
@@ -84,16 +84,16 @@ void CollisionPolygon::_add_to_collision_object(Object *p_obj) {
#if 0
Ref<ConcavePolygonShape> concave = memnew( ConcavePolygonShape );
- DVector<Vector2> segments;
+ PoolVector<Vector2> segments;
segments.resize(polygon.size()*2);
- DVector<Vector2>::Write w=segments.write();
+ PoolVector<Vector2>::Write w=segments.write();
for(int i=0;i<polygon.size();i++) {
w[(i<<1)+0]=polygon[i];
w[(i<<1)+1]=polygon[(i+1)%polygon.size()];
}
- w=DVector<Vector2>::Write();
+ w=PoolVector<Vector2>::Write();
concave->set_segments(segments);
co->add_shape(concave,get_transform());
diff --git a/scene/3d/gi_probe.cpp b/scene/3d/gi_probe.cpp
index 19c67faa39..5b51273d0e 100644
--- a/scene/3d/gi_probe.cpp
+++ b/scene/3d/gi_probe.cpp
@@ -37,12 +37,12 @@ Transform GIProbeData::get_to_cell_xform() const {
}
-void GIProbeData::set_dynamic_data(const DVector<int>& p_data){
+void GIProbeData::set_dynamic_data(const PoolVector<int>& p_data){
VS::get_singleton()->gi_probe_set_dynamic_data(probe,p_data);
}
-DVector<int> GIProbeData::get_dynamic_data() const{
+PoolVector<int> GIProbeData::get_dynamic_data() const{
return VS::get_singleton()->gi_probe_get_dynamic_data(probe);
}
@@ -832,7 +832,7 @@ Vector<Color> GIProbe::_get_bake_texture(Image &p_image,const Color& p_color) {
p_image.resize(bake_texture_size,bake_texture_size,Image::INTERPOLATE_CUBIC);
- DVector<uint8_t>::Read r = p_image.get_data().read();
+ PoolVector<uint8_t>::Read r = p_image.get_data().read();
ret.resize(bake_texture_size*bake_texture_size);
for(int i=0;i<bake_texture_size*bake_texture_size;i++) {
@@ -919,11 +919,11 @@ void GIProbe::_plot_mesh(const Transform& p_xform, Ref<Mesh>& p_mesh, Baker *p_b
Array a = p_mesh->surface_get_arrays(i);
- DVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX];
- DVector<Vector3>::Read vr=vertices.read();
- DVector<Vector2> uv = a[Mesh::ARRAY_TEX_UV];
- DVector<Vector2>::Read uvr;
- DVector<int> index = a[Mesh::ARRAY_INDEX];
+ PoolVector<Vector3> vertices = a[Mesh::ARRAY_VERTEX];
+ PoolVector<Vector3>::Read vr=vertices.read();
+ PoolVector<Vector2> uv = a[Mesh::ARRAY_TEX_UV];
+ PoolVector<Vector2>::Read uvr;
+ PoolVector<int> index = a[Mesh::ARRAY_INDEX];
bool read_uv=false;
@@ -936,7 +936,7 @@ void GIProbe::_plot_mesh(const Transform& p_xform, Ref<Mesh>& p_mesh, Baker *p_b
if (index.size()) {
int facecount = index.size()/3;
- DVector<int>::Read ir=index.read();
+ PoolVector<int>::Read ir=index.read();
for(int j=0;j<facecount;j++) {
@@ -1090,12 +1090,12 @@ void GIProbe::bake(Node *p_from_node, bool p_create_visual_debug){
//create the data for visual server
- DVector<int> data;
+ PoolVector<int> data;
data.resize( 16+(8+1+1+1+1)*baker.bake_cells.size() ); //4 for header, rest for rest.
{
- DVector<int>::Write w = data.write();
+ PoolVector<int>::Write w = data.write();
uint32_t * w32 = (uint32_t*)w.ptr();
@@ -1247,8 +1247,8 @@ void GIProbe::_create_debug_mesh(Baker *p_baker) {
Array arr;
arr.resize(Mesh::ARRAY_MAX);
- DVector<Vector3> vertices;
- DVector<Color> colors;
+ PoolVector<Vector3> vertices;
+ PoolVector<Color> colors;
int vtx_idx=0;
#define ADD_VTX(m_idx);\
@@ -1333,9 +1333,9 @@ AABB GIProbe::get_aabb() const {
return AABB(-extents,extents*2);
}
-DVector<Face3> GIProbe::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> GIProbe::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
void GIProbe::_bind_methods() {
diff --git a/scene/3d/gi_probe.h b/scene/3d/gi_probe.h
index 4b06c13268..55cde2960a 100644
--- a/scene/3d/gi_probe.h
+++ b/scene/3d/gi_probe.h
@@ -26,8 +26,8 @@ public:
void set_to_cell_xform(const Transform& p_xform);
Transform get_to_cell_xform() const;
- void set_dynamic_data(const DVector<int>& p_data);
- DVector<int> get_dynamic_data() const;
+ void set_dynamic_data(const PoolVector<int>& p_data);
+ PoolVector<int> get_dynamic_data() const;
void set_dynamic_range(int p_range);
int get_dynamic_range() const;
@@ -179,7 +179,7 @@ public:
void bake(Node *p_from_node=NULL,bool p_create_visual_debug=false);
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
GIProbe();
~GIProbe();
diff --git a/scene/3d/immediate_geometry.cpp b/scene/3d/immediate_geometry.cpp
index 4ee2e646e6..ee200cb3ea 100644
--- a/scene/3d/immediate_geometry.cpp
+++ b/scene/3d/immediate_geometry.cpp
@@ -96,9 +96,9 @@ AABB ImmediateGeometry::get_aabb() const {
return aabb;
}
-DVector<Face3> ImmediateGeometry::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> ImmediateGeometry::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
diff --git a/scene/3d/immediate_geometry.h b/scene/3d/immediate_geometry.h
index 3c8a76fbc7..bf624e67fd 100644
--- a/scene/3d/immediate_geometry.h
+++ b/scene/3d/immediate_geometry.h
@@ -67,7 +67,7 @@ public:
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
ImmediateGeometry();
~ImmediateGeometry();
diff --git a/scene/3d/light.cpp b/scene/3d/light.cpp
index 84a6fecf5e..ba3c63c403 100644
--- a/scene/3d/light.cpp
+++ b/scene/3d/light.cpp
@@ -135,9 +135,9 @@ AABB Light::get_aabb() const {
return AABB();
}
-DVector<Face3> Light::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> Light::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
diff --git a/scene/3d/light.h b/scene/3d/light.h
index d3585b5cf2..3481d0229c 100644
--- a/scene/3d/light.h
+++ b/scene/3d/light.h
@@ -118,7 +118,7 @@ public:
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
Light();
~Light();
diff --git a/scene/3d/mesh_instance.cpp b/scene/3d/mesh_instance.cpp
index ef633ac301..5b12f80d5c 100644
--- a/scene/3d/mesh_instance.cpp
+++ b/scene/3d/mesh_instance.cpp
@@ -177,13 +177,13 @@ AABB MeshInstance::get_aabb() const {
return AABB();
}
-DVector<Face3> MeshInstance::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> MeshInstance::get_faces(uint32_t p_usage_flags) const {
if (!(p_usage_flags&(FACES_SOLID|FACES_ENCLOSING)))
- return DVector<Face3>();
+ return PoolVector<Face3>();
if (mesh.is_null())
- return DVector<Face3>();
+ return PoolVector<Face3>();
return mesh->get_faces();
}
diff --git a/scene/3d/mesh_instance.h b/scene/3d/mesh_instance.h
index 92f181c24e..1291d6b12f 100644
--- a/scene/3d/mesh_instance.h
+++ b/scene/3d/mesh_instance.h
@@ -81,7 +81,7 @@ public:
void create_convex_collision();
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
MeshInstance();
~MeshInstance();
diff --git a/scene/3d/multimesh_instance.cpp b/scene/3d/multimesh_instance.cpp
index 44cd7485ca..a9d1de1cfa 100644
--- a/scene/3d/multimesh_instance.cpp
+++ b/scene/3d/multimesh_instance.cpp
@@ -58,9 +58,9 @@ Ref<MultiMesh> MultiMeshInstance::get_multimesh() const {
-DVector<Face3> MultiMeshInstance::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> MultiMeshInstance::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
AABB MultiMeshInstance::get_aabb() const {
diff --git a/scene/3d/multimesh_instance.h b/scene/3d/multimesh_instance.h
index 503f5e75fc..ef2403a44a 100644
--- a/scene/3d/multimesh_instance.h
+++ b/scene/3d/multimesh_instance.h
@@ -49,7 +49,7 @@ protected:
public:
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
void set_multimesh(const Ref<MultiMesh>& p_multimesh);
Ref<MultiMesh> get_multimesh() const;
diff --git a/scene/3d/navigation.cpp b/scene/3d/navigation.cpp
index 598a935e4b..40666a60dc 100644
--- a/scene/3d/navigation.cpp
+++ b/scene/3d/navigation.cpp
@@ -36,12 +36,12 @@ void Navigation::_navmesh_link(int p_id) {
print_line("LINK");
- DVector<Vector3> vertices=nm.navmesh->get_vertices();
+ PoolVector<Vector3> vertices=nm.navmesh->get_vertices();
int len = vertices.size();
if (len==0)
return;
- DVector<Vector3>::Read r=vertices.read();
+ PoolVector<Vector3>::Read r=vertices.read();
for(int i=0;i<nm.navmesh->get_polygon_count();i++) {
diff --git a/scene/3d/navigation_mesh.cpp b/scene/3d/navigation_mesh.cpp
index 9ed3b4147a..7ec9085e30 100644
--- a/scene/3d/navigation_mesh.cpp
+++ b/scene/3d/navigation_mesh.cpp
@@ -33,7 +33,7 @@
void NavigationMesh::create_from_mesh(const Ref<Mesh>& p_mesh) {
- vertices=DVector<Vector3>();
+ vertices=PoolVector<Vector3>();
clear_polygons();
for(int i=0;i<p_mesh->get_surface_count();i++) {
@@ -41,15 +41,15 @@ void NavigationMesh::create_from_mesh(const Ref<Mesh>& p_mesh) {
if (p_mesh->surface_get_primitive_type(i)!=Mesh::PRIMITIVE_TRIANGLES)
continue;
Array arr = p_mesh->surface_get_arrays(i);
- DVector<Vector3> varr = arr[Mesh::ARRAY_VERTEX];
- DVector<int> iarr = arr[Mesh::ARRAY_INDEX];
+ PoolVector<Vector3> varr = arr[Mesh::ARRAY_VERTEX];
+ PoolVector<int> iarr = arr[Mesh::ARRAY_INDEX];
if (varr.size()==0 || iarr.size()==0)
continue;
int from = vertices.size();
vertices.append_array(varr);
int rlen = iarr.size();
- DVector<int>::Read r = iarr.read();
+ PoolVector<int>::Read r = iarr.read();
for(int j=0;j<rlen;j+=3) {
Vector<int> vi;
@@ -63,12 +63,12 @@ void NavigationMesh::create_from_mesh(const Ref<Mesh>& p_mesh) {
}
}
-void NavigationMesh::set_vertices(const DVector<Vector3>& p_vertices) {
+void NavigationMesh::set_vertices(const PoolVector<Vector3>& p_vertices) {
vertices=p_vertices;
}
-DVector<Vector3> NavigationMesh::get_vertices() const{
+PoolVector<Vector3> NavigationMesh::get_vertices() const{
return vertices;
}
@@ -122,8 +122,8 @@ Ref<Mesh> NavigationMesh::get_debug_mesh() {
- DVector<Vector3> vertices = get_vertices();
- DVector<Vector3>::Read vr=vertices.read();
+ PoolVector<Vector3> vertices = get_vertices();
+ PoolVector<Vector3>::Read vr=vertices.read();
List<Face3> faces;
for(int i=0;i<get_polygon_count();i++) {
Vector<int> p = get_polygon(i);
@@ -140,11 +140,11 @@ Ref<Mesh> NavigationMesh::get_debug_mesh() {
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;
@@ -185,10 +185,10 @@ Ref<Mesh> NavigationMesh::get_debug_mesh() {
}
}
- DVector<Vector3> varr;
+ PoolVector<Vector3> varr;
varr.resize(lines.size());
{
- DVector<Vector3>::Write w = varr.write();
+ PoolVector<Vector3>::Write w = varr.write();
int idx=0;
for(List<Vector3>::Element *E=lines.front();E;E=E->next()) {
w[idx++]=E->get();
diff --git a/scene/3d/navigation_mesh.h b/scene/3d/navigation_mesh.h
index a0bdc5a516..e025b7ce8b 100644
--- a/scene/3d/navigation_mesh.h
+++ b/scene/3d/navigation_mesh.h
@@ -38,7 +38,7 @@ class NavigationMesh : public Resource {
GDCLASS( NavigationMesh, Resource );
- DVector<Vector3> vertices;
+ PoolVector<Vector3> vertices;
struct Polygon {
Vector<int> indices;
};
@@ -65,8 +65,8 @@ public:
void create_from_mesh(const Ref<Mesh>& p_mesh);
- void set_vertices(const DVector<Vector3>& p_vertices);
- DVector<Vector3> get_vertices() const;
+ void set_vertices(const PoolVector<Vector3>& p_vertices);
+ PoolVector<Vector3> get_vertices() const;
void add_polygon(const Vector<int>& p_polygon);
int get_polygon_count() const;
diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp
index 09be49d7d6..9e37658cd9 100644
--- a/scene/3d/particles.cpp
+++ b/scene/3d/particles.cpp
@@ -88,9 +88,9 @@ AABB Particles::get_aabb() const {
return AABB( Vector3(-1,-1,-1), Vector3(2, 2, 2 ) );
}
-DVector<Face3> Particles::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> Particles::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
@@ -130,16 +130,16 @@ AABB Particles::get_visibility_aabb() const {
}
-void Particles::set_emission_points(const DVector<Vector3>& p_points) {
+void Particles::set_emission_points(const PoolVector<Vector3>& p_points) {
using_points = p_points.size();
VisualServer::get_singleton()->particles_set_emission_points(particles,p_points);
}
-DVector<Vector3> Particles::get_emission_points() const {
+PoolVector<Vector3> Particles::get_emission_points() const {
if (!using_points)
- return DVector<Vector3>();
+ return PoolVector<Vector3>();
return VisualServer::get_singleton()->particles_get_emission_points(particles);
diff --git a/scene/3d/particles.h b/scene/3d/particles.h
index 95cf44a033..b96bd4e69e 100644
--- a/scene/3d/particles.h
+++ b/scene/3d/particles.h
@@ -103,7 +103,7 @@ public:
AABB get_aabb() const;
- DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
void set_amount(int p_amount);
int get_amount() const;
@@ -120,8 +120,8 @@ public:
void set_emission_base_velocity(const Vector3& p_base_velocity);
Vector3 get_emission_base_velocity() const;
- void set_emission_points(const DVector<Vector3>& p_points);
- DVector<Vector3> get_emission_points() const;
+ void set_emission_points(const PoolVector<Vector3>& p_points);
+ PoolVector<Vector3> get_emission_points() const;
void set_gravity_normal(const Vector3& p_normal);
Vector3 get_gravity_normal() const;
diff --git a/scene/3d/portal.cpp b/scene/3d/portal.cpp
index 1de9188e82..e4c03a78ee 100644
--- a/scene/3d/portal.cpp
+++ b/scene/3d/portal.cpp
@@ -34,7 +34,7 @@
bool Portal::_set(const StringName& p_name, const Variant& p_value) {
if (p_name=="shape") {
- DVector<float> src_coords=p_value;
+ PoolVector<float> src_coords=p_value;
Vector<Point2> points;
int src_coords_size = src_coords.size();
ERR_FAIL_COND_V(src_coords_size%2,false);
@@ -63,7 +63,7 @@ bool Portal::_get(const StringName& p_name,Variant &r_ret) const {
if (p_name=="shape") {
Vector<Point2> points=get_shape();
- DVector<float> dst_coords;
+ PoolVector<float> dst_coords;
dst_coords.resize(points.size()*2);
for (int i=0;i<points.size();i++) {
@@ -102,14 +102,14 @@ AABB Portal::get_aabb() const {
return aabb;
}
-DVector<Face3> Portal::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> Portal::get_faces(uint32_t p_usage_flags) const {
if (!(p_usage_flags&FACES_ENCLOSING))
- return DVector<Face3>();
+ return PoolVector<Face3>();
Vector<Point2> shape = get_shape();
if (shape.size()==0)
- return DVector<Face3>();
+ return PoolVector<Face3>();
Vector2 center;
for (int i=0;i<shape.size();i++) {
@@ -118,7 +118,7 @@ DVector<Face3> Portal::get_faces(uint32_t p_usage_flags) const {
}
- DVector<Face3> ret;
+ PoolVector<Face3> ret;
center/=shape.size();
for (int i=0;i<shape.size();i++) {
diff --git a/scene/3d/portal.h b/scene/3d/portal.h
index d154c18b3d..8464a628f9 100644
--- a/scene/3d/portal.h
+++ b/scene/3d/portal.h
@@ -68,7 +68,7 @@ protected:
public:
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
void set_enabled(bool p_enabled);
bool is_enabled() const;
diff --git a/scene/3d/quad.cpp b/scene/3d/quad.cpp
index 4ba828f927..f1c59860af 100644
--- a/scene/3d/quad.cpp
+++ b/scene/3d/quad.cpp
@@ -44,9 +44,9 @@ void Quad::_update() {
- DVector<Vector3> points;
+ PoolVector<Vector3> points;
points.resize(4);
- DVector<Vector3>::Write pointsw = points.write();
+ PoolVector<Vector3>::Write pointsw = points.write();
Vector2 s2 = size*0.5;
Vector2 o = offset;
@@ -70,34 +70,34 @@ void Quad::_update() {
for(int i=1;i<4;i++)
aabb.expand_to(pointsw[i]);
- pointsw = DVector<Vector3>::Write();
+ pointsw = PoolVector<Vector3>::Write();
- DVector<Vector3> normals;
+ PoolVector<Vector3> normals;
normals.resize(4);
- DVector<Vector3>::Write normalsw = normals.write();
+ PoolVector<Vector3>::Write normalsw = normals.write();
for(int i=0;i<4;i++)
normalsw[i]=normal;
- normalsw=DVector<Vector3>::Write();
+ normalsw=PoolVector<Vector3>::Write();
- DVector<Vector2> uvs;
+ PoolVector<Vector2> uvs;
uvs.resize(4);
- DVector<Vector2>::Write uvsw = uvs.write();
+ PoolVector<Vector2>::Write uvsw = uvs.write();
uvsw[0]=Vector2(0,0);
uvsw[1]=Vector2(1,0);
uvsw[2]=Vector2(1,1);
uvsw[3]=Vector2(0,1);
- uvsw = DVector<Vector2>::Write();
+ uvsw = PoolVector<Vector2>::Write();
- DVector<int> indices;
+ PoolVector<int> indices;
indices.resize(6);
- DVector<int>::Write indicesw = indices.write();
+ PoolVector<int>::Write indicesw = indices.write();
indicesw[0]=0;
indicesw[1]=1;
indicesw[2]=2;
@@ -105,7 +105,7 @@ void Quad::_update() {
indicesw[4]=3;
indicesw[5]=0;
- indicesw=DVector<int>::Write();
+ indicesw=PoolVector<int>::Write();
Array arr;
arr.resize(VS::ARRAY_MAX);
@@ -187,9 +187,9 @@ void Quad::_notification(int p_what) {
}
}
-DVector<Face3> Quad::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> Quad::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
AABB Quad::get_aabb() const {
diff --git a/scene/3d/quad.h b/scene/3d/quad.h
index bdb2cb3088..94b438c548 100644
--- a/scene/3d/quad.h
+++ b/scene/3d/quad.h
@@ -67,7 +67,7 @@ public:
void set_centered(bool p_enabled);
bool is_centered() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
virtual AABB get_aabb() const;
Quad();
diff --git a/scene/3d/reflection_probe.cpp b/scene/3d/reflection_probe.cpp
index 63855b7e98..0235a063ea 100644
--- a/scene/3d/reflection_probe.cpp
+++ b/scene/3d/reflection_probe.cpp
@@ -169,9 +169,9 @@ AABB ReflectionProbe::get_aabb() const {
aabb.size=origin_offset+extents;
return aabb;
}
-DVector<Face3> ReflectionProbe::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> ReflectionProbe::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
void ReflectionProbe::_validate_property(PropertyInfo& property) const {
diff --git a/scene/3d/reflection_probe.h b/scene/3d/reflection_probe.h
index 2de02ebbfa..789e5837b0 100644
--- a/scene/3d/reflection_probe.h
+++ b/scene/3d/reflection_probe.h
@@ -78,7 +78,7 @@ public:
UpdateMode get_update_mode() const;
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
diff --git a/scene/3d/room_instance.cpp b/scene/3d/room_instance.cpp
index 1423f56786..137a16490d 100644
--- a/scene/3d/room_instance.cpp
+++ b/scene/3d/room_instance.cpp
@@ -86,9 +86,9 @@ AABB Room::get_aabb() const {
return AABB();
}
-DVector<Face3> Room::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> Room::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
@@ -119,21 +119,21 @@ Ref<RoomBounds> Room::get_room() const {
return room;
}
-void Room::_parse_node_faces(DVector<Face3> &all_faces,const Node *p_node) const {
+void Room::_parse_node_faces(PoolVector<Face3> &all_faces,const Node *p_node) const {
const VisualInstance *vi=p_node->cast_to<VisualInstance>();
if (vi) {
- DVector<Face3> faces=vi->get_faces(FACES_ENCLOSING);
+ PoolVector<Face3> faces=vi->get_faces(FACES_ENCLOSING);
if (faces.size()) {
int old_len=all_faces.size();
all_faces.resize( all_faces.size() + faces.size() );
int new_len=all_faces.size();
- DVector<Face3>::Write all_facesw=all_faces.write();
+ PoolVector<Face3>::Write all_facesw=all_faces.write();
Face3 * all_facesptr=all_facesw.ptr();
- DVector<Face3>::Read facesr=faces.read();
+ PoolVector<Face3>::Read facesr=faces.read();
const Face3 * facesptr=facesr.ptr();
Transform tr=vi->get_relative_transform(this);
diff --git a/scene/3d/room_instance.h b/scene/3d/room_instance.h
index 8c2bb76a38..8cdc908ceb 100644
--- a/scene/3d/room_instance.h
+++ b/scene/3d/room_instance.h
@@ -63,7 +63,7 @@ private:
bool sound_enabled;
int level;
- void _parse_node_faces(DVector<Face3> &all_faces,const Node *p_node) const;
+ void _parse_node_faces(PoolVector<Face3> &all_faces,const Node *p_node) const;
void _bounds_changed();
@@ -83,7 +83,7 @@ public:
};
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
void set_room( const Ref<RoomBounds>& p_room );
Ref<RoomBounds> get_room() const;
diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp
index 576f085120..5d686e8715 100644
--- a/scene/3d/sprite_3d.cpp
+++ b/scene/3d/sprite_3d.cpp
@@ -211,9 +211,9 @@ AABB SpriteBase3D::get_aabb() const {
return aabb;
}
-DVector<Face3> SpriteBase3D::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> SpriteBase3D::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
diff --git a/scene/3d/sprite_3d.h b/scene/3d/sprite_3d.h
index 58d70fa2f7..f82a391038 100644
--- a/scene/3d/sprite_3d.h
+++ b/scene/3d/sprite_3d.h
@@ -135,7 +135,7 @@ public:
virtual Rect2 get_item_rect() const=0;
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
SpriteBase3D();
~SpriteBase3D();
diff --git a/scene/3d/test_cube.cpp b/scene/3d/test_cube.cpp
index bd99de417e..c2ebe63e21 100644
--- a/scene/3d/test_cube.cpp
+++ b/scene/3d/test_cube.cpp
@@ -35,9 +35,9 @@ AABB TestCube::get_aabb() const {
return AABB( Vector3(-1,-1,-1), Vector3(2, 2, 2 ) );
}
-DVector<Face3> TestCube::get_faces(uint32_t p_usage_flags) const {
+PoolVector<Face3> TestCube::get_faces(uint32_t p_usage_flags) const {
- return DVector<Face3>();
+ return PoolVector<Face3>();
}
diff --git a/scene/3d/test_cube.h b/scene/3d/test_cube.h
index cbd9918b13..c62999c34b 100644
--- a/scene/3d/test_cube.h
+++ b/scene/3d/test_cube.h
@@ -47,7 +47,7 @@ class TestCube : public GeometryInstance {
public:
virtual AABB get_aabb() const;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const;
TestCube();
~TestCube();
diff --git a/scene/3d/visual_instance.h b/scene/3d/visual_instance.h
index 7b76cd299e..f59ec3a7e6 100644
--- a/scene/3d/visual_instance.h
+++ b/scene/3d/visual_instance.h
@@ -66,7 +66,7 @@ public:
RID get_instance() const;
virtual AABB get_aabb() const=0;
- virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const=0;
+ virtual PoolVector<Face3> get_faces(uint32_t p_usage_flags) const=0;
virtual AABB get_transformed_aabb() const; // helper
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index 97efb26753..253c643b98 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -733,7 +733,7 @@ void AnimationPlayer::_animation_process(float p_delta) {
playing = false;
_set_process(false);
end_notify=false;
- emit_signal(SceneStringNames::get_singleton()->finished);
+ emit_signal(SceneStringNames::get_singleton()->animation_finished,playback.assigned);
}
}
@@ -1353,7 +1353,7 @@ void AnimationPlayer::_bind_methods() {
ADD_PROPERTY( PropertyInfo( Variant::REAL, "playback_default_blend_time", PROPERTY_HINT_RANGE, "0,4096,0.01"), _SCS("set_default_blend_time"), _SCS("get_default_blend_time"));
ADD_PROPERTY( PropertyInfo( Variant::NODE_PATH, "root_node"), _SCS("set_root"), _SCS("get_root"));
- ADD_SIGNAL( MethodInfo("finished") );
+ ADD_SIGNAL( MethodInfo("animation_finished", PropertyInfo(Variant::STRING,"name")) );
ADD_SIGNAL( MethodInfo("animation_changed", PropertyInfo(Variant::STRING,"old_name"), PropertyInfo(Variant::STRING,"new_name")) );
ADD_SIGNAL( MethodInfo("animation_started", PropertyInfo(Variant::STRING,"name")) );
diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h
index c03762549b..94955bec60 100644
--- a/scene/animation/animation_player.h
+++ b/scene/animation/animation_player.h
@@ -208,11 +208,11 @@ private:
void _node_removed(Node *p_node);
// bind helpers
- DVector<String> _get_animation_list() const {
+ PoolVector<String> _get_animation_list() const {
List<StringName> animations;
get_animation_list(&animations);
- DVector<String> ret;
+ PoolVector<String> ret;
while(animations.size()) {
ret.push_back( animations.front()->get());
diff --git a/scene/animation/animation_tree_player.cpp b/scene/animation/animation_tree_player.cpp
index 2ed8e52615..4df37af7a1 100644
--- a/scene/animation/animation_tree_player.cpp
+++ b/scene/animation/animation_tree_player.cpp
@@ -1740,11 +1740,11 @@ NodePath AnimationTreePlayer::get_master_player() const{
return master;
}
-DVector<String> AnimationTreePlayer::_get_node_list() {
+PoolVector<String> AnimationTreePlayer::_get_node_list() {
List<StringName> nl;
get_node_list(&nl);
- DVector<String> ret;
+ PoolVector<String> ret;
ret.resize(nl.size());
int idx=0;
for(List<StringName>::Element *E=nl.front();E;E=E->next()) {
diff --git a/scene/animation/animation_tree_player.h b/scene/animation/animation_tree_player.h
index 6d9db5dc63..ae2fe8c2bb 100644
--- a/scene/animation/animation_tree_player.h
+++ b/scene/animation/animation_tree_player.h
@@ -282,7 +282,7 @@ private:
Track* _find_track(const NodePath& p_path);
void _recompute_caches();
void _recompute_caches(const StringName& p_node);
- DVector<String> _get_node_list();
+ PoolVector<String> _get_node_list();
void _compute_weights(float *p_fallback_weight, HashMap<NodePath,float> *p_weights, float p_coeff, const HashMap<NodePath,bool> *p_filter = NULL, float p_filtered_coeff = 0);
diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp
index 646bc70585..45c491cd74 100644
--- a/scene/gui/base_button.cpp
+++ b/scene/gui/base_button.cpp
@@ -29,11 +29,24 @@
#include "base_button.h"
#include "os/keyboard.h"
#include "print_string.h"
-#include "button_group.h"
#include "scene/scene_string_names.h"
#include "scene/main/viewport.h"
-void BaseButton::_input_event(InputEvent p_event) {
+
+void BaseButton::_unpress_group() {
+
+ if (!button_group.is_valid())
+ return;
+
+ for (Set<BaseButton*>::Element *E=button_group->buttons.front();E;E=E->next()) {
+ if (E->get()==this)
+ continue;
+
+ E->get()->set_pressed(false);
+ }
+}
+
+void BaseButton::_gui_input(InputEvent p_event) {
if (status.disabled) // no interaction with disabled button
@@ -69,6 +82,8 @@ void BaseButton::_input_event(InputEvent p_event) {
}
emit_signal("pressed");
+ _unpress_group();
+
} else {
@@ -79,6 +94,8 @@ void BaseButton::_input_event(InputEvent p_event) {
get_script_instance()->call(SceneStringNames::get_singleton()->_pressed,NULL,0,ce);
}
emit_signal("pressed");
+ _unpress_group();
+
toggled(status.pressed);
emit_signal("toggled",status.pressed);
@@ -90,10 +107,11 @@ void BaseButton::_input_event(InputEvent p_event) {
emit_signal("button_up");
- if (status.press_attempt && status.pressing_inside) {
+/* this is pointless if (status.press_attempt && status.pressing_inside) {
// released();
emit_signal("released");
}
+*/
status.press_attempt=false;
}
update();
@@ -138,6 +156,9 @@ void BaseButton::_input_event(InputEvent p_event) {
}
+ _unpress_group();
+
+
}
status.press_attempt=false;
@@ -156,7 +177,7 @@ void BaseButton::_input_event(InputEvent p_event) {
}
} break;
case InputEvent::ACTION:
- case InputEvent::JOYSTICK_BUTTON:
+ case InputEvent::JOYPAD_BUTTON:
case InputEvent::KEY: {
@@ -211,6 +232,9 @@ void BaseButton::_input_event(InputEvent p_event) {
}
emit_signal("toggled",status.pressed);
}
+
+ _unpress_group();
+
}
accept_event();
@@ -265,24 +289,12 @@ void BaseButton::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
- CanvasItem *ci=this;
- while(ci) {
-
- ButtonGroup *bg = ci->cast_to<ButtonGroup>();
- if (bg) {
- group=bg;
- group->_add_button(this);
- }
-
- ci=ci->get_parent_item();
- }
}
if (p_what==NOTIFICATION_EXIT_TREE) {
- if (group)
- group->_remove_button(this);
+
}
if (p_what==NOTIFICATION_VISIBILITY_CHANGED && !is_visible()) {
@@ -305,8 +317,9 @@ void BaseButton::pressed() {
void BaseButton::toggled(bool p_pressed) {
- if (get_script_instance())
+ if (get_script_instance()) {
get_script_instance()->call("toggled",p_pressed);
+ }
}
@@ -335,6 +348,11 @@ void BaseButton::set_pressed(bool p_pressed) {
return;
_change_notify("pressed");
status.pressed=p_pressed;
+
+ if (p_pressed) {
+ _unpress_group();
+
+ }
update();
}
@@ -462,9 +480,32 @@ String BaseButton::get_tooltip(const Point2& p_pos) const {
return tooltip;
}
+
+void BaseButton::set_button_group(const Ref<ButtonGroup>& p_group) {
+
+ if (button_group.is_valid()) {
+ button_group->buttons.erase(this);
+ }
+
+ button_group=p_group;
+
+ if (button_group.is_valid()) {
+ button_group->buttons.insert(this);
+ }
+
+ update(); //checkbox changes to radio if set a buttongroup
+
+}
+
+Ref<ButtonGroup> BaseButton::get_button_group() const {
+
+ return button_group;
+}
+
+
void BaseButton::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&BaseButton::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&BaseButton::_gui_input);
ClassDB::bind_method(_MD("_unhandled_input"),&BaseButton::_unhandled_input);
ClassDB::bind_method(_MD("set_pressed","pressed"),&BaseButton::set_pressed);
ClassDB::bind_method(_MD("is_pressed"),&BaseButton::is_pressed);
@@ -478,14 +519,17 @@ void BaseButton::_bind_methods() {
ClassDB::bind_method(_MD("get_draw_mode"),&BaseButton::get_draw_mode);
ClassDB::bind_method(_MD("set_enabled_focus_mode","mode"),&BaseButton::set_enabled_focus_mode);
ClassDB::bind_method(_MD("get_enabled_focus_mode"),&BaseButton::get_enabled_focus_mode);
+
ClassDB::bind_method(_MD("set_shortcut","shortcut"),&BaseButton::set_shortcut);
ClassDB::bind_method(_MD("get_shortcut"),&BaseButton::get_shortcut);
+ ClassDB::bind_method(_MD("set_button_group","button_group"),&BaseButton::set_button_group);
+ ClassDB::bind_method(_MD("get_button_group"),&BaseButton::get_button_group);
+
BIND_VMETHOD(MethodInfo("_pressed"));
BIND_VMETHOD(MethodInfo("_toggled",PropertyInfo(Variant::BOOL,"pressed")));
ADD_SIGNAL( MethodInfo("pressed" ) );
- ADD_SIGNAL( MethodInfo("released" ) );
ADD_SIGNAL( MethodInfo("button_up") );
ADD_SIGNAL( MethodInfo("button_down") );
ADD_SIGNAL( MethodInfo("toggled", PropertyInfo( Variant::BOOL,"pressed") ) );
@@ -495,6 +539,7 @@ void BaseButton::_bind_methods() {
ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "click_on_press"), _SCS("set_click_on_press"), _SCS("get_click_on_press"));
ADD_PROPERTY( PropertyInfo( Variant::INT,"enabled_focus_mode", PROPERTY_HINT_ENUM, "None,Click,All" ), _SCS("set_enabled_focus_mode"), _SCS("get_enabled_focus_mode") );
ADD_PROPERTY( PropertyInfo( Variant::OBJECT, "shortcut",PROPERTY_HINT_RESOURCE_TYPE,"ShortCut"), _SCS("set_shortcut"), _SCS("get_shortcut"));
+ ADD_PROPERTY( PropertyInfo( Variant::OBJECT, "group",PROPERTY_HINT_RESOURCE_TYPE,"ButtonGroup"), _SCS("set_button_group"), _SCS("get_button_group"));
BIND_CONSTANT( DRAW_NORMAL );
@@ -516,7 +561,11 @@ BaseButton::BaseButton() {
status.pressing_button=0;
set_focus_mode( FOCUS_ALL );
enabled_focus_mode = FOCUS_ALL;
- group=NULL;
+
+
+ if (button_group.is_valid()) {
+ button_group->buttons.erase(this);
+ }
}
@@ -525,4 +574,30 @@ BaseButton::~BaseButton()
{
}
+void ButtonGroup::get_buttons(List<BaseButton*> *r_buttons) {
+ for (Set<BaseButton*>::Element *E=buttons.front();E;E=E->next()) {
+ r_buttons->push_back(E->get());
+ }
+}
+
+BaseButton* ButtonGroup::get_pressed_button() {
+
+ for (Set<BaseButton*>::Element *E=buttons.front();E;E=E->next()) {
+ if (E->get()->is_pressed())
+ return E->get();
+ }
+
+ return NULL;
+
+}
+
+void ButtonGroup::_bind_methods() {
+
+ ClassDB::bind_method(_MD("get_pressed_button:BaseButton"),&ButtonGroup::get_pressed_button);
+}
+
+ButtonGroup::ButtonGroup() {
+
+ set_local_to_scene(true);
+}
diff --git a/scene/gui/base_button.h b/scene/gui/base_button.h
index 6fbf11dedd..898c19e811 100644
--- a/scene/gui/base_button.h
+++ b/scene/gui/base_button.h
@@ -59,9 +59,11 @@ class BaseButton : public Control {
} status;
- ButtonGroup *group;
+ Ref<ButtonGroup> button_group;
+ void _unpress_group();
+
protected:
@@ -70,7 +72,7 @@ protected:
virtual void pressed();
virtual void toggled(bool p_pressed);
static void _bind_methods();
- virtual void _input_event(InputEvent p_event);
+ virtual void _gui_input(InputEvent p_event);
virtual void _unhandled_input(InputEvent p_event);
void _notification(int p_what);
@@ -109,11 +111,29 @@ public:
virtual String get_tooltip(const Point2& p_pos) const;
+ void set_button_group(const Ref<ButtonGroup>& p_group);
+ Ref<ButtonGroup> get_button_group() const;
+
BaseButton();
~BaseButton();
};
-VARIANT_ENUM_CAST( BaseButton::DrawMode );
+VARIANT_ENUM_CAST( BaseButton::DrawMode )
+
+
+class ButtonGroup : public Resource {
+
+ GDCLASS(ButtonGroup,Resource)
+friend class BaseButton;
+ Set<BaseButton*> buttons;
+protected:
+ static void _bind_methods();
+public:
+
+ BaseButton* get_pressed_button();
+ void get_buttons(List<BaseButton*> *r_buttons);
+ ButtonGroup();
+};
#endif
diff --git a/scene/gui/box_container.cpp b/scene/gui/box_container.cpp
index 531c3b0a00..f31f51a5cd 100644
--- a/scene/gui/box_container.cpp
+++ b/scene/gui/box_container.cpp
@@ -280,7 +280,8 @@ BoxContainer::AlignMode BoxContainer::get_alignment() const {
void BoxContainer::add_spacer(bool p_begin) {
Control *c = memnew( Control );
- c->set_stop_mouse(false);
+ c->set_mouse_filter(MOUSE_FILTER_PASS); //allow spacer to pass mouse events
+
if (vertical)
c->set_v_size_flags(SIZE_EXPAND_FILL);
else
@@ -296,7 +297,7 @@ BoxContainer::BoxContainer(bool p_vertical) {
vertical=p_vertical;
align = ALIGN_BEGIN;
// set_ignore_mouse(true);
- set_stop_mouse(false);
+ set_mouse_filter(MOUSE_FILTER_PASS);
}
void BoxContainer::_bind_methods() {
diff --git a/scene/gui/button.cpp b/scene/gui/button.cpp
index 9c96adcbf2..f28595b622 100644
--- a/scene/gui/button.cpp
+++ b/scene/gui/button.cpp
@@ -34,7 +34,7 @@
Size2 Button::get_minimum_size() const {
- Size2 minsize=get_font("font")->get_string_size( text );
+ Size2 minsize=get_font("font")->get_string_size( xl_text );
if (clip_text)
minsize.width=0;
@@ -48,7 +48,7 @@ Size2 Button::get_minimum_size() const {
minsize.height=MAX( minsize.height, _icon->get_height() );
minsize.width+=_icon->get_width();
- if (text!="")
+ if (xl_text!="")
minsize.width+=get_constant("hseparation");
}
@@ -59,6 +59,13 @@ Size2 Button::get_minimum_size() const {
void Button::_notification(int p_what) {
+ if (p_what==NOTIFICATION_TRANSLATION_CHANGED) {
+
+ xl_text=XL_MESSAGE(text);
+ minimum_size_changed();
+ update();
+ }
+
if (p_what==NOTIFICATION_DRAW) {
RID ci = get_canvas_item();
@@ -114,7 +121,7 @@ void Button::_notification(int p_what) {
Point2 icon_ofs = (!_icon.is_null())?Point2( _icon->get_width() + get_constant("hseparation"), 0):Point2();
int text_clip=size.width - style->get_minimum_size().width - icon_ofs.width;
- Point2 text_ofs = (size - style->get_minimum_size() - icon_ofs - font->get_string_size( text ) )/2.0;
+ Point2 text_ofs = (size - style->get_minimum_size() - icon_ofs - font->get_string_size( xl_text ) )/2.0;
switch(align) {
case ALIGN_LEFT: {
@@ -128,14 +135,14 @@ void Button::_notification(int p_what) {
text_ofs+=style->get_offset();
} break;
case ALIGN_RIGHT: {
- text_ofs.x=size.x - style->get_margin(MARGIN_RIGHT) - font->get_string_size( text ).x;
+ text_ofs.x=size.x - style->get_margin(MARGIN_RIGHT) - font->get_string_size( xl_text ).x;
text_ofs.y+=style->get_offset().y;
} break;
}
text_ofs.y+=font->get_ascent();
- font->draw( ci, text_ofs.floor(), text, color,clip_text?text_clip:-1);
+ font->draw( ci, text_ofs.floor(), xl_text, color,clip_text?text_clip:-1);
if (!_icon.is_null()) {
int valign = size.height-style->get_minimum_size().y;
@@ -152,7 +159,8 @@ void Button::set_text(const String& p_text) {
if (text==p_text)
return;
- text=XL_MESSAGE(p_text);
+ text=p_text;
+ xl_text=XL_MESSAGE(p_text);
update();
_change_notify("text");
minimum_size_changed();
@@ -242,7 +250,7 @@ Button::Button(const String &p_text) {
flat=false;
clip_text=false;
- set_stop_mouse(true);
+ set_mouse_filter(MOUSE_FILTER_STOP);
set_text(p_text);
align=ALIGN_CENTER;
}
diff --git a/scene/gui/button.h b/scene/gui/button.h
index 408e31e111..2fd3a0cace 100644
--- a/scene/gui/button.h
+++ b/scene/gui/button.h
@@ -33,6 +33,9 @@
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
+
+
+
class Button : public BaseButton {
GDCLASS( Button, BaseButton );
@@ -49,6 +52,7 @@ private:
bool flat;
String text;
+ String xl_text;
Ref<Texture> icon;
bool clip_text;
TextAlign align;
diff --git a/scene/gui/button_array.cpp b/scene/gui/button_array.cpp
index d6b2c12a3a..3d7c0e2825 100644
--- a/scene/gui/button_array.cpp
+++ b/scene/gui/button_array.cpp
@@ -300,7 +300,7 @@ void ButtonArray::_notification(int p_what) {
}
-void ButtonArray::_input_event(const InputEvent& p_event) {
+void ButtonArray::_gui_input(const InputEvent& p_event) {
if (
( (orientation==HORIZONTAL && p_event.is_action("ui_left") ) ||
@@ -544,7 +544,7 @@ void ButtonArray::_bind_methods() {
ClassDB::bind_method(_MD("erase_button","button_idx"),&ButtonArray::erase_button);
ClassDB::bind_method(_MD("clear"),&ButtonArray::clear);
- ClassDB::bind_method(_MD("_input_event"),&ButtonArray::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&ButtonArray::_gui_input);
BIND_CONSTANT( ALIGN_BEGIN );
BIND_CONSTANT( ALIGN_CENTER );
diff --git a/scene/gui/button_array.h b/scene/gui/button_array.h
index 6df0f3b6a4..37533695c9 100644
--- a/scene/gui/button_array.h
+++ b/scene/gui/button_array.h
@@ -74,7 +74,7 @@ protected:
public:
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void set_align(Align p_align);
diff --git a/scene/gui/button_group.cpp b/scene/gui/button_group.cpp
index 8586296ba6..01a3f633c3 100644
--- a/scene/gui/button_group.cpp
+++ b/scene/gui/button_group.cpp
@@ -27,6 +27,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "button_group.h"
+
+#if 0
#include "base_button.h"
void ButtonGroup::_add_button(BaseButton *p_button) {
@@ -162,3 +164,4 @@ void ButtonGroup::_bind_methods() {
ButtonGroup::ButtonGroup() : BoxContainer(true)
{
}
+#endif
diff --git a/scene/gui/button_group.h b/scene/gui/button_group.h
index e3380295e7..38acd06984 100644
--- a/scene/gui/button_group.h
+++ b/scene/gui/button_group.h
@@ -31,7 +31,7 @@
#include "scene/gui/box_container.h"
-
+#if 0
class BaseButton;
class ButtonGroup : public BoxContainer {
@@ -63,4 +63,5 @@ public:
ButtonGroup();
};
+#endif
#endif // BUTTON_GROUP_H
diff --git a/scene/gui/check_box.cpp b/scene/gui/check_box.cpp
index 901386eb45..c9803bc654 100644
--- a/scene/gui/check_box.cpp
+++ b/scene/gui/check_box.cpp
@@ -56,14 +56,8 @@ void CheckBox::_notification(int p_what) {
bool CheckBox::is_radio()
{
- Node* parent = this;
- do {
- parent = parent->get_parent();
- if (parent->cast_to<ButtonGroup>())
- break;
- } while (parent);
- return (parent != 0);
+ return get_button_group().is_valid();
}
CheckBox::CheckBox(const String &p_text):
diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp
index ceb3b69f2f..ac8ce68564 100644
--- a/scene/gui/color_picker.cpp
+++ b/scene/gui/color_picker.cpp
@@ -170,11 +170,11 @@ void ColorPicker::_update_presets()
Size2 size=bt_add_preset->get_size();
preset->set_custom_minimum_size(Size2(size.width*presets.size(),size.height));
- DVector<uint8_t> img;
+ PoolVector<uint8_t> img;
img.resize(size.x*presets.size()*size.y*3);
{
- DVector<uint8_t>::Write w=img.write();
+ PoolVector<uint8_t>::Write w=img.write();
for (int y=0;y<size.y;y++) {
for (int x=0;x<size.x*presets.size();x++) {
int ofs = (y*(size.x*presets.size())+x)*3;
@@ -421,7 +421,7 @@ void ColorPicker::_screen_input(const InputEvent &ev)
int pw = last_capture.get_format()==Image::FORMAT_RGBA8?4:3;
int ofs = (mev.global_y*last_capture.get_width()+mev.global_x)*pw;
- DVector<uint8_t>::Read r = last_capture.get_data().read();
+ PoolVector<uint8_t>::Read r = last_capture.get_data().read();
Color c( r[ofs+0]/255.0, r[ofs+1]/255.0, r[ofs+2]/255.0 );
@@ -442,7 +442,7 @@ void ColorPicker::_screen_pick_pressed()
r->add_child(screen);
screen->set_as_toplevel(true);
screen->set_area_as_parent_rect();
- screen->connect("input_event",this,"_screen_input");
+ screen->connect("gui_input",this,"_screen_input");
}
screen->raise();
screen->show_modal();
@@ -501,9 +501,9 @@ ColorPicker::ColorPicker() :
- uv_edit->set_ignore_mouse(false);
- uv_edit->connect("input_event", this, "_uv_input");
- uv_edit->set_stop_mouse(false);
+
+ uv_edit->connect("gui_input", this, "_uv_input");
+ uv_edit->set_mouse_filter(MOUSE_FILTER_PASS);
uv_edit->set_custom_minimum_size(Size2 (256,256));
Vector<Variant> args=Vector<Variant>();
args.push_back(0);
@@ -513,9 +513,9 @@ ColorPicker::ColorPicker() :
add_child(hb_edit);
w_edit= memnew( Control );
- w_edit->set_ignore_mouse(false);
+ //w_edit->set_ignore_mouse(false);
w_edit->set_custom_minimum_size(Size2(30,256));
- w_edit->connect("input_event", this, "_w_input");
+ w_edit->connect("gui_input", this, "_w_input");
args.clear();
args.push_back(1);
args.push_back(w_edit);
@@ -592,8 +592,8 @@ ColorPicker::ColorPicker() :
preset = memnew( TextureFrame );
bbc->add_child(preset);
- preset->set_ignore_mouse(false);
- preset->connect("input_event", this, "_preset_input");
+ //preset->set_ignore_mouse(false);
+ preset->connect("gui_input", this, "_preset_input");
bt_add_preset = memnew ( Button );
bt_add_preset->set_icon(get_icon("add_preset"));
@@ -683,7 +683,7 @@ ColorPickerButton::ColorPickerButton() {
popup = memnew( PopupPanel );
picker = memnew( ColorPicker );
popup->add_child(picker);
- popup->set_child_rect(picker);
+
picker->connect("color_changed",this,"_color_changed");
add_child(popup);
}
diff --git a/scene/gui/color_ramp_edit.cpp b/scene/gui/color_ramp_edit.cpp
index 195acebdfd..c3ed3d821d 100644
--- a/scene/gui/color_ramp_edit.cpp
+++ b/scene/gui/color_ramp_edit.cpp
@@ -37,7 +37,7 @@ ColorRampEdit::ColorRampEdit(){
popup = memnew( PopupPanel );
picker = memnew( ColorPicker );
popup->add_child(picker);
- popup->set_child_rect(picker);
+
add_child(popup);
checker = Ref<ImageTexture>(memnew( ImageTexture ));
@@ -70,7 +70,7 @@ ColorRampEdit::~ColorRampEdit() {
}
-void ColorRampEdit::_input_event(const InputEvent& p_event) {
+void ColorRampEdit::_gui_input(const InputEvent& p_event) {
if (p_event.type==InputEvent::KEY && p_event.key.pressed && p_event.key.scancode==KEY_DELETE && grabbed!=-1) {
@@ -446,7 +446,7 @@ Vector<ColorRamp::Point>& ColorRampEdit::get_points() {
}
void ColorRampEdit::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&ColorRampEdit::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&ColorRampEdit::_gui_input);
ClassDB::bind_method(_MD("_color_changed"),&ColorRampEdit::_color_changed);
ADD_SIGNAL(MethodInfo("ramp_changed"));
}
diff --git a/scene/gui/color_ramp_edit.h b/scene/gui/color_ramp_edit.h
index c67a75e152..c6a20a539d 100644
--- a/scene/gui/color_ramp_edit.h
+++ b/scene/gui/color_ramp_edit.h
@@ -55,7 +55,7 @@ class ColorRampEdit : public Control {
void _show_color_picker();
protected:
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void _notification(int p_what);
static void _bind_methods();
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 6589dfcef0..a4b07d9a13 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -116,30 +116,7 @@ bool Control::_set(const StringName& p_name, const Variant& p_value) {
String name= p_name;
if (!name.begins_with("custom")) {
- if (name.begins_with("margin/")) {
- String dname = name.get_slicec('/', 1);
- if (dname == "left") {
- set_margin(MARGIN_LEFT, p_value);
- return true;
- }
- else if (dname == "top") {
- set_margin(MARGIN_TOP, p_value);
- return true;
- }
- else if (dname == "right") {
- set_margin(MARGIN_RIGHT, p_value);
- return true;
- }
- else if (dname == "bottom") {
- set_margin(MARGIN_BOTTOM, p_value);
- return true;
- }
- else {
- return false;
- }
- } else {
- return false;
- }
+ return false;
}
if (p_value.get_type()==Variant::NIL) {
@@ -235,30 +212,8 @@ bool Control::_get(const StringName& p_name,Variant &r_ret) const {
String sname=p_name;
if (!sname.begins_with("custom")) {
- if (sname.begins_with("margin/")) {
- String dname = sname.get_slicec('/', 1);
- if (dname == "left") {
- r_ret = get_margin(MARGIN_LEFT);
- return true;
- }
- else if (dname == "top") {
- r_ret = get_margin(MARGIN_TOP);
- return true;
- }
- else if (dname == "right") {
- r_ret = get_margin(MARGIN_RIGHT);
- return true;
- }
- else if (dname == "bottom") {
- r_ret = get_margin(MARGIN_BOTTOM);
- return true;
- }
- else {
- return false;
- }
- } else {
- return false;
- }
+ return false;
+
}
if (sname.begins_with("custom_icons/")) {
@@ -295,36 +250,6 @@ bool Control::_get(const StringName& p_name,Variant &r_ret) const {
}
void Control::_get_property_list( List<PropertyInfo> *p_list) const {
- {
- if (get_anchor(MARGIN_LEFT) == ANCHOR_RATIO) {
- p_list->push_back(PropertyInfo(Variant::REAL, "margin/left", PROPERTY_HINT_RANGE, "-4096,4096,0.001"));
- }
- else {
- p_list->push_back(PropertyInfo(Variant::INT, "margin/left", PROPERTY_HINT_RANGE, "-4096,4096"));
- }
-
- if (get_anchor(MARGIN_TOP) == ANCHOR_RATIO) {
- p_list->push_back(PropertyInfo(Variant::REAL, "margin/top", PROPERTY_HINT_RANGE, "-4096,4096,0.001"));
- }
- else {
- p_list->push_back(PropertyInfo(Variant::INT, "margin/top", PROPERTY_HINT_RANGE, "-4096,4096"));
- }
-
- if (get_anchor(MARGIN_RIGHT) == ANCHOR_RATIO) {
- p_list->push_back(PropertyInfo(Variant::REAL, "margin/right", PROPERTY_HINT_RANGE, "-4096,4096,0.001"));
- }
- else {
- p_list->push_back(PropertyInfo(Variant::INT, "margin/right", PROPERTY_HINT_RANGE, "-4096,4096"));
- }
-
- if (get_anchor(MARGIN_BOTTOM) == ANCHOR_RATIO) {
- p_list->push_back(PropertyInfo(Variant::REAL, "margin/bottom", PROPERTY_HINT_RANGE, "-4096,4096,0.001"));
- }
- else {
- p_list->push_back(PropertyInfo(Variant::INT, "margin/bottom", PROPERTY_HINT_RANGE, "-4096,4096"));
- }
- }
-
Ref<Theme> theme;
if (data.theme.is_valid()) {
@@ -607,7 +532,7 @@ void Control::_notification(int p_notification) {
_update_canvas_item_transform();
VisualServer::get_singleton()->canvas_item_set_custom_rect( get_canvas_item(),!data.disable_visibility_clip, Rect2(Point2(),get_size()));
-
+ VisualServer::get_singleton()->canvas_item_set_clip( get_canvas_item(), data.clip_contents );
//emit_signal(SceneStringNames::get_singleton()->draw);
} break;
@@ -1258,14 +1183,10 @@ void Control::_size_changed() {
margin_pos[i]=area-data.margin[i];
} break;
- case ANCHOR_RATIO: {
+ case ANCHOR_CENTER: {
- margin_pos[i]=area*data.margin[i];
+ margin_pos[i]=(area/2)-data.margin[i];
} break;
- case ANCHOR_CENTER: {
-
- margin_pos[i]=(area/2)-data.margin[i];
- } break;
}
}
@@ -1334,12 +1255,9 @@ float Control::_s2a(float p_val, AnchorType p_anchor,float p_range) const {
case ANCHOR_END: {
return p_range-p_val;
} break;
- case ANCHOR_RATIO: {
- return p_val/p_range;
+ case ANCHOR_CENTER: {
+ return (p_range/2)-p_val;
} break;
- case ANCHOR_CENTER: {
- return (p_range/2)-p_val;
- } break;
}
return 0;
@@ -1356,11 +1274,8 @@ float Control::_a2s(float p_val, AnchorType p_anchor,float p_range) const {
case ANCHOR_END: {
return Math::floor(p_range-p_val);
} break;
- case ANCHOR_RATIO: {
- return Math::floor(p_range*p_val);
- } break;
case ANCHOR_CENTER: {
- return Math::floor((p_range/2)-p_val);
+ return Math::floor((p_range/2)-p_val);
} break;
}
return 0;
@@ -2246,25 +2161,17 @@ int Control::get_v_size_flags() const{
return data.v_size_flags;
}
-void Control::set_ignore_mouse(bool p_ignore) {
+void Control::set_mouse_filter(MouseFilter p_filter) {
- data.ignore_mouse=p_ignore;
+ ERR_FAIL_INDEX(p_filter,3);
+ data.mouse_filter=p_filter;
}
-bool Control::is_ignoring_mouse() const {
+Control::MouseFilter Control::get_mouse_filter() const{
- return data.ignore_mouse;
+ return data.mouse_filter;
}
-void Control::set_stop_mouse(bool p_stop) {
-
- data.stop_mouse=p_stop;
-}
-
-bool Control::is_stopping_mouse() const {
-
- return data.stop_mouse;
-}
Control *Control::get_focus_owner() const {
@@ -2433,6 +2340,16 @@ void Control::get_argument_options(const StringName& p_function,int p_idx,List<S
}
+void Control::set_clip_contents(bool p_clip) {
+
+ data.clip_contents=p_clip;
+ update();
+}
+
+bool Control::is_clipping_contents() {
+
+ return data.clip_contents;
+}
void Control::_bind_methods() {
@@ -2535,13 +2452,13 @@ void Control::_bind_methods() {
ClassDB::bind_method(_MD("set_focus_neighbour","margin","neighbour"),&Control::set_focus_neighbour);
ClassDB::bind_method(_MD("get_focus_neighbour","margin"),&Control::get_focus_neighbour);
- ClassDB::bind_method(_MD("set_ignore_mouse","ignore"),&Control::set_ignore_mouse);
- ClassDB::bind_method(_MD("is_ignoring_mouse"),&Control::is_ignoring_mouse);
-
ClassDB::bind_method(_MD("force_drag","data","preview"),&Control::force_drag);
- ClassDB::bind_method(_MD("set_stop_mouse","stop"),&Control::set_stop_mouse);
- ClassDB::bind_method(_MD("is_stopping_mouse"),&Control::is_stopping_mouse);
+ ClassDB::bind_method(_MD("set_mouse_filter","filter"),&Control::set_mouse_filter);
+ ClassDB::bind_method(_MD("get_mouse_filter"),&Control::get_mouse_filter);
+
+ ClassDB::bind_method(_MD("set_clip_contents","enable"),&Control::set_clip_contents);
+ ClassDB::bind_method(_MD("is_clipping_contents"),&Control::is_clipping_contents);
ClassDB::bind_method(_MD("grab_click_focus"),&Control::grab_click_focus);
@@ -2558,17 +2475,23 @@ void Control::_bind_methods() {
ClassDB::bind_method(_MD("_font_changed"), &Control::_font_changed);
- BIND_VMETHOD(MethodInfo("_input_event",PropertyInfo(Variant::INPUT_EVENT,"event")));
+ BIND_VMETHOD(MethodInfo("_gui_input",PropertyInfo(Variant::INPUT_EVENT,"event")));
BIND_VMETHOD(MethodInfo(Variant::VECTOR2,"get_minimum_size"));
BIND_VMETHOD(MethodInfo(Variant::OBJECT,"get_drag_data",PropertyInfo(Variant::VECTOR2,"pos")));
BIND_VMETHOD(MethodInfo(Variant::BOOL,"can_drop_data",PropertyInfo(Variant::VECTOR2,"pos"),PropertyInfo(Variant::NIL,"data")));
BIND_VMETHOD(MethodInfo("drop_data",PropertyInfo(Variant::VECTOR2,"pos"),PropertyInfo(Variant::NIL,"data")));
ADD_GROUP("Anchor","anchor_");
- ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"anchor_left", PROPERTY_HINT_ENUM, "Begin,End,Ratio,Center"), _SCS("_set_anchor"),_SCS("get_anchor"), MARGIN_LEFT );
- ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"anchor_top", PROPERTY_HINT_ENUM, "Begin,End,Ratio,Center"), _SCS("_set_anchor"),_SCS("get_anchor"), MARGIN_TOP );
- ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"anchor_right", PROPERTY_HINT_ENUM, "Begin,End,Ratio,Center"), _SCS("_set_anchor"),_SCS("get_anchor"), MARGIN_RIGHT );
- ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"anchor_bottom", PROPERTY_HINT_ENUM, "Begin,End,Ratio,Center"), _SCS("_set_anchor"),_SCS("get_anchor"), MARGIN_BOTTOM );
+ ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"anchor_left", PROPERTY_HINT_ENUM, "Begin,End,Center"), _SCS("_set_anchor"),_SCS("get_anchor"), MARGIN_LEFT );
+ ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"anchor_top", PROPERTY_HINT_ENUM, "Begin,End,Center"), _SCS("_set_anchor"),_SCS("get_anchor"), MARGIN_TOP );
+ ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"anchor_right", PROPERTY_HINT_ENUM, "Begin,End,Center"), _SCS("_set_anchor"),_SCS("get_anchor"), MARGIN_RIGHT );
+ ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"anchor_bottom", PROPERTY_HINT_ENUM, "Begin,End,Center"), _SCS("_set_anchor"),_SCS("get_anchor"), MARGIN_BOTTOM );
+
+ ADD_GROUP("Margin","margin_");
+ ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"margin_left", PROPERTY_HINT_RANGE, "-4096,4096"), _SCS("set_margin"),_SCS("get_margin"),MARGIN_LEFT );
+ ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"margin_top", PROPERTY_HINT_RANGE, "-4096,4096"), _SCS("set_margin"),_SCS("get_margin"),MARGIN_TOP );
+ ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"margin_right", PROPERTY_HINT_RANGE, "-4096,4096"), _SCS("set_margin"),_SCS("get_margin"),MARGIN_RIGHT );
+ ADD_PROPERTYINZ( PropertyInfo(Variant::INT,"margin_bottom", PROPERTY_HINT_RANGE, "-4096,4096"), _SCS("set_margin"),_SCS("get_margin"),MARGIN_BOTTOM );
ADD_GROUP("Rect","rect_");
ADD_PROPERTYNZ( PropertyInfo(Variant::VECTOR2,"rect_pos", PROPERTY_HINT_NONE, "",PROPERTY_USAGE_EDITOR), _SCS("set_pos"),_SCS("get_pos") );
@@ -2576,21 +2499,24 @@ void Control::_bind_methods() {
ADD_PROPERTYNZ( PropertyInfo(Variant::VECTOR2,"rect_min_size"), _SCS("set_custom_minimum_size"),_SCS("get_custom_minimum_size") );
ADD_PROPERTYNZ( PropertyInfo(Variant::REAL,"rect_rotation",PROPERTY_HINT_RANGE,"-1080,1080,0.01"), _SCS("set_rotation_deg"),_SCS("get_rotation_deg") );
ADD_PROPERTYNO( PropertyInfo(Variant::VECTOR2,"rect_scale"), _SCS("set_scale"),_SCS("get_scale") );
+ ADD_PROPERTYNO( PropertyInfo(Variant::BOOL,"rect_clip_content"), _SCS("set_clip_contents"),_SCS("is_clipping_contents") );
+
ADD_GROUP("Hint","hint_");
ADD_PROPERTYNZ( PropertyInfo(Variant::STRING,"hint_tooltip", PROPERTY_HINT_MULTILINE_TEXT), _SCS("set_tooltip"),_SCS("_get_tooltip") );
ADD_GROUP("Focus","focus_");
- ADD_PROPERTY( PropertyInfo(Variant::BOOL,"focus_ignore_mouse"), _SCS("set_ignore_mouse"),_SCS("is_ignoring_mouse") );
- ADD_PROPERTY( PropertyInfo(Variant::BOOL,"focus_stop_mouse"), _SCS("set_stop_mouse"),_SCS("is_stopping_mouse") );
ADD_PROPERTYINZ( PropertyInfo(Variant::NODE_PATH,"focus_neighbour_left" ), _SCS("set_focus_neighbour"),_SCS("get_focus_neighbour"),MARGIN_LEFT );
ADD_PROPERTYINZ( PropertyInfo(Variant::NODE_PATH,"focus_neighbour_top" ), _SCS("set_focus_neighbour"),_SCS("get_focus_neighbour"),MARGIN_TOP );
ADD_PROPERTYINZ( PropertyInfo(Variant::NODE_PATH,"focus_neighbour_right" ), _SCS("set_focus_neighbour"),_SCS("get_focus_neighbour"),MARGIN_RIGHT );
ADD_PROPERTYINZ( PropertyInfo(Variant::NODE_PATH,"focus_neighbour_bottom" ), _SCS("set_focus_neighbour"),_SCS("get_focus_neighbour"),MARGIN_BOTTOM );
+ ADD_GROUP("Mouse","mouse_");
+ ADD_PROPERTY( PropertyInfo(Variant::INT,"mouse_filter",PROPERTY_HINT_ENUM,"Stop,Pass,Ignore"), _SCS("set_mouse_filter"),_SCS("get_mouse_filter") );
+
ADD_GROUP("Size Flags","size_flags_");
- ADD_PROPERTY( PropertyInfo(Variant::INT,"size_flags_horizontal", PROPERTY_HINT_FLAGS, "Expand,Fill"), _SCS("set_h_size_flags"),_SCS("get_h_size_flags") );
- ADD_PROPERTY( PropertyInfo(Variant::INT,"size_flags_vertical", PROPERTY_HINT_FLAGS, "Expand,Fill"), _SCS("set_v_size_flags"),_SCS("get_v_size_flags") );
+ ADD_PROPERTYNO( PropertyInfo(Variant::INT,"size_flags_horizontal", PROPERTY_HINT_FLAGS, "Fill,Expand"), _SCS("set_h_size_flags"),_SCS("get_h_size_flags") );
+ ADD_PROPERTYNO( PropertyInfo(Variant::INT,"size_flags_vertical", PROPERTY_HINT_FLAGS, "Fill,Expand"), _SCS("set_v_size_flags"),_SCS("get_v_size_flags") );
ADD_PROPERTYNO( PropertyInfo(Variant::INT,"size_flags_stretch_ratio", PROPERTY_HINT_RANGE, "1,128,0.01"), _SCS("set_stretch_ratio"),_SCS("get_stretch_ratio") );
ADD_GROUP("Theme","");
ADD_PROPERTYNZ( PropertyInfo(Variant::OBJECT,"theme", PROPERTY_HINT_RESOURCE_TYPE, "Theme"), _SCS("set_theme"),_SCS("get_theme") );
@@ -2598,7 +2524,6 @@ void Control::_bind_methods() {
BIND_CONSTANT( ANCHOR_BEGIN );
BIND_CONSTANT( ANCHOR_END );
- BIND_CONSTANT( ANCHOR_RATIO );
BIND_CONSTANT( ANCHOR_CENTER );
BIND_CONSTANT( FOCUS_NONE );
BIND_CONSTANT( FOCUS_CLICK );
@@ -2635,8 +2560,12 @@ void Control::_bind_methods() {
BIND_CONSTANT( SIZE_FILL );
BIND_CONSTANT( SIZE_EXPAND_FILL );
+ BIND_CONSTANT( MOUSE_FILTER_STOP );
+ BIND_CONSTANT( MOUSE_FILTER_PASS );
+ BIND_CONSTANT( MOUSE_FILTER_IGNORE );
+
ADD_SIGNAL( MethodInfo("resized") );
- ADD_SIGNAL( MethodInfo("input_event",PropertyInfo(Variant::INPUT_EVENT,"ev")) );
+ ADD_SIGNAL( MethodInfo("gui_input",PropertyInfo(Variant::INPUT_EVENT,"ev")) );
ADD_SIGNAL( MethodInfo("mouse_enter") );
ADD_SIGNAL( MethodInfo("mouse_exit") );
ADD_SIGNAL( MethodInfo("focus_enter") );
@@ -2651,9 +2580,7 @@ Control::Control() {
data.parent=NULL;
- data.ignore_mouse=false;
- data.stop_mouse=true;
-
+ data.mouse_filter=MOUSE_FILTER_STOP;
data.SI=NULL;
data.MI=NULL;
@@ -2674,7 +2601,7 @@ Control::Control() {
data.block_minimum_size_adjust=false;
data.disable_visibility_clip=false;
-
+ data.clip_contents=false;
for (int i=0;i<4;i++) {
data.anchor[i]=ANCHOR_BEGIN;
data.margin[i]=0;
diff --git a/scene/gui/control.h b/scene/gui/control.h
index e19523a05b..709f19f3f2 100644
--- a/scene/gui/control.h
+++ b/scene/gui/control.h
@@ -54,7 +54,6 @@ public:
enum AnchorType {
ANCHOR_BEGIN,
ANCHOR_END,
- ANCHOR_RATIO,
ANCHOR_CENTER,
};
@@ -66,12 +65,18 @@ public:
enum SizeFlags {
- SIZE_EXPAND=1,
- SIZE_FILL=2,
+ SIZE_FILL=1,
+ SIZE_EXPAND=2,
SIZE_EXPAND_FILL=SIZE_EXPAND|SIZE_FILL
};
+ enum MouseFilter {
+ MOUSE_FILTER_STOP,
+ MOUSE_FILTER_PASS,
+ MOUSE_FILTER_IGNORE
+ };
+
enum CursorShape {
CURSOR_ARROW,
CURSOR_IBEAM,
@@ -125,8 +130,9 @@ private:
bool pending_min_size_update;
Point2 custom_minimum_size;
- bool ignore_mouse;
- bool stop_mouse;
+ MouseFilter mouse_filter;
+
+ bool clip_contents;
bool block_minimum_size_adjust;
bool disable_visibility_clip;
@@ -208,7 +214,7 @@ protected:
virtual void add_child_notify(Node *p_child);
virtual void remove_child_notify(Node *p_child);
- //virtual void _window_input_event(InputEvent p_event);
+ //virtual void _window_gui_input(InputEvent p_event);
bool _set(const StringName& p_name, const Variant& p_value);
bool _get(const StringName& p_name,Variant &r_ret) const;
@@ -338,11 +344,8 @@ public:
Control *get_focus_owner() const;
- void set_ignore_mouse(bool p_ignore);
- bool is_ignoring_mouse() const;
-
- void set_stop_mouse(bool p_stop);
- bool is_stopping_mouse() const;
+ void set_mouse_filter(MouseFilter p_filter);
+ MouseFilter get_mouse_filter() const;
/* SKINNING */
@@ -400,6 +403,8 @@ public:
Control *get_root_parent_control() const;
+ void set_clip_contents(bool p_clip);
+ bool is_clipping_contents();
void set_block_minimum_size_adjust(bool p_block);
bool is_minimum_size_adjust_blocked() const;
@@ -418,5 +423,6 @@ VARIANT_ENUM_CAST(Control::AnchorType);
VARIANT_ENUM_CAST(Control::FocusMode);
VARIANT_ENUM_CAST(Control::SizeFlags);
VARIANT_ENUM_CAST(Control::CursorShape);
+VARIANT_ENUM_CAST(Control::MouseFilter);
#endif
diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp
index 5bc52a0c4c..cc6fe7cae8 100644
--- a/scene/gui/dialogs.cpp
+++ b/scene/gui/dialogs.cpp
@@ -47,7 +47,7 @@ bool WindowDialog::has_point(const Point2& p_point) const {
}
-void WindowDialog::_input_event(const InputEvent& p_event) {
+void WindowDialog::_gui_input(const InputEvent& p_event) {
if (p_event.type == InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==BUTTON_LEFT) {
@@ -141,7 +141,7 @@ TextureButton *WindowDialog::get_close_button() {
void WindowDialog::_bind_methods() {
- ClassDB::bind_method( _MD("_input_event"),&WindowDialog::_input_event);
+ ClassDB::bind_method( _MD("_gui_input"),&WindowDialog::_gui_input);
ClassDB::bind_method( _MD("set_title","title"),&WindowDialog::set_title);
ClassDB::bind_method( _MD("get_title"),&WindowDialog::get_title);
ClassDB::bind_method( _MD("_closed"),&WindowDialog::_closed);
@@ -203,7 +203,7 @@ void AcceptDialog::_notification(int p_what) {
cancel_pressed();
} if (p_what==NOTIFICATION_RESIZED) {
- _update_child_rect();
+ _update_child_rects();
}
}
@@ -233,7 +233,7 @@ void AcceptDialog::set_text(String p_text) {
label->set_text(p_text);
minimum_size_changed();
- _update_child_rect();
+ _update_child_rects();
}
void AcceptDialog::set_hide_on_ok(bool p_hide) {
@@ -253,7 +253,9 @@ void AcceptDialog::register_text_enter(Node *p_line_edit) {
p_line_edit->connect("text_entered", this,"_builtin_text_entered");
}
-void AcceptDialog::_update_child_rect() {
+void AcceptDialog::_update_child_rects() {
+
+
Size2 label_size=label->get_minimum_size();
if (label->get_text().empty()) {
label_size.height = 0;
@@ -265,10 +267,17 @@ void AcceptDialog::_update_child_rect() {
Vector2 cpos(margin,margin+label_size.height);
Vector2 csize(size.x-margin*2,size.y-margin*3-hminsize.y-label_size.height);
- if (child) {
+ for(int i=0;i<get_child_count();i++) {
+ Control *c = get_child(i)->cast_to<Control>();
+ if (!c)
+ continue;
+
+ if (c==hbc || c==label || c==get_close_button())
+ continue;
+
+ c->set_pos(cpos);
+ c->set_size(csize);
- child->set_pos(cpos);
- child->set_size(csize);
}
cpos.y+=csize.y+margin;
@@ -283,13 +292,23 @@ Size2 AcceptDialog::get_minimum_size() const {
int margin = get_constant("margin","Dialogs");
Size2 minsize = label->get_combined_minimum_size();
- if (child) {
- Size2 cminsize = child->get_combined_minimum_size();
+
+ for(int i=0;i<get_child_count();i++) {
+ Control *c = get_child(i)->cast_to<Control>();
+ if (!c)
+ continue;
+
+ if (c==hbc || c==label || c==const_cast<AcceptDialog*>(this)->get_close_button())
+ continue;
+
+ Size2 cminsize = c->get_combined_minimum_size();
minsize.x=MAX(cminsize.x,minsize.x);
minsize.y=MAX(cminsize.y,minsize.y);
+
}
+
Size2 hminsize = hbc->get_combined_minimum_size();
minsize.x = MAX(hminsize.x,minsize.x);
minsize.y+=hminsize.y;
@@ -302,23 +321,6 @@ Size2 AcceptDialog::get_minimum_size() const {
}
-void AcceptDialog::set_child_rect(Control *p_child) {
-
- ERR_FAIL_COND(p_child->get_parent()!=this);
-
- //p_child->set_area_as_parent_rect(get_constant("margin","Dialogs"));
- child=p_child;
- minimum_size_changed();
- _update_child_rect();
-}
-
-void AcceptDialog::remove_child_notify(Node *p_child) {
-
- if (p_child==child) {
- child=NULL;
- }
-}
-
void AcceptDialog::_custom_action(const String& p_action) {
emit_signal("custom_action",p_action);
@@ -371,7 +373,6 @@ void AcceptDialog::_bind_methods() {
ClassDB::bind_method(_MD("_custom_action"),&AcceptDialog::_custom_action);
ClassDB::bind_method(_MD("set_text","text"),&AcceptDialog::set_text);
ClassDB::bind_method(_MD("get_text"),&AcceptDialog::get_text);
- ClassDB::bind_method(_MD("set_child_rect","child:Control"),&AcceptDialog::set_child_rect);
ADD_SIGNAL( MethodInfo("confirmed") );
ADD_SIGNAL( MethodInfo("custom_action",PropertyInfo(Variant::STRING,"action")) );
@@ -418,8 +419,6 @@ AcceptDialog::AcceptDialog() {
hide_on_ok=true;
set_title(RTR("Alert!"));
-
- child=NULL;
}
diff --git a/scene/gui/dialogs.h b/scene/gui/dialogs.h
index 30a69634f3..c7beeea7a3 100644
--- a/scene/gui/dialogs.h
+++ b/scene/gui/dialogs.h
@@ -48,7 +48,7 @@ class WindowDialog : public Popup {
String title;
bool dragging;
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void _closed();
protected:
virtual void _post_popup();
@@ -91,7 +91,6 @@ class AcceptDialog : public WindowDialog {
GDCLASS(AcceptDialog,WindowDialog);
- Control *child;
HBoxContainer *hbc;
Label *label;
Button *ok;
@@ -103,13 +102,11 @@ class AcceptDialog : public WindowDialog {
void _ok_pressed();
void _close_pressed();
void _builtin_text_entered(const String& p_text);
- void _update_child_rect();
+ void _update_child_rects();
static bool swap_ok_cancel;
- virtual void remove_child_notify(Node *p_child);
-
protected:
@@ -140,8 +137,6 @@ public:
void set_text(String p_text);
String get_text() const;
- void set_child_rect(Control *p_child);
-
AcceptDialog();
~AcceptDialog();
diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp
index 4fe65fad75..df08c7ea56 100644
--- a/scene/gui/file_dialog.cpp
+++ b/scene/gui/file_dialog.cpp
@@ -164,7 +164,7 @@ void FileDialog::_action_pressed() {
TreeItem *ti=tree->get_next_selected(NULL);
String fbase=dir_access->get_current_dir();
- DVector<String> files;
+ PoolVector<String> files;
while(ti) {
files.push_back( fbase.plus_file(ti->get_text(0)) );
@@ -764,7 +764,7 @@ FileDialog::FileDialog() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+
mode=MODE_SAVE_FILE;
set_title(RTR("Save a File"));
@@ -828,7 +828,7 @@ FileDialog::FileDialog() {
makedialog->set_title(RTR("Create Folder"));
VBoxContainer *makevb= memnew( VBoxContainer );
makedialog->add_child(makevb);
- makedialog->set_child_rect(makevb);
+
makedirname = memnew( LineEdit );
makevb->add_margin_child(RTR("Name:"),makedirname);
add_child(makedialog);
diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp
index 7513480cbe..4d72bbbd0d 100644
--- a/scene/gui/graph_edit.cpp
+++ b/scene/gui/graph_edit.cpp
@@ -256,7 +256,7 @@ void GraphEdit::add_child_notify(Node *p_child) {
gn->connect("raise_request",this,"_graph_node_raised",varray(gn));
gn->connect("item_rect_changed",connections_layer,"update");
_graph_node_moved(gn);
- gn->set_stop_mouse(false);
+ gn->set_mouse_filter(MOUSE_FILTER_PASS);
}
@@ -302,7 +302,6 @@ void GraphEdit::_notification(int p_what) {
draw_style_box( get_stylebox("bg"),Rect2(Point2(),get_size()) );
- VS::get_singleton()->canvas_item_set_clip(get_canvas_item(),true);
if (is_using_snap()) {
//draw grid
@@ -793,7 +792,7 @@ void GraphEdit::set_selected(Node* p_child) {
}
}
-void GraphEdit::_input_event(const InputEvent& p_ev) {
+void GraphEdit::_gui_input(const InputEvent& p_ev) {
if (p_ev.type==InputEvent::MOUSE_MOTION && (p_ev.mouse_motion.button_mask&BUTTON_MASK_MIDDLE || (p_ev.mouse_motion.button_mask&BUTTON_MASK_LEFT && Input::get_singleton()->is_key_pressed(KEY_SPACE)))) {
h_scroll->set_value( h_scroll->get_value() - p_ev.mouse_motion.relative_x );
@@ -1233,7 +1232,7 @@ void GraphEdit::_bind_methods() {
ClassDB::bind_method(_MD("_snap_toggled"),&GraphEdit::_snap_toggled);
ClassDB::bind_method(_MD("_snap_value_changed"),&GraphEdit::_snap_value_changed);
- ClassDB::bind_method(_MD("_input_event"),&GraphEdit::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&GraphEdit::_gui_input);
ClassDB::bind_method(_MD("_update_scroll_offset"),&GraphEdit::_update_scroll_offset);
ClassDB::bind_method(_MD("_connections_layer_draw"),&GraphEdit::_connections_layer_draw);
@@ -1262,10 +1261,10 @@ GraphEdit::GraphEdit() {
top_layer=NULL;
top_layer=memnew(GraphEditFilter(this));
add_child(top_layer);
- top_layer->set_stop_mouse(false);
+ top_layer->set_mouse_filter(MOUSE_FILTER_PASS);
top_layer->set_area_as_parent_rect();
top_layer->connect("draw",this,"_top_layer_draw");
- top_layer->set_stop_mouse(false);
+ top_layer->set_mouse_filter(MOUSE_FILTER_PASS);
top_layer->connect("input_event",this,"_top_layer_input");
connections_layer = memnew( Control );
@@ -1337,7 +1336,7 @@ GraphEdit::GraphEdit() {
setting_scroll_ofs=false;
just_disconected=false;
-
+ set_clip_contents(true);
}
diff --git a/scene/gui/graph_edit.h b/scene/gui/graph_edit.h
index 9b2774590f..86b976c4fe 100644
--- a/scene/gui/graph_edit.h
+++ b/scene/gui/graph_edit.h
@@ -123,7 +123,7 @@ private:
void _update_scroll();
void _scroll_moved(double);
- void _input_event(const InputEvent& p_ev);
+ void _gui_input(const InputEvent& p_ev);
Control *connections_layer;
GraphEditFilter *top_layer;
diff --git a/scene/gui/graph_node.cpp b/scene/gui/graph_node.cpp
index e0f786e755..8b7b84910d 100644
--- a/scene/gui/graph_node.cpp
+++ b/scene/gui/graph_node.cpp
@@ -621,7 +621,7 @@ Color GraphNode::get_connection_output_color(int p_idx) {
return conn_output_cache[p_idx].color;
}
-void GraphNode::_input_event(const InputEvent& p_ev) {
+void GraphNode::_gui_input(const InputEvent& p_ev) {
if (p_ev.type==InputEvent::MOUSE_BUTTON) {
@@ -724,7 +724,7 @@ void GraphNode::_bind_methods() {
ClassDB::bind_method(_MD("set_title","title"),&GraphNode::set_title);
ClassDB::bind_method(_MD("get_title"),&GraphNode::get_title);
- ClassDB::bind_method(_MD("_input_event"),&GraphNode::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&GraphNode::_gui_input);
ClassDB::bind_method(_MD("set_slot","idx","enable_left","type_left","color_left","enable_right","type_right","color_right","custom_left","custom_right"),&GraphNode::set_slot,DEFVAL(Ref<Texture>()),DEFVAL(Ref<Texture>()));
ClassDB::bind_method(_MD("clear_slot","idx"),&GraphNode::clear_slot);
@@ -787,7 +787,7 @@ GraphNode::GraphNode() {
overlay=OVERLAY_DISABLED;
show_close=false;
connpos_dirty=true;
- set_stop_mouse(false);
+ set_mouse_filter(MOUSE_FILTER_PASS);
modulate=Color(1,1,1,1);
comment=false;
resizeable=false;
diff --git a/scene/gui/graph_node.h b/scene/gui/graph_node.h
index 5d90a006e6..a128426d38 100644
--- a/scene/gui/graph_node.h
+++ b/scene/gui/graph_node.h
@@ -99,7 +99,7 @@ private:
protected:
- void _input_event(const InputEvent& p_ev);
+ void _gui_input(const InputEvent& p_ev);
void _notification(int p_what);
static void _bind_methods();
diff --git a/scene/gui/grid_container.cpp b/scene/gui/grid_container.cpp
index 13cb972a19..7dffaa2fd5 100644
--- a/scene/gui/grid_container.cpp
+++ b/scene/gui/grid_container.cpp
@@ -230,6 +230,6 @@ Size2 GridContainer::get_minimum_size() const {
GridContainer::GridContainer() {
- set_stop_mouse(false);
+ set_mouse_filter(MOUSE_FILTER_PASS);
columns=1;
}
diff --git a/scene/gui/input_action.cpp b/scene/gui/input_action.cpp
index 501f39a7c2..77026dfdb1 100644
--- a/scene/gui/input_action.cpp
+++ b/scene/gui/input_action.cpp
@@ -24,7 +24,7 @@ bool ShortCut::is_shortcut(const InputEvent& p_event) const {
same=(shortcut.key.scancode==p_event.key.scancode && shortcut.key.mod == p_event.key.mod);
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
same=(shortcut.joy_button.button_index==p_event.joy_button.button_index);
@@ -34,7 +34,7 @@ bool ShortCut::is_shortcut(const InputEvent& p_event) const {
same=(shortcut.mouse_button.button_index==p_event.mouse_button.button_index);
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
same=(shortcut.joy_motion.axis==p_event.joy_motion.axis && (shortcut.joy_motion.axis_value < 0) == (p_event.joy_motion.axis_value < 0));
@@ -69,7 +69,7 @@ String ShortCut::get_as_text() const {
return str;
} break;
- case InputEvent::JOYSTICK_BUTTON: {
+ case InputEvent::JOYPAD_BUTTON: {
String str = RTR("Device")+" "+itos(shortcut.device)+", "+RTR("Button")+" "+itos(shortcut.joy_button.button_index);
str+=".";
@@ -90,7 +90,7 @@ String ShortCut::get_as_text() const {
return str;
} break;
- case InputEvent::JOYSTICK_MOTION: {
+ case InputEvent::JOYPAD_MOTION: {
int ax = shortcut.joy_motion.axis;
String str = RTR("Device")+" "+itos(shortcut.device)+", "+RTR("Axis")+" "+itos(ax)+".";
diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp
index d16a647fca..ece6171b6e 100644
--- a/scene/gui/item_list.cpp
+++ b/scene/gui/item_list.cpp
@@ -446,7 +446,7 @@ Size2 ItemList::Item::get_icon_size() const {
return icon_region.size;
}
-void ItemList::_input_event(const InputEvent& p_event) {
+void ItemList::_gui_input(const InputEvent& p_event) {
if (defer_select_single>=0 && p_event.type==InputEvent::MOUSE_MOTION) {
defer_select_single=-1;
@@ -788,7 +788,6 @@ void ItemList::_notification(int p_what) {
if (p_what==NOTIFICATION_DRAW) {
- VS::get_singleton()->canvas_item_set_clip(get_canvas_item(),true);
Ref<StyleBox> bg = get_stylebox("bg");
int mw = scroll_bar->get_minimum_size().x;
@@ -1361,7 +1360,7 @@ void ItemList::_bind_methods(){
ClassDB::bind_method(_MD("get_v_scroll"),&ItemList::get_v_scroll);
ClassDB::bind_method(_MD("_scroll_changed"),&ItemList::_scroll_changed);
- ClassDB::bind_method(_MD("_input_event"),&ItemList::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&ItemList::_gui_input);
BIND_CONSTANT( ICON_MODE_TOP );
BIND_CONSTANT( ICON_MODE_LEFT );
@@ -1402,6 +1401,7 @@ ItemList::ItemList() {
allow_rmb_select=false;
icon_scale = 1.0f;
+ set_clip_contents(true);
}
ItemList::~ItemList() {
diff --git a/scene/gui/item_list.h b/scene/gui/item_list.h
index d3db209ceb..f4a864c782 100644
--- a/scene/gui/item_list.h
+++ b/scene/gui/item_list.h
@@ -102,7 +102,7 @@ private:
real_t icon_scale;
void _scroll_changed(double);
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
protected:
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index 03a0219e98..cd500a62bc 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -68,10 +68,18 @@ int Label::get_line_height() const {
void Label::_notification(int p_what) {
+ if (p_what==NOTIFICATION_TRANSLATION_CHANGED) {
+
+ xl_text=XL_MESSAGE(text);
+ minimum_size_changed();
+ update();
+ }
+
if (p_what==NOTIFICATION_DRAW) {
- if (clip || autowrap)
+ if (clip || autowrap) {
VisualServer::get_singleton()->canvas_item_set_clip(get_canvas_item(),true);
+ }
if (word_cache_dirty)
regenerate_word_cache();
@@ -239,8 +247,8 @@ void Label::_notification(int p_what) {
for (int i=0;i<from->word_len;i++) {
if (visible_chars < 0 || chars_total_shadow<visible_chars) {
- CharType c = text[i+pos];
- CharType n = text[i+pos+1];
+ CharType c = xl_text[i+pos];
+ CharType n = xl_text[i+pos+1];
if (uppercase) {
c=String::char_uppercase(c);
n=String::char_uppercase(c);
@@ -262,8 +270,8 @@ void Label::_notification(int p_what) {
for (int i=0;i<from->word_len;i++) {
if (visible_chars < 0 || chars_total<visible_chars) {
- CharType c = text[i+pos];
- CharType n = text[i+pos+1];
+ CharType c = xl_text[i+pos];
+ CharType n = xl_text[i+pos+1];
if (uppercase) {
c=String::char_uppercase(c);
n=String::char_uppercase(c);
@@ -318,9 +326,9 @@ int Label::get_longest_line_width() const {
int max_line_width=0;
int line_width=0;
- for (int i=0;i<text.size();i++) {
+ for (int i=0;i<xl_text.size();i++) {
- CharType current=text[i];
+ CharType current=xl_text[i];
if (uppercase)
current=String::char_uppercase(current);
@@ -334,7 +342,7 @@ int Label::get_longest_line_width() const {
}
} else {
- int char_width=font->get_char_size(current,text[i+1]).width;
+ int char_width=font->get_char_size(current,xl_text[i+1]).width;
line_width+=char_width;
}
@@ -395,9 +403,9 @@ void Label::regenerate_word_cache() {
WordCache *last=NULL;
- for (int i=0;i<text.size()+1;i++) {
+ for (int i=0;i<xl_text.size()+1;i++) {
- CharType current=i<text.length()?text[i]:' '; //always a space at the end, so the algo works
+ CharType current=i<xl_text.length()?xl_text[i]:' '; //always a space at the end, so the algo works
if (uppercase)
current=String::char_uppercase(current);
@@ -437,7 +445,7 @@ void Label::regenerate_word_cache() {
total_char_cache++;
}
- if (i<text.length() && text[i] == ' ') {
+ if (i<xl_text.length() && xl_text[i] == ' ') {
total_char_cache--; // do not count spaces
if (line_width > 0 || last==NULL || last->char_pos!=WordCache::CHAR_WRAPLINE) {
space_count++;
@@ -454,7 +462,7 @@ void Label::regenerate_word_cache() {
word_pos=i;
}
- char_width=font->get_char_size(current,text[i+1]).width;
+ char_width=font->get_char_size(current,xl_text[i+1]).width;
current_word_size+=char_width;
line_width+=char_width;
total_char_cache++;
@@ -540,12 +548,11 @@ Label::VAlign Label::get_valign() const{
void Label::set_text(const String& p_string) {
- String str = XL_MESSAGE(p_string);
- if (text==str)
+ if (text==p_string)
return;
-
- text=str;
+ text=p_string;
+ xl_text=XL_MESSAGE(p_string);
word_cache_dirty=true;
if (percent_visible<1)
visible_chars=get_total_character_count()*percent_visible;
@@ -692,14 +699,14 @@ Label::Label(const String &p_text) {
align=ALIGN_LEFT;
valign=VALIGN_TOP;
- text="";
+ xl_text="";
word_cache=NULL;
word_cache_dirty=true;
autowrap=false;
line_count=0;
set_v_size_flags(0);
clip=false;
- set_ignore_mouse(true);
+ set_mouse_filter(MOUSE_FILTER_IGNORE);
total_char_cache=0;
visible_chars=-1;
percent_visible=1;
diff --git a/scene/gui/label.h b/scene/gui/label.h
index 8a166bbe52..80e4c970f6 100644
--- a/scene/gui/label.h
+++ b/scene/gui/label.h
@@ -58,6 +58,7 @@ private:
Align align;
VAlign valign;
String text;
+ String xl_text;
bool autowrap;
bool clip;
Size2 minsize;
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index 6537791faf..e75785b1ff 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -41,7 +41,7 @@ static bool _is_text_char(CharType c) {
return (c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9') || c=='_';
}
-void LineEdit::_input_event(InputEvent p_event) {
+void LineEdit::_gui_input(InputEvent p_event) {
switch(p_event.type) {
@@ -1267,7 +1267,7 @@ void LineEdit::_bind_methods() {
ClassDB::bind_method(_MD("set_align", "align"), &LineEdit::set_align);
ClassDB::bind_method(_MD("get_align"), &LineEdit::get_align);
- ClassDB::bind_method(_MD("_input_event"),&LineEdit::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&LineEdit::_gui_input);
ClassDB::bind_method(_MD("clear"),&LineEdit::clear);
ClassDB::bind_method(_MD("select_all"),&LineEdit::select_all);
ClassDB::bind_method(_MD("set_text","text"),&LineEdit::set_text);
@@ -1341,7 +1341,7 @@ LineEdit::LineEdit() {
set_focus_mode( FOCUS_ALL );
editable=true;
set_default_cursor_shape(CURSOR_IBEAM);
- set_stop_mouse(true);
+ set_mouse_filter(MOUSE_FILTER_STOP);
draw_caret=true;
caret_blink_enabled=false;
@@ -1361,7 +1361,7 @@ LineEdit::LineEdit() {
menu->add_item(TTR("Clear"),MENU_CLEAR);
menu->add_separator();
menu->add_item(TTR("Undo"),MENU_UNDO,KEY_MASK_CMD|KEY_Z);
- menu->connect("item_pressed",this,"menu_option");
+ menu->connect("id_pressed",this,"menu_option");
expand_to_text_length=false;
diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h
index 46ca472d6f..64c37861d0 100644
--- a/scene/gui/line_edit.h
+++ b/scene/gui/line_edit.h
@@ -119,7 +119,7 @@ private:
void _editor_settings_changed();
#endif
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
void _notification(int p_what);
diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp
index 372e4657e1..755b296666 100644
--- a/scene/gui/menu_button.cpp
+++ b/scene/gui/menu_button.cpp
@@ -34,7 +34,7 @@
void MenuButton::_unhandled_key_input(InputEvent p_event) {
- if (p_event.is_pressed() && !p_event.is_echo() && (p_event.type==InputEvent::KEY || p_event.type==InputEvent::ACTION || p_event.type==InputEvent::JOYSTICK_BUTTON)) {
+ if (p_event.is_pressed() && !p_event.is_echo() && (p_event.type==InputEvent::KEY || p_event.type==InputEvent::ACTION || p_event.type==InputEvent::JOYPAD_BUTTON)) {
if (!get_parent() || !is_visible() || is_disabled())
return;
@@ -62,7 +62,7 @@ void MenuButton::pressed() {
}
-void MenuButton::_input_event(InputEvent p_event) {
+void MenuButton::_gui_input(InputEvent p_event) {
/*if (p_event.type==InputEvent::MOUSE_BUTTON && p_event.mouse_button.button_index==BUTTON_LEFT) {
clicked=p_event.mouse_button.pressed;
@@ -79,7 +79,7 @@ void MenuButton::_input_event(InputEvent p_event) {
}*/
- BaseButton::_input_event(p_event);
+ BaseButton::_gui_input(p_event);
}
PopupMenu *MenuButton::get_popup() {
diff --git a/scene/gui/menu_button.h b/scene/gui/menu_button.h
index 274f494fb5..5b5573456f 100644
--- a/scene/gui/menu_button.h
+++ b/scene/gui/menu_button.h
@@ -46,7 +46,7 @@ class MenuButton : public Button {
Array _get_items() const;
void _set_items(const Array& p_items);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
protected:
diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp
index 010cacc14b..1b5b21ae92 100644
--- a/scene/gui/option_button.cpp
+++ b/scene/gui/option_button.cpp
@@ -326,7 +326,7 @@ OptionButton::OptionButton() {
popup->hide();
popup->set_as_toplevel(true);
add_child(popup);
- popup->connect("item_pressed", this,"_selected");
+ popup->connect("id_pressed", this,"_selected");
current=-1;
set_text_align(ALIGN_LEFT);
diff --git a/scene/gui/panel.cpp b/scene/gui/panel.cpp
index 68d01ccb6e..c4b7199c3e 100644
--- a/scene/gui/panel.cpp
+++ b/scene/gui/panel.cpp
@@ -41,7 +41,7 @@ void Panel::_notification(int p_what) {
Panel::Panel() {
- set_stop_mouse(true);
+ set_mouse_filter(MOUSE_FILTER_STOP);
}
diff --git a/scene/gui/patch_9_frame.cpp b/scene/gui/patch_9_frame.cpp
index 06d58c49e1..e32f60a222 100644
--- a/scene/gui/patch_9_frame.cpp
+++ b/scene/gui/patch_9_frame.cpp
@@ -39,7 +39,7 @@ void Patch9Frame::_notification(int p_what) {
Size2 s=get_size();
RID ci = get_canvas_item();
- VS::get_singleton()->canvas_item_add_nine_patch(ci,Rect2(Point2(),s),region_rect,texture->get_rid(),Vector2(margin[MARGIN_LEFT],margin[MARGIN_TOP]),Vector2(margin[MARGIN_RIGHT],margin[MARGIN_BOTTOM]),VS::NINE_PATCH_STRETCH,VS::NINE_PATCH_STRETCH,draw_center,modulate);
+ VS::get_singleton()->canvas_item_add_nine_patch(ci,Rect2(Point2(),s),region_rect,texture->get_rid(),Vector2(margin[MARGIN_LEFT],margin[MARGIN_TOP]),Vector2(margin[MARGIN_RIGHT],margin[MARGIN_BOTTOM]),VS::NINE_PATCH_STRETCH,VS::NINE_PATCH_STRETCH,draw_center);
// draw_texture_rect(texture,Rect2(Point2(),s),false,modulate);
/*
@@ -70,8 +70,6 @@ void Patch9Frame::_bind_methods() {
ClassDB::bind_method(_MD("set_texture","texture"), & Patch9Frame::set_texture );
ClassDB::bind_method(_MD("get_texture"), & Patch9Frame::get_texture );
- ClassDB::bind_method(_MD("set_modulate","modulate"), & Patch9Frame::set_modulate );
- ClassDB::bind_method(_MD("get_modulate"), & Patch9Frame::get_modulate );
ClassDB::bind_method(_MD("set_patch_margin","margin","value"), & Patch9Frame::set_patch_margin );
ClassDB::bind_method(_MD("get_patch_margin","margin"), & Patch9Frame::get_patch_margin );
ClassDB::bind_method(_MD("set_region_rect","rect"),&Patch9Frame::set_region_rect);
@@ -82,7 +80,6 @@ void Patch9Frame::_bind_methods() {
ADD_SIGNAL(MethodInfo("texture_changed"));
ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), _SCS("set_texture"),_SCS("get_texture") );
- ADD_PROPERTYNO( PropertyInfo( Variant::COLOR, "modulate"), _SCS("set_modulate"),_SCS("get_modulate") );
ADD_PROPERTYNO( PropertyInfo( Variant::BOOL, "draw_center"), _SCS("set_draw_center"),_SCS("get_draw_center") );
ADD_PROPERTYNZ( PropertyInfo( Variant::RECT2, "region_rect"), _SCS("set_region_rect"),_SCS("get_region_rect"));
@@ -112,16 +109,6 @@ Ref<Texture> Patch9Frame::get_texture() const {
return texture;
}
-void Patch9Frame::set_modulate(const Color& p_tex) {
-
- modulate=p_tex;
- update();
-}
-
-Color Patch9Frame::get_modulate() const{
-
- return modulate;
-}
void Patch9Frame::set_patch_margin(Margin p_margin,int p_size) {
@@ -186,8 +173,8 @@ Patch9Frame::Patch9Frame() {
margin[MARGIN_RIGHT]=0;
margin[MARGIN_BOTTOM]=0;
margin[MARGIN_TOP]=0;
- modulate=Color(1,1,1,1);
- set_ignore_mouse(true);
+
+ set_mouse_filter(MOUSE_FILTER_IGNORE);
draw_center=true;
}
diff --git a/scene/gui/patch_9_frame.h b/scene/gui/patch_9_frame.h
index f9de022078..afbeca5ae8 100644
--- a/scene/gui/patch_9_frame.h
+++ b/scene/gui/patch_9_frame.h
@@ -40,7 +40,6 @@ class Patch9Frame : public Control {
bool draw_center;
int margin[4];
Rect2 region_rect;
- Color modulate;
Ref<Texture> texture;
protected:
@@ -53,9 +52,6 @@ public:
void set_texture(const Ref<Texture>& p_tex);
Ref<Texture> get_texture() const;
- void set_modulate(const Color& p_tex);
- Color get_modulate() const;
-
void set_patch_margin(Margin p_margin,int p_size);
int get_patch_margin(Margin p_margin) const;
diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp
index 49c63f91b4..5126568e5f 100644
--- a/scene/gui/popup.cpp
+++ b/scene/gui/popup.cpp
@@ -31,7 +31,7 @@
-void Popup::_input_event(InputEvent p_event) {
+void Popup::_gui_input(InputEvent p_event) {
}
diff --git a/scene/gui/popup.h b/scene/gui/popup.h
index c9b5511630..17ae4a938a 100644
--- a/scene/gui/popup.h
+++ b/scene/gui/popup.h
@@ -45,7 +45,7 @@ protected:
virtual void _post_popup() {}
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
void _notification(int p_what);
void _fix_size();
static void _bind_methods();
diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp
index e4a03f6e2b..9eaf393a21 100644
--- a/scene/gui/popup_menu.cpp
+++ b/scene/gui/popup_menu.cpp
@@ -96,7 +96,7 @@ Size2 PopupMenu::get_minimum_size() const {
size.width+=check_w+hseparation;
}
- String text = items[i].shortcut.is_valid() ? String(tr(items[i].shortcut->get_name())) : items[i].text;
+ String text = items[i].shortcut.is_valid() ? String(tr(items[i].shortcut->get_name())) : items[i].xl_text;
size.width+=font->get_string_size(text).width;
if (i>0)
size.height+=vseparation;
@@ -215,7 +215,7 @@ void PopupMenu::_submenu_timeout() {
}
-void PopupMenu::_input_event(const InputEvent &p_event) {
+void PopupMenu::_gui_input(const InputEvent &p_event) {
switch( p_event.type) {
@@ -308,7 +308,7 @@ void PopupMenu::_input_event(const InputEvent &p_event) {
ie.type=InputEvent::MOUSE_MOTION;
ie.mouse_motion.x=b.x;
ie.mouse_motion.y=b.y+s;
- _input_event(ie);
+ _gui_input(ie);
}
} break;
case BUTTON_WHEEL_UP: {
@@ -328,7 +328,7 @@ void PopupMenu::_input_event(const InputEvent &p_event) {
ie.type=InputEvent::MOUSE_MOTION;
ie.mouse_motion.x=b.x;
ie.mouse_motion.y=b.y-s;
- _input_event(ie);
+ _gui_input(ie);
}
@@ -421,7 +421,16 @@ void PopupMenu::_notification(int p_what) {
switch(p_what) {
+ case NOTIFICATION_TRANSLATION_CHANGED: {
+ for(int i=0;i<items.size();i++) {
+ items[i].xl_text=XL_MESSAGE(items[i].text);
+ }
+
+ minimum_size_changed();
+ update();
+
+ } break;
case NOTIFICATION_DRAW: {
RID ci = get_canvas_item();
@@ -496,7 +505,7 @@ void PopupMenu::_notification(int p_what) {
}
item_ofs.y+=font->get_ascent();
- String text = items[i].shortcut.is_valid() ? String(tr(items[i].shortcut->get_name())) : items[i].text;
+ String text = items[i].shortcut.is_valid() ? String(tr(items[i].shortcut->get_name())) : items[i].xl_text;
if (!items[i].separator) {
font->draw(ci,item_ofs+Point2(0,Math::floor((h-font_h)/2.0)),text,items[i].disabled?font_color_disabled:(i==mouse_over?font_color_hover:font_color));
@@ -537,6 +546,7 @@ void PopupMenu::add_icon_item(const Ref<Texture>& p_icon,const String& p_label,i
Item item;
item.icon=p_icon;
item.text=p_label;
+ item.xl_text=XL_MESSAGE(p_label);
item.accel=p_accel;
item.ID=p_ID;
items.push_back(item);
@@ -545,7 +555,8 @@ void PopupMenu::add_icon_item(const Ref<Texture>& p_icon,const String& p_label,i
void PopupMenu::add_item(const String& p_label,int p_ID,uint32_t p_accel) {
Item item;
- item.text=XL_MESSAGE(p_label);
+ item.text=p_label;
+ item.xl_text=XL_MESSAGE(p_label);
item.accel=p_accel;
item.ID=p_ID;
items.push_back(item);
@@ -555,7 +566,8 @@ void PopupMenu::add_item(const String& p_label,int p_ID,uint32_t p_accel) {
void PopupMenu::add_submenu_item(const String& p_label, const String& p_submenu,int p_ID){
Item item;
- item.text=XL_MESSAGE(p_label);
+ item.text=p_label;
+ item.xl_text=XL_MESSAGE(p_label);
item.ID=p_ID;
item.submenu=p_submenu;
items.push_back(item);
@@ -566,7 +578,8 @@ void PopupMenu::add_icon_check_item(const Ref<Texture>& p_icon,const String& p_l
Item item;
item.icon=p_icon;
- item.text=XL_MESSAGE(p_label);
+ item.text=p_label;
+ item.xl_text=XL_MESSAGE(p_label);
item.accel=p_accel;
item.ID=p_ID;
item.checkable=true;
@@ -576,7 +589,8 @@ void PopupMenu::add_icon_check_item(const Ref<Texture>& p_icon,const String& p_l
void PopupMenu::add_check_item(const String& p_label,int p_ID,uint32_t p_accel) {
Item item;
- item.text=XL_MESSAGE(p_label);
+ item.text=p_label;
+ item.xl_text=XL_MESSAGE(p_label);
item.accel=p_accel;
item.ID=p_ID;
item.checkable=true;
@@ -649,7 +663,8 @@ void PopupMenu::add_check_shortcut(const Ref<ShortCut>& p_shortcut, int p_ID, bo
void PopupMenu::set_item_text(int p_idx,const String& p_text) {
ERR_FAIL_INDEX(p_idx,items.size());
- items[p_idx].text=XL_MESSAGE(p_text);
+ items[p_idx].text=p_text;
+ items[p_idx].xl_text=XL_MESSAGE(p_text);
update();
@@ -912,7 +927,8 @@ void PopupMenu::activate_item(int p_item) {
ERR_FAIL_INDEX(p_item,items.size());
ERR_FAIL_COND(items[p_item].separator);
int id = items[p_item].ID>=0?items[p_item].ID:p_item;
- emit_signal("item_pressed",id);
+ emit_signal("id_pressed",id);
+ emit_signal("index_pressed",p_item);
//hide all parent PopupMenue's
Node *next = get_parent();
@@ -1081,8 +1097,8 @@ void PopupMenu::get_translatable_strings(List<String> *p_strings) const {
for(int i=0;i<items.size();i++) {
- if (items[i].text!="")
- p_strings->push_back(items[i].text);
+ if (items[i].xl_text!="")
+ p_strings->push_back(items[i].xl_text);
}
}
@@ -1098,7 +1114,7 @@ void PopupMenu::clear_autohide_areas(){
void PopupMenu::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&PopupMenu::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&PopupMenu::_gui_input);
ClassDB::bind_method(_MD("add_icon_item","texture","label","id","accel"),&PopupMenu::add_icon_item,DEFVAL(-1),DEFVAL(0));
ClassDB::bind_method(_MD("add_item","label","id","accel"),&PopupMenu::add_item,DEFVAL(-1),DEFVAL(0));
ClassDB::bind_method(_MD("add_icon_check_item","texture","label","id","accel"),&PopupMenu::add_icon_check_item,DEFVAL(-1),DEFVAL(0));
@@ -1157,7 +1173,8 @@ void PopupMenu::_bind_methods() {
ADD_PROPERTY( PropertyInfo(Variant::ARRAY,"items",PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR), _SCS("_set_items"),_SCS("_get_items") );
ADD_PROPERTYNO( PropertyInfo(Variant::BOOL, "hide_on_item_selection" ), _SCS("set_hide_on_item_selection"), _SCS("is_hide_on_item_selection") );
- ADD_SIGNAL( MethodInfo("item_pressed", PropertyInfo( Variant::INT,"ID") ) );
+ ADD_SIGNAL( MethodInfo("id_pressed", PropertyInfo( Variant::INT,"ID") ) );
+ ADD_SIGNAL( MethodInfo("index_pressed", PropertyInfo( Variant::INT,"index") ) );
}
diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h
index 9cc3daa8fe..b5fca9a451 100644
--- a/scene/gui/popup_menu.h
+++ b/scene/gui/popup_menu.h
@@ -44,6 +44,7 @@ class PopupMenu : public Popup {
struct Item {
Ref<Texture> icon;
String text;
+ String xl_text;
bool checked;
bool checkable;
bool separator;
@@ -71,7 +72,7 @@ class PopupMenu : public Popup {
String _get_accel_text(int p_item) const;
int _get_mouse_over(const Point2& p_over) const;
virtual Size2 get_minimum_size() const;
- void _input_event(const InputEvent &p_event);
+ void _gui_input(const InputEvent &p_event);
void _activate_submenu(int over);
void _submenu_timeout();
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index b71ed48c13..790b7500ea 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -687,8 +687,6 @@ void RichTextLabel::_notification(int p_what) {
RID ci=get_canvas_item();
Size2 size = get_size();
- VisualServer::get_singleton()->canvas_item_set_clip(ci,true);
-
if (has_focus()) {
VisualServer::get_singleton()->canvas_item_add_clip_ignore(ci,true);
draw_style_box(get_stylebox("focus"),Rect2(Point2(),size));
@@ -789,7 +787,7 @@ Control::CursorShape RichTextLabel::get_cursor_shape(const Point2& p_pos) const
}
-void RichTextLabel::_input_event(InputEvent p_event) {
+void RichTextLabel::_gui_input(InputEvent p_event) {
switch(p_event.type) {
@@ -1902,7 +1900,7 @@ String RichTextLabel::get_text() {
void RichTextLabel::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&RichTextLabel::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&RichTextLabel::_gui_input);
ClassDB::bind_method(_MD("_scroll_changed"),&RichTextLabel::_scroll_changed);
ClassDB::bind_method(_MD("get_text"),&RichTextLabel::get_text);
ClassDB::bind_method(_MD("add_text","text"),&RichTextLabel::add_text);
@@ -2046,6 +2044,7 @@ RichTextLabel::RichTextLabel() {
visible_characters=-1;
+ set_clip_contents(true);
}
RichTextLabel::~RichTextLabel() {
diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h
index 829103dea2..39032185f8 100644
--- a/scene/gui/rich_text_label.h
+++ b/scene/gui/rich_text_label.h
@@ -267,7 +267,7 @@ private:
void _update_scroll();
void _scroll_changed(double);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
Item *_get_next_item(Item* p_item, bool p_free=false);
bool use_bbcode;
diff --git a/scene/gui/scroll_bar.cpp b/scene/gui/scroll_bar.cpp
index 908f360290..0b32ca4952 100644
--- a/scene/gui/scroll_bar.cpp
+++ b/scene/gui/scroll_bar.cpp
@@ -39,7 +39,7 @@ void ScrollBar::set_can_focus_by_default(bool p_can_focus) {
focus_by_default=p_can_focus;
}
-void ScrollBar::_input_event(InputEvent p_event) {
+void ScrollBar::_gui_input(InputEvent p_event) {
switch(p_event.type) {
@@ -302,7 +302,7 @@ void ScrollBar::_notification(int p_what) {
}
if (drag_slave) {
- drag_slave->connect("input_event",this,"_drag_slave_input");
+ drag_slave->connect("gui_input",this,"_drag_slave_input");
drag_slave->connect("exit_tree",this,"_drag_slave_exit",varray(),CONNECT_ONESHOT);
}
@@ -311,7 +311,7 @@ void ScrollBar::_notification(int p_what) {
if (p_what==NOTIFICATION_EXIT_TREE) {
if (drag_slave) {
- drag_slave->disconnect("input_event",this,"_drag_slave_input");
+ drag_slave->disconnect("gui_input",this,"_drag_slave_input");
drag_slave->disconnect("exit_tree",this,"_drag_slave_exit");
}
@@ -546,7 +546,7 @@ float ScrollBar::get_custom_step() const {
void ScrollBar::_drag_slave_exit() {
if (drag_slave) {
- drag_slave->disconnect("input_event",this,"_drag_slave_input");
+ drag_slave->disconnect("gui_input",this,"_drag_slave_input");
}
drag_slave=NULL;
}
@@ -638,7 +638,7 @@ void ScrollBar::set_drag_slave(const NodePath& p_path) {
if (is_inside_tree()) {
if (drag_slave) {
- drag_slave->disconnect("input_event",this,"_drag_slave_input");
+ drag_slave->disconnect("gui_input",this,"_drag_slave_input");
drag_slave->disconnect("exit_tree",this,"_drag_slave_exit");
}
}
@@ -654,7 +654,7 @@ void ScrollBar::set_drag_slave(const NodePath& p_path) {
}
if (drag_slave) {
- drag_slave->connect("input_event",this,"_drag_slave_input");
+ drag_slave->connect("gui_input",this,"_drag_slave_input");
drag_slave->connect("exit_tree",this,"_drag_slave_exit",varray(),CONNECT_ONESHOT);
}
}
@@ -804,7 +804,7 @@ bool ScrollBar::key(unsigned long p_unicode, unsigned long p_scan_code,bool b.pr
void ScrollBar::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&ScrollBar::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&ScrollBar::_gui_input);
ClassDB::bind_method(_MD("set_custom_step","step"),&ScrollBar::set_custom_step);
ClassDB::bind_method(_MD("get_custom_step"),&ScrollBar::get_custom_step);
ClassDB::bind_method(_MD("_drag_slave_input"),&ScrollBar::_drag_slave_input);
diff --git a/scene/gui/scroll_bar.h b/scene/gui/scroll_bar.h
index 97259a07cb..be8b394957 100644
--- a/scene/gui/scroll_bar.h
+++ b/scene/gui/scroll_bar.h
@@ -87,7 +87,7 @@ class ScrollBar : public Range {
void _drag_slave_exit();
void _drag_slave_input(const InputEvent& p_input);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
protected:
void _notification(int p_what);
diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp
index bef5746a63..43c214b0be 100644
--- a/scene/gui/scroll_container.cpp
+++ b/scene/gui/scroll_container.cpp
@@ -79,14 +79,14 @@ void ScrollContainer::_cancel_drag() {
drag_from=Vector2();
}
-void ScrollContainer::_input_event(const InputEvent& p_input_event) {
+void ScrollContainer::_gui_input(const InputEvent& p_gui_input) {
- switch(p_input_event.type) {
+ switch(p_gui_input.type) {
case InputEvent::MOUSE_BUTTON: {
- const InputEventMouseButton &mb=p_input_event.mouse_button;
+ const InputEventMouseButton &mb=p_gui_input.mouse_button;
if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed) {
if (h_scroll->is_visible() && !v_scroll->is_visible()){
@@ -158,7 +158,7 @@ void ScrollContainer::_input_event(const InputEvent& p_input_event) {
} break;
case InputEvent::MOUSE_MOTION: {
- const InputEventMouseMotion &mm=p_input_event.mouse_motion;
+ const InputEventMouseMotion &mm=p_gui_input.mouse_motion;
if (drag_touching && ! drag_touching_deaccel) {
@@ -261,7 +261,6 @@ void ScrollContainer::_notification(int p_what) {
update_scrollbars();
- VisualServer::get_singleton()->canvas_item_set_clip(get_canvas_item(),true);
}
if (p_what==NOTIFICATION_FIXED_PROCESS) {
@@ -434,11 +433,34 @@ void ScrollContainer::set_h_scroll(int p_pos) {
}
+String ScrollContainer::get_configuration_warning() const {
+
+ int found=0;
+
+ for(int i=0;i<get_child_count();i++) {
+
+ Control *c = get_child(i)->cast_to<Control>();
+ if (!c)
+ continue;
+ if (c->is_set_as_toplevel())
+ continue;
+ if (c == h_scroll || c == v_scroll)
+ continue;
+
+ found++;
+ }
+
+ if (found!=1)
+ return TTR("ScrollContainer is intended to work with a single child control.\nUse a container as child (VBox,HBox,etc), or a Control and set the custom minimum size manually.");
+ else
+ return "";
+}
+
void ScrollContainer::_bind_methods() {
ClassDB::bind_method(_MD("_scroll_moved"),&ScrollContainer::_scroll_moved);
- ClassDB::bind_method(_MD("_input_event"),&ScrollContainer::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&ScrollContainer::_gui_input);
ClassDB::bind_method(_MD("set_enable_h_scroll","enable"),&ScrollContainer::set_enable_h_scroll);
ClassDB::bind_method(_MD("is_h_scroll_enabled"),&ScrollContainer::is_h_scroll_enabled);
ClassDB::bind_method(_MD("set_enable_v_scroll","enable"),&ScrollContainer::set_enable_v_scroll);
@@ -474,6 +496,6 @@ ScrollContainer::ScrollContainer() {
scroll_h=true;
scroll_v=true;
-
+ set_clip_contents(true);
};
diff --git a/scene/gui/scroll_container.h b/scene/gui/scroll_container.h
index 4d783e8f77..114cd06306 100644
--- a/scene/gui/scroll_container.h
+++ b/scene/gui/scroll_container.h
@@ -64,7 +64,7 @@ protected:
Size2 get_minimum_size() const;
- void _input_event(const InputEvent& p_input_event);
+ void _gui_input(const InputEvent& p_gui_input);
void _notification(int p_what);
void _scroll_moved(float);
@@ -86,6 +86,9 @@ public:
bool is_v_scroll_enabled() const;
virtual bool clips_input() const;
+
+ virtual String get_configuration_warning() const;
+
ScrollContainer();
};
diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp
index 8e05f1402e..dacfc644ee 100644
--- a/scene/gui/slider.cpp
+++ b/scene/gui/slider.cpp
@@ -37,7 +37,7 @@ Size2 Slider::get_minimum_size() const {
return ms;
}
-void Slider::_input_event(InputEvent p_event) {
+void Slider::_gui_input(InputEvent p_event) {
@@ -231,7 +231,7 @@ void Slider::set_ticks_on_borders(bool _tob){
void Slider::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&Slider::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&Slider::_gui_input);
ClassDB::bind_method(_MD("set_ticks","count"),&Slider::set_ticks);
ClassDB::bind_method(_MD("get_ticks"),&Slider::get_ticks);
diff --git a/scene/gui/slider.h b/scene/gui/slider.h
index 5d68de1b4b..89eb32737b 100644
--- a/scene/gui/slider.h
+++ b/scene/gui/slider.h
@@ -49,7 +49,7 @@ class Slider : public Range {
protected:
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
void _notification(int p_what);
static void _bind_methods();
bool ticks_on_borders;
diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp
index efb55b79b6..772d753da9 100644
--- a/scene/gui/spin_box.cpp
+++ b/scene/gui/spin_box.cpp
@@ -90,7 +90,7 @@ void SpinBox::_range_click_timeout() {
}
-void SpinBox::_input_event(const InputEvent& p_event) {
+void SpinBox::_gui_input(const InputEvent& p_event) {
if (!is_editable()) {
return;
@@ -252,7 +252,7 @@ bool SpinBox::is_editable() const {
void SpinBox::_bind_methods() {
//ClassDB::bind_method(_MD("_value_changed"),&SpinBox::_value_changed);
- ClassDB::bind_method(_MD("_input_event"),&SpinBox::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&SpinBox::_gui_input);
ClassDB::bind_method(_MD("_text_entered"),&SpinBox::_text_entered);
ClassDB::bind_method(_MD("set_suffix","suffix"),&SpinBox::set_suffix);
ClassDB::bind_method(_MD("get_suffix"),&SpinBox::get_suffix);
@@ -283,7 +283,7 @@ SpinBox::SpinBox() {
//connect("value_changed",this,"_value_changed");
line_edit->connect("text_entered",this,"_text_entered",Vector<Variant>(),CONNECT_DEFERRED);
line_edit->connect("focus_exit",this,"_line_edit_focus_exit",Vector<Variant>(),CONNECT_DEFERRED);
- line_edit->connect("input_event",this,"_line_edit_input");
+ line_edit->connect("gui_input",this,"_line_edit_input");
drag.enabled=false;
range_click_timer = memnew( Timer );
diff --git a/scene/gui/spin_box.h b/scene/gui/spin_box.h
index e56ff0cd6f..9974ec47bc 100644
--- a/scene/gui/spin_box.h
+++ b/scene/gui/spin_box.h
@@ -64,7 +64,7 @@ class SpinBox : public Range {
protected:
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void _notification(int p_what);
diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp
index 609587bcd3..aae3b3fffa 100644
--- a/scene/gui/split_container.cpp
+++ b/scene/gui/split_container.cpp
@@ -299,7 +299,7 @@ void SplitContainer::_notification(int p_what) {
}
}
-void SplitContainer::_input_event(const InputEvent& p_event) {
+void SplitContainer::_gui_input(const InputEvent& p_event) {
if (collapsed || !_getch(0) || !_getch(1) || dragger_visibility!=DRAGGER_VISIBLE)
return;
@@ -422,7 +422,7 @@ bool SplitContainer::is_collapsed() const {
void SplitContainer::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&SplitContainer::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&SplitContainer::_gui_input);
ClassDB::bind_method(_MD("set_split_offset","offset"),&SplitContainer::set_split_offset);
ClassDB::bind_method(_MD("get_split_offset"),&SplitContainer::get_split_offset);
diff --git a/scene/gui/split_container.h b/scene/gui/split_container.h
index b9c77db253..03b6b1a167 100644
--- a/scene/gui/split_container.h
+++ b/scene/gui/split_container.h
@@ -59,7 +59,7 @@ private:
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:
diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp
index d47a4f7ae6..11045eaafd 100644
--- a/scene/gui/tab_container.cpp
+++ b/scene/gui/tab_container.cpp
@@ -65,7 +65,7 @@ int TabContainer::_get_top_margin() const {
-void TabContainer::_input_event(const InputEvent& p_event) {
+void TabContainer::_gui_input(const InputEvent& p_event) {
if (p_event.type==InputEvent::MOUSE_BUTTON &&
p_event.mouse_button.pressed &&
@@ -714,7 +714,7 @@ Popup* TabContainer::get_popup() const {
void TabContainer::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&TabContainer::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&TabContainer::_gui_input);
ClassDB::bind_method(_MD("get_tab_count"),&TabContainer::get_tab_count);
ClassDB::bind_method(_MD("set_current_tab","tab_idx"),&TabContainer::set_current_tab);
ClassDB::bind_method(_MD("get_current_tab"),&TabContainer::get_current_tab);
diff --git a/scene/gui/tab_container.h b/scene/gui/tab_container.h
index 6885a0f569..8b6ca7704e 100644
--- a/scene/gui/tab_container.h
+++ b/scene/gui/tab_container.h
@@ -61,7 +61,7 @@ private:
protected:
void _child_renamed_callback();
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void _notification(int p_what);
virtual void add_child_notify(Node *p_child);
virtual void remove_child_notify(Node *p_child);
diff --git a/scene/gui/tabs.cpp b/scene/gui/tabs.cpp
index 2518672705..98d3f6230d 100644
--- a/scene/gui/tabs.cpp
+++ b/scene/gui/tabs.cpp
@@ -76,7 +76,7 @@ Size2 Tabs::get_minimum_size() const {
}
-void Tabs::_input_event(const InputEvent& p_event) {
+void Tabs::_gui_input(const InputEvent& p_event) {
if (p_event.type==InputEvent::MOUSE_MOTION) {
@@ -649,7 +649,7 @@ void Tabs::set_tab_close_display_policy(CloseButtonDisplayPolicy p_policy) {
void Tabs::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&Tabs::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&Tabs::_gui_input);
ClassDB::bind_method(_MD("get_tab_count"),&Tabs::get_tab_count);
ClassDB::bind_method(_MD("set_current_tab","tab_idx"),&Tabs::set_current_tab);
ClassDB::bind_method(_MD("get_current_tab"),&Tabs::get_current_tab);
diff --git a/scene/gui/tabs.h b/scene/gui/tabs.h
index 81e1c565b5..9ba32297dc 100644
--- a/scene/gui/tabs.h
+++ b/scene/gui/tabs.h
@@ -92,7 +92,7 @@ private:
protected:
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void _notification(int p_what);
static void _bind_methods();
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 397edbf3b6..cbc0c283de 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -1468,13 +1468,13 @@ void TextEdit::_get_mouse_pos(const Point2i& p_mouse, int &r_row, int &r_col) co
r_col=col;
}
-void TextEdit::_input_event(const InputEvent& p_input_event) {
+void TextEdit::_gui_input(const InputEvent& p_gui_input) {
- switch(p_input_event.type) {
+ switch(p_gui_input.type) {
case InputEvent::MOUSE_BUTTON: {
- const InputEventMouseButton &mb=p_input_event.mouse_button;
+ const InputEventMouseButton &mb=p_gui_input.mouse_button;
if (completion_active && completion_rect.has_point(Point2(mb.x,mb.y))) {
@@ -1685,7 +1685,7 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
} break;
case InputEvent::MOUSE_MOTION: {
- const InputEventMouseMotion &mm=p_input_event.mouse_motion;
+ const InputEventMouseMotion &mm=p_gui_input.mouse_motion;
if (select_identifiers_enabled) {
if (mm.mod.command && mm.button_mask==0) {
@@ -1728,7 +1728,7 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
case InputEvent::KEY: {
- InputEventKey k=p_input_event.key;
+ InputEventKey k=p_gui_input.key;
#ifdef OSX_ENABLED
@@ -3794,11 +3794,11 @@ int TextEdit::_get_column_pos_of_word(const String &p_key, const String &p_searc
return col;
}
-DVector<int> TextEdit::_search_bind(const String &p_key,uint32_t p_search_flags, int p_from_line,int p_from_column) const {
+PoolVector<int> TextEdit::_search_bind(const String &p_key,uint32_t p_search_flags, int p_from_line,int p_from_column) const {
int col,line;
if (search(p_key,p_search_flags,p_from_line,p_from_column,col,line)) {
- DVector<int> result;
+ PoolVector<int> result;
result.resize(2);
result.set(0,line);
result.set(1,col);
@@ -3806,7 +3806,7 @@ DVector<int> TextEdit::_search_bind(const String &p_key,uint32_t p_search_flags,
} else {
- return DVector<int>();
+ return PoolVector<int>();
}
}
@@ -4230,7 +4230,6 @@ void TextEdit::_update_completion_candidates() {
String l = text[cursor.line];
int cofs = CLAMP(cursor.column,0,l.length());
-
String s;
//look for keywords first
@@ -4279,14 +4278,14 @@ void TextEdit::_update_completion_candidates() {
while(cofs>0 && l[cofs-1]>32 && _is_completable(l[cofs-1])) {
s=String::chr(l[cofs-1])+s;
- if (l[cofs-1]=='\'' || l[cofs-1]=='"')
+ if (l[cofs-1]=='\'' || l[cofs-1]=='"' || l[cofs-1]=='$')
break;
cofs--;
}
}
- if (cursor.column > 0 && l[cursor.column - 1] == '(' && !pre_keyword && !completion_strings[0].begins_with("\"")) {
+ if (cursor.column > 0 && l[cursor.column - 1] == '(' && !pre_keyword && !completion_strings[0].begins_with("\"")) {
cancel = true;
}
@@ -4308,8 +4307,9 @@ void TextEdit::_update_completion_candidates() {
_cancel_completion();
return;
}
+
if (s.is_subsequence_ofi(completion_strings[i])) {
- // don't remove duplicates if no input is provided
+ // don't remove duplicates if no input is provided
if (s != "" && completion_options.find(completion_strings[i]) != -1) {
continue;
}
@@ -4345,6 +4345,7 @@ void TextEdit::_update_completion_candidates() {
if (completion_options.size()==0) {
//no options to complete, cancel
_cancel_completion();
+
return;
}
@@ -4607,7 +4608,7 @@ PopupMenu *TextEdit::get_menu() const {
void TextEdit::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&TextEdit::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&TextEdit::_gui_input);
ClassDB::bind_method(_MD("_scroll_moved"),&TextEdit::_scroll_moved);
ClassDB::bind_method(_MD("_cursor_changed_emit"),&TextEdit::_cursor_changed_emit);
ClassDB::bind_method(_MD("_text_changed_emit"),&TextEdit::_text_changed_emit);
@@ -4835,7 +4836,7 @@ TextEdit::TextEdit() {
menu->add_item(TTR("Clear"),MENU_CLEAR);
menu->add_separator();
menu->add_item(TTR("Undo"),MENU_UNDO,KEY_MASK_CMD|KEY_Z);
- menu->connect("item_pressed",this,"menu_option");
+ menu->connect("id_pressed",this,"menu_option");
}
diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h
index c674c859e6..c7467f9b13 100644
--- a/scene/gui/text_edit.h
+++ b/scene/gui/text_edit.h
@@ -316,7 +316,7 @@ class TextEdit : public Control {
int _get_column_pos_of_word(const String &p_key, const String &p_search, uint32_t p_search_flags, int p_from_column);
- DVector<int> _search_bind(const String &p_key,uint32_t p_search_flags, int p_from_line,int p_from_column) const;
+ PoolVector<int> _search_bind(const String &p_key,uint32_t p_search_flags, int p_from_line,int p_from_column) const;
PopupMenu *menu;
@@ -333,7 +333,7 @@ protected:
void _insert_text(int p_line, int p_column,const String& p_text,int *r_end_line=NULL,int *r_end_char=NULL);
void _remove_text(int p_from_line, int p_from_column,int p_to_line,int p_to_column);
void _insert_text_at_cursor(const String& p_text);
- void _input_event(const InputEvent& p_input);
+ void _gui_input(const InputEvent& p_input);
void _notification(int p_what);
void _consume_pair_symbol(CharType ch);
diff --git a/scene/gui/texture_frame.cpp b/scene/gui/texture_frame.cpp
index 9c2113233c..bfa72ef067 100644
--- a/scene/gui/texture_frame.cpp
+++ b/scene/gui/texture_frame.cpp
@@ -40,22 +40,22 @@ void TextureFrame::_notification(int p_what) {
switch(stretch_mode) {
case STRETCH_SCALE_ON_EXPAND: {
Size2 s=expand?get_size():texture->get_size();
- draw_texture_rect(texture,Rect2(Point2(),s),false,modulate);
+ draw_texture_rect(texture,Rect2(Point2(),s),false);
} break;
case STRETCH_SCALE: {
- draw_texture_rect(texture,Rect2(Point2(),get_size()),false,modulate);
+ draw_texture_rect(texture,Rect2(Point2(),get_size()),false);
} break;
case STRETCH_TILE: {
- draw_texture_rect(texture,Rect2(Point2(),get_size()),true,modulate);
+ draw_texture_rect(texture,Rect2(Point2(),get_size()),true);
} break;
case STRETCH_KEEP: {
- draw_texture_rect(texture,Rect2(Point2(),texture->get_size()),false,modulate);
+ draw_texture_rect(texture,Rect2(Point2(),texture->get_size()),false);
} break;
case STRETCH_KEEP_CENTERED: {
Vector2 ofs = (get_size() - texture->get_size())/2;
- draw_texture_rect(texture,Rect2(ofs,texture->get_size()),false,modulate);
+ draw_texture_rect(texture,Rect2(ofs,texture->get_size()),false);
} break;
case STRETCH_KEEP_ASPECT_CENTERED:
case STRETCH_KEEP_ASPECT: {
@@ -97,15 +97,12 @@ void TextureFrame::_bind_methods() {
ClassDB::bind_method(_MD("set_texture","texture"), & TextureFrame::set_texture );
ClassDB::bind_method(_MD("get_texture"), & TextureFrame::get_texture );
- ClassDB::bind_method(_MD("set_modulate","modulate"), & TextureFrame::set_modulate );
- ClassDB::bind_method(_MD("get_modulate"), & TextureFrame::get_modulate );
ClassDB::bind_method(_MD("set_expand","enable"), & TextureFrame::set_expand );
ClassDB::bind_method(_MD("has_expand"), & TextureFrame::has_expand );
ClassDB::bind_method(_MD("set_stretch_mode","stretch_mode"), & TextureFrame::set_stretch_mode );
ClassDB::bind_method(_MD("get_stretch_mode"), & TextureFrame::get_stretch_mode );
ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), _SCS("set_texture"),_SCS("get_texture") );
- ADD_PROPERTYNO( PropertyInfo( Variant::COLOR, "modulate"), _SCS("set_modulate"),_SCS("get_modulate") );
ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "expand" ), _SCS("set_expand"),_SCS("has_expand") );
ADD_PROPERTYNO( PropertyInfo( Variant::INT, "stretch_mode",PROPERTY_HINT_ENUM,"Scale On Expand (Compat),Scale,Tile,Keep,Keep Centered,Keep Aspect,Keep Aspect Centered"), _SCS("set_stretch_mode"),_SCS("get_stretch_mode") );
@@ -134,17 +131,6 @@ Ref<Texture> TextureFrame::get_texture() const {
return texture;
}
-void TextureFrame::set_modulate(const Color& p_tex) {
-
- modulate=p_tex;
- update();
-}
-
-Color TextureFrame::get_modulate() const{
-
- return modulate;
-}
-
void TextureFrame::set_expand(bool p_expand) {
@@ -172,8 +158,7 @@ TextureFrame::TextureFrame() {
expand=false;
- modulate=Color(1,1,1,1);
- set_ignore_mouse(true);
+ set_mouse_filter(MOUSE_FILTER_IGNORE);
stretch_mode=STRETCH_SCALE_ON_EXPAND;
}
diff --git a/scene/gui/texture_frame.h b/scene/gui/texture_frame.h
index 47a653a117..c311748708 100644
--- a/scene/gui/texture_frame.h
+++ b/scene/gui/texture_frame.h
@@ -49,7 +49,6 @@ public:
};
private:
bool expand;
- Color modulate;
Ref<Texture> texture;
StretchMode stretch_mode;
protected:
@@ -63,8 +62,6 @@ public:
void set_texture(const Ref<Texture>& p_tex);
Ref<Texture> get_texture() const;
- void set_modulate(const Color& p_tex);
- Color get_modulate() const;
void set_expand(bool p_expand);
bool has_expand() const;
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 86fe9cd682..f4f1fd8b9c 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -1955,7 +1955,7 @@ void Tree::popup_select(int p_option) {
-void Tree::_input_event(InputEvent p_event) {
+void Tree::_gui_input(InputEvent p_event) {
switch (p_event.type) {
@@ -2760,8 +2760,6 @@ void Tree::_notification(int p_what) {
update_scrollbars();
RID ci = get_canvas_item();
- VisualServer::get_singleton()->canvas_item_set_clip(ci,true);
-
Ref<StyleBox> bg = cache.bg;
Ref<StyleBox> bg_focus = get_stylebox("bg_focus");
@@ -3567,7 +3565,7 @@ bool Tree::get_allow_rmb_select() const{
void Tree::_bind_methods() {
ClassDB::bind_method(_MD("_range_click_timeout"),&Tree::_range_click_timeout);
- ClassDB::bind_method(_MD("_input_event"),&Tree::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&Tree::_gui_input);
ClassDB::bind_method(_MD("_popup_select"),&Tree::popup_select);
ClassDB::bind_method(_MD("_text_editor_enter"),&Tree::text_editor_enter);
ClassDB::bind_method(_MD("_text_editor_modal_close"),&Tree::_text_editor_modal_close);
@@ -3688,7 +3686,7 @@ Tree::Tree() {
v_scroll->connect("value_changed", this,"_scroll_moved");
text_editor->connect("text_entered", this,"_text_editor_enter");
text_editor->connect("modal_close", this,"_text_editor_modal_close");
- popup_menu->connect("item_pressed", this,"_popup_select");
+ popup_menu->connect("id_pressed", this,"_popup_select");
value_editor->connect("value_changed", this,"_value_editor_changed");
value_editor->set_as_toplevel(true);
@@ -3711,7 +3709,7 @@ Tree::Tree() {
blocked=0;
cursor_can_exit_tree=true;
- set_stop_mouse(true);
+ set_mouse_filter(MOUSE_FILTER_STOP);
drag_speed=0;
drag_touching=false;
@@ -3730,6 +3728,8 @@ Tree::Tree() {
force_select_on_already_selected=false;
allow_rmb_select=false;
+
+ set_clip_contents(true);
}
diff --git a/scene/gui/tree.h b/scene/gui/tree.h
index c69f685176..8327e356b3 100644
--- a/scene/gui/tree.h
+++ b/scene/gui/tree.h
@@ -345,7 +345,7 @@ friend class TreeItem;
void popup_select(int p_option);
- void _input_event(InputEvent p_event);
+ void _gui_input(InputEvent p_event);
void _notification(int p_what);
Size2 get_minimum_size() const;
diff --git a/scene/io/resource_format_wav.cpp b/scene/io/resource_format_wav.cpp
index 3720aa13fd..f75836d2df 100644
--- a/scene/io/resource_format_wav.cpp
+++ b/scene/io/resource_format_wav.cpp
@@ -171,9 +171,9 @@ RES ResourceFormatLoaderWAV::load(const String &p_path, const String& p_original
if (format_bits>8)
len*=2;
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(len);
- DVector<uint8_t>::Write dataw = data.write();
+ PoolVector<uint8_t>::Write dataw = data.write();
void * data_ptr = dataw.ptr();
for (int i=0;i<frames;i++) {
@@ -215,7 +215,7 @@ RES ResourceFormatLoaderWAV::load(const String &p_path, const String& p_original
}
- dataw=DVector<uint8_t>::Write();
+ dataw=PoolVector<uint8_t>::Write();
sample->set_data(data);
diff --git a/scene/main/http_request.h b/scene/main/http_request.h
index d4adaa16d4..59be980077 100644
--- a/scene/main/http_request.h
+++ b/scene/main/http_request.h
@@ -76,7 +76,7 @@ private:
bool got_response;
int response_code;
- DVector<String> response_headers;
+ PoolVector<String> response_headers;
String download_to_file;
diff --git a/scene/main/node.h b/scene/main/node.h
index 5c8cde5192..f9d334629e 100644
--- a/scene/main/node.h
+++ b/scene/main/node.h
@@ -146,7 +146,6 @@ private:
void _print_tree(const Node *p_node);
- virtual bool _use_builtin_script() const { return true; }
Node *_get_node(const NodePath& p_path) const;
Node *_get_child_by_name(const StringName& p_name) const;
@@ -223,6 +222,7 @@ public:
NOTIFICATION_DRAG_BEGIN=21,
NOTIFICATION_DRAG_END=22,
NOTIFICATION_PATH_CHANGED=23,
+ NOTIFICATION_TRANSLATION_CHANGED=24,
};
/* NODE/TREE */
diff --git a/scene/main/resource_preloader.cpp b/scene/main/resource_preloader.cpp
index 57bda91494..93a836a2eb 100644
--- a/scene/main/resource_preloader.cpp
+++ b/scene/main/resource_preloader.cpp
@@ -33,7 +33,7 @@ void ResourcePreloader::_set_resources(const Array& p_data) {
resources.clear();
ERR_FAIL_COND(p_data.size()!=2);
- DVector<String> names=p_data[0];
+ PoolVector<String> names=p_data[0];
Array resdata=p_data[1];
ERR_FAIL_COND(names.size()!=resdata.size());
@@ -52,7 +52,7 @@ void ResourcePreloader::_set_resources(const Array& p_data) {
Array ResourcePreloader::_get_resources() const {
- DVector<String> names;
+ PoolVector<String> names;
Array arr;
arr.resize(resources.size());
names.resize(resources.size());
@@ -139,9 +139,9 @@ RES ResourcePreloader::get_resource(const StringName& p_name) const {
return resources[p_name];
}
-DVector<String> ResourcePreloader::_get_resource_list() const {
+PoolVector<String> ResourcePreloader::_get_resource_list() const {
- DVector<String> res;
+ PoolVector<String> res;
res.resize(resources.size());
int i=0;
for(Map<StringName,RES >::Element *E=resources.front();E;E=E->next(),i++) {
diff --git a/scene/main/resource_preloader.h b/scene/main/resource_preloader.h
index 8f4f997cee..4e585d1751 100644
--- a/scene/main/resource_preloader.h
+++ b/scene/main/resource_preloader.h
@@ -41,7 +41,7 @@ class ResourcePreloader : public Node {
void _set_resources(const Array& p_data);
Array _get_resources() const;
- DVector<String> _get_resource_list() const;
+ PoolVector<String> _get_resource_list() const;
protected:
diff --git a/scene/main/scene_main_loop.cpp b/scene/main/scene_main_loop.cpp
index af6d6b18db..7ea7e49020 100644
--- a/scene/main/scene_main_loop.cpp
+++ b/scene/main/scene_main_loop.cpp
@@ -366,7 +366,7 @@ void SceneTree::input_text( const String& p_text ) {
void SceneTree::input_event( const InputEvent& p_event ) {
- if (is_editor_hint() && (p_event.type==InputEvent::JOYSTICK_MOTION || p_event.type==InputEvent::JOYSTICK_BUTTON))
+ if (is_editor_hint() && (p_event.type==InputEvent::JOYPAD_MOTION || p_event.type==InputEvent::JOYPAD_BUTTON))
return; //avoid joy input on editor
root_lock++;
@@ -650,6 +650,9 @@ void SceneTree::_notification(int p_notification) {
get_root()->propagate_notification(p_notification);
} break;
+ case NOTIFICATION_TRANSLATION_CHANGED: {
+ get_root()->propagate_notification(Node::NOTIFICATION_TRANSLATION_CHANGED);
+ } break;
case NOTIFICATION_WM_UNFOCUS_REQUEST: {
notify_group(GROUP_CALL_REALTIME|GROUP_CALL_MULIILEVEL,"input",NOTIFICATION_WM_UNFOCUS_REQUEST);
@@ -831,11 +834,11 @@ Ref<Mesh> SceneTree::get_debug_contact_mesh() {
1,3,5,
};
- DVector<int> indices;
+ PoolVector<int> indices;
for(int i=0;i<8*3;i++)
indices.push_back(diamond_faces[i]);
- DVector<Vector3> vertices;
+ PoolVector<Vector3> vertices;
for(int i=0;i<6;i++)
vertices.push_back(diamond[i]*0.1);
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index 11ae03b1d0..02d5d5ce30 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -51,6 +51,49 @@
#include "globals.h"
+void ViewportTexture::setup_local_to_scene() {
+
+ if (vp) {
+ vp->viewport_textures.erase(this);
+ }
+
+ vp=NULL;
+
+ Node *local_scene = get_local_scene();
+ if (!local_scene) {
+ return;
+ }
+
+ Node *vpn = local_scene->get_node(path);
+ ERR_EXPLAIN("ViewportTexture: Path to node is invalid");
+ ERR_FAIL_COND(!vpn);
+
+ vp = vpn->cast_to<Viewport>();
+
+ ERR_EXPLAIN("ViewportTexture: Path to node does not point to a viewport");
+ ERR_FAIL_COND(!vp);
+
+ vp->viewport_textures.insert(this);
+}
+
+void ViewportTexture::set_viewport_path_in_scene(const NodePath& p_path) {
+
+ if (path==p_path)
+ return;
+
+ path=p_path;
+
+ if (get_local_scene()) {
+ setup_local_to_scene();
+ }
+
+}
+
+NodePath ViewportTexture::get_viewport_path_in_scene() const {
+
+ return path;
+}
+
int ViewportTexture::get_width() const {
ERR_FAIL_COND_V(!vp,0);
@@ -82,24 +125,40 @@ void ViewportTexture::set_flags(uint32_t p_flags){
if (!vp)
return;
- if (p_flags&FLAG_FILTER)
- flags=FLAG_FILTER;
- else
- flags=0;
-
- VS::get_singleton()->texture_set_flags(vp->texture_rid,flags);
+ vp->texture_flags=p_flags;
+ VS::get_singleton()->texture_set_flags(vp->texture_rid,p_flags);
}
uint32_t ViewportTexture::get_flags() const{
- return flags;
+ if (!vp)
+ return 0;
+
+ return vp->texture_flags;
+}
+
+void ViewportTexture::_bind_methods() {
+
+ ClassDB::bind_method(_MD("set_viewport_path_in_scene","path"),&ViewportTexture::set_viewport_path_in_scene);
+ ClassDB::bind_method(_MD("get_viewport_path_in_scene"),&ViewportTexture::get_viewport_path_in_scene);
+
+ ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH,"viewport_path"),_SCS("set_viewport_path_in_scene"),_SCS("get_viewport_path_in_scene"));
+
+}
+
+ViewportTexture::ViewportTexture(){
+
+ vp=NULL;
+ set_local_to_scene(true);
+
}
-ViewportTexture::ViewportTexture(Viewport *p_vp){
+ViewportTexture::~ViewportTexture(){
- vp=p_vp;
- flags=0;
+ if (vp) {
+ vp->viewport_textures.erase(this);
+ }
}
/////////////////////////////////////
@@ -1256,7 +1315,11 @@ Image Viewport::get_screen_capture() const {
Ref<ViewportTexture> Viewport::get_texture() const {
- return texture;
+ Ref<ViewportTexture> vt;
+ vt.instance();
+ vt->vp=const_cast<Viewport*>(this);
+
+ return vt;
}
void Viewport::set_vflip(bool p_enable) {
@@ -1605,17 +1668,17 @@ void Viewport::_gui_call_input(Control *p_control,const InputEvent& p_input) {
Control *control = ci->cast_to<Control>();
if (control) {
- control->call_multilevel(SceneStringNames::get_singleton()->_input_event,ev);
+ control->call_multilevel(SceneStringNames::get_singleton()->_gui_input,ev);
if (gui.key_event_accepted)
break;
if (!control->is_inside_tree())
break;
- control->emit_signal(SceneStringNames::get_singleton()->input_event,ev);
+ control->emit_signal(SceneStringNames::get_singleton()->gui_input,ev);
if (!control->is_inside_tree() || control->is_set_as_toplevel())
break;
if (gui.key_event_accepted)
break;
- if (!cant_stop_me_now && control->data.stop_mouse && (ev.type==InputEvent::MOUSE_BUTTON || ev.type==InputEvent::MOUSE_MOTION))
+ if (!cant_stop_me_now && control->data.mouse_filter==Control::MOUSE_FILTER_STOP && (ev.type==InputEvent::MOUSE_BUTTON || ev.type==InputEvent::MOUSE_MOTION))
break;
}
@@ -1724,7 +1787,7 @@ Control* Viewport::_gui_find_control_at_pos(CanvasItem* p_node,const Point2& p_g
matrix.affine_invert();
//conditions for considering this as a valid control for return
- if (!c->data.ignore_mouse && c->has_point(matrix.xform(p_global)) && (!gui.drag_preview || (c!=gui.drag_preview && !gui.drag_preview->is_a_parent_of(c)))) {
+ if (c->data.mouse_filter!=Control::MOUSE_FILTER_IGNORE && c->has_point(matrix.xform(p_global)) && (!gui.drag_preview || (c!=gui.drag_preview && !gui.drag_preview->is_a_parent_of(c)))) {
r_inv_xform=matrix;
return c;
} else
@@ -2086,8 +2149,8 @@ void Viewport::_gui_input_event(InputEvent p_event) {
} break;
case InputEvent::ACTION:
- case InputEvent::JOYSTICK_BUTTON:
- case InputEvent::JOYSTICK_MOTION:
+ case InputEvent::JOYPAD_BUTTON:
+ case InputEvent::JOYPAD_MOTION:
case InputEvent::KEY: {
@@ -2099,9 +2162,9 @@ void Viewport::_gui_input_event(InputEvent p_event) {
gui.key_event_accepted=false;
if (gui.key_focus->can_process()) {
- gui.key_focus->call_multilevel("_input_event",p_event);
+ gui.key_focus->call_multilevel(SceneStringNames::get_singleton()->_gui_input,p_event);
if (gui.key_focus) //maybe lost it
- gui.key_focus->emit_signal(SceneStringNames::get_singleton()->input_event,p_event);
+ gui.key_focus->emit_signal(SceneStringNames::get_singleton()->gui_input,p_event);
}
@@ -2409,7 +2472,7 @@ void Viewport::_gui_grab_click_focus(Control *p_control) {
mb.y=click.y;
mb.button_index=gui.mouse_focus_button;
mb.pressed=false;
- gui.mouse_focus->call_deferred("_input_event",ie);
+ gui.mouse_focus->call_deferred(SceneStringNames::get_singleton()->_gui_input,ie);
gui.mouse_focus=p_control;
@@ -2419,7 +2482,7 @@ void Viewport::_gui_grab_click_focus(Control *p_control) {
mb.y=click.y;
mb.button_index=gui.mouse_focus_button;
mb.pressed=true;
- gui.mouse_focus->call_deferred("_input_event",ie);
+ gui.mouse_focus->call_deferred(SceneStringNames::get_singleton()->_gui_input,ie);
}
}
@@ -2788,6 +2851,7 @@ Viewport::Viewport() {
viewport = VisualServer::get_singleton()->viewport_create();
texture_rid=VisualServer::get_singleton()->viewport_get_texture(viewport);
+ texture_flags=0;
internal_listener = SpatialSoundServer::get_singleton()->listener_create();
audio_listener=false;
internal_listener_2d = SpatialSound2DServer::get_singleton()->listener_create();
@@ -2805,7 +2869,6 @@ Viewport::Viewport() {
clear_on_new_frame=true;
//clear=true;
update_mode=UPDATE_WHEN_VISIBLE;
- texture = Ref<ViewportTexture>( memnew( ViewportTexture(this) ) );
physics_object_picking=false;
physics_object_capture=0;
@@ -2853,11 +2916,14 @@ Viewport::Viewport() {
Viewport::~Viewport() {
+ //erase itself from viewport textures
+ for(Set<ViewportTexture*>::Element *E=viewport_textures.front();E;E=E->next()) {
+ E->get()->vp=NULL;
+ }
VisualServer::get_singleton()->free( viewport );
SpatialSoundServer::get_singleton()->free(internal_listener);
SpatialSound2DServer::get_singleton()->free(internal_listener_2d);
- if (texture.is_valid())
- texture->vp=NULL; //so if used, will crash
+
}
diff --git a/scene/main/viewport.h b/scene/main/viewport.h
index 702c9f792f..5feeae6237 100644
--- a/scene/main/viewport.h
+++ b/scene/main/viewport.h
@@ -52,13 +52,20 @@ class ViewportTexture : public Texture {
GDCLASS( ViewportTexture, Texture );
- int flags;
-friend class Viewport;
- Viewport *vp;
+ NodePath path;
+friend class Viewport;
+ Viewport* vp;
+protected:
+ static void _bind_methods();
public:
+ void set_viewport_path_in_scene(const NodePath& p_path);
+ NodePath get_viewport_path_in_scene() const;
+
+ virtual void setup_local_to_scene();
+
virtual int get_width() const;
virtual int get_height() const;
@@ -70,7 +77,8 @@ public:
virtual void set_flags(uint32_t p_flags);
virtual uint32_t get_flags() const;
- ViewportTexture(Viewport *p_vp=NULL);
+ ViewportTexture();
+ ~ViewportTexture();
};
@@ -191,7 +199,7 @@ friend class ViewportTexture;
bool disable_3d;
UpdateMode update_mode;
RID texture_rid;
- Ref<ViewportTexture> texture;
+ uint32_t texture_flags;
int shadow_atlas_size;
ShadowAtlasQuadrantSubdiv shadow_atlas_quadrant_subdiv[4];
@@ -199,6 +207,8 @@ friend class ViewportTexture;
MSAA msaa;
bool hdr;
+ Set<ViewportTexture*> viewport_textures;
+
struct GUI {
// info used when this is a window
diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp
index b5c438d953..c962e1a671 100644
--- a/scene/resources/animation.cpp
+++ b/scene/resources/animation.cpp
@@ -72,6 +72,8 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
track_set_path(track,p_value);
else if (what=="interp")
track_set_interpolation_type(track,InterpolationType(p_value.operator int()));
+ else if (what=="loop_wrap")
+ track_set_interpolation_loop_wrap(track,p_value);
else if (what=="imported")
track_set_imported(track,p_value);
else if (what == "keys" || what=="key_values") {
@@ -79,14 +81,14 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
if (track_get_type(track)==TYPE_TRANSFORM) {
TransformTrack *tt = static_cast<TransformTrack*>(tracks[track]);
- DVector<float> values=p_value;
+ PoolVector<float> values=p_value;
int vcount=values.size();
#if 0 // old compatibility hack
if ((vcount%11) == 0) {
- DVector<float>::Read r = values.read();
+ PoolVector<float>::Read r = values.read();
tt->transforms.resize(vcount/11);
@@ -121,7 +123,7 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
#endif
ERR_FAIL_COND_V(vcount%12,false); // shuld be multiple of 11
- DVector<float>::Read r = values.read();
+ PoolVector<float>::Read r = values.read();
tt->transforms.resize(vcount/12);
@@ -172,7 +174,7 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
- DVector<float> times=d["times"];
+ PoolVector<float> times=d["times"];
Array values=d["values"];
ERR_FAIL_COND_V(times.size()!=values.size(),false);
@@ -181,7 +183,7 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
int valcount=times.size();
- DVector<float>::Read rt = times.read();
+ PoolVector<float>::Read rt = times.read();
vt->values.resize(valcount);
@@ -193,10 +195,10 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
if (d.has("transitions")) {
- DVector<float> transitions = d["transitions"];
+ PoolVector<float> transitions = d["transitions"];
ERR_FAIL_COND_V(transitions.size()!=valcount,false);
- DVector<float>::Read rtr = transitions.read();
+ PoolVector<float>::Read rtr = transitions.read();
for(int i=0;i<valcount;i++) {
@@ -218,7 +220,7 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
ERR_FAIL_COND_V(!d.has("times"),false);
ERR_FAIL_COND_V(!d.has("values"),false);
- DVector<float> times=d["times"];
+ PoolVector<float> times=d["times"];
Array values=d["values"];
ERR_FAIL_COND_V(times.size()!=values.size(),false);
@@ -227,7 +229,7 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
int valcount=times.size();
- DVector<float>::Read rt = times.read();
+ PoolVector<float>::Read rt = times.read();
for(int i=0;i<valcount;i++) {
@@ -236,10 +238,10 @@ bool Animation::_set(const StringName& p_name, const Variant& p_value) {
if (d.has("transitions")) {
- DVector<float> transitions = d["transitions"];
+ PoolVector<float> transitions = d["transitions"];
ERR_FAIL_COND_V(transitions.size()!=valcount,false);
- DVector<float>::Read rtr = transitions.read();
+ PoolVector<float>::Read rtr = transitions.read();
for(int i=0;i<valcount;i++) {
@@ -291,17 +293,19 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
r_ret=track_get_path(track);
else if (what=="interp")
r_ret = track_get_interpolation_type(track);
+ else if (what=="loop_wrap")
+ r_ret = track_get_interpolation_loop_wrap(track);
else if (what=="imported")
r_ret = track_is_imported(track);
else if (what=="keys") {
if (track_get_type(track)==TYPE_TRANSFORM) {
- DVector<real_t> keys;
+ PoolVector<real_t> keys;
int kk=track_get_key_count(track);
keys.resize(kk*12);
- DVector<real_t>::Write w = keys.write();
+ PoolVector<real_t>::Write w = keys.write();
int idx=0;
for(int i=0;i<track_get_key_count(track);i++) {
@@ -327,7 +331,7 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
w[idx++]=scale.z;
}
- w = DVector<real_t>::Write();
+ w = PoolVector<real_t>::Write();
r_ret=keys;
return true;
@@ -338,8 +342,8 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
Dictionary d;
- DVector<float> key_times;
- DVector<float> key_transitions;
+ PoolVector<float> key_times;
+ PoolVector<float> key_transitions;
Array key_values;
int kk=vt->values.size();
@@ -348,8 +352,8 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
key_transitions.resize(kk);
key_values.resize(kk);
- DVector<float>::Write wti=key_times.write();
- DVector<float>::Write wtr=key_transitions.write();
+ PoolVector<float>::Write wti=key_times.write();
+ PoolVector<float>::Write wtr=key_transitions.write();
int idx=0;
@@ -363,8 +367,8 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
idx++;
}
- wti=DVector<float>::Write();
- wtr=DVector<float>::Write();
+ wti=PoolVector<float>::Write();
+ wtr=PoolVector<float>::Write();
d["times"]=key_times;
d["transitions"]=key_transitions;
@@ -382,8 +386,8 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
Dictionary d;
- DVector<float> key_times;
- DVector<float> key_transitions;
+ PoolVector<float> key_times;
+ PoolVector<float> key_transitions;
Array key_values;
int kk=track_get_key_count(track);
@@ -392,8 +396,8 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
key_transitions.resize(kk);
key_values.resize(kk);
- DVector<float>::Write wti=key_times.write();
- DVector<float>::Write wtr=key_transitions.write();
+ PoolVector<float>::Write wti=key_times.write();
+ PoolVector<float>::Write wtr=key_transitions.write();
int idx=0;
for(int i=0;i<track_get_key_count(track);i++) {
@@ -404,8 +408,8 @@ bool Animation::_get(const StringName& p_name,Variant &r_ret) const {
idx++;
}
- wti=DVector<float>::Write();
- wtr=DVector<float>::Write();
+ wti=PoolVector<float>::Write();
+ wtr=PoolVector<float>::Write();
d["times"]=key_times;
d["transitions"]=key_transitions;
@@ -440,6 +444,7 @@ void Animation::_get_property_list( List<PropertyInfo> *p_list) const {
p_list->push_back( PropertyInfo( Variant::STRING, "tracks/"+itos(i)+"/type", PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR) );
p_list->push_back( PropertyInfo( Variant::NODE_PATH, "tracks/"+itos(i)+"/path", PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR) );
p_list->push_back( PropertyInfo( Variant::INT, "tracks/"+itos(i)+"/interp", PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR) );
+ p_list->push_back( PropertyInfo( Variant::BOOL, "tracks/"+itos(i)+"/loop_wrap", PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR) );
p_list->push_back( PropertyInfo( Variant::BOOL, "tracks/"+itos(i)+"/imported", PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR) );
p_list->push_back( PropertyInfo( Variant::ARRAY, "tracks/"+itos(i)+"/keys", PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR) );
}
@@ -559,6 +564,19 @@ Animation::InterpolationType Animation::track_get_interpolation_type(int p_track
return tracks[p_track]->interpolation;
}
+void Animation::track_set_interpolation_loop_wrap(int p_track,bool p_enable) {
+ ERR_FAIL_INDEX(p_track, tracks.size());
+ tracks[p_track]->loop_wrap=p_enable;
+ emit_changed();
+
+}
+
+bool Animation::track_get_interpolation_loop_wrap(int p_track) const{
+
+ ERR_FAIL_INDEX_V(p_track, tracks.size(),INTERPOLATION_NEAREST);
+ return tracks[p_track]->loop_wrap;
+
+}
// transform
/*
@@ -1211,7 +1229,7 @@ float Animation::_cubic_interpolate( const float& p_pre_a,const float& p_a, cons
}
template<class T>
-T Animation::_interpolate( const Vector< TKey<T> >& p_keys, float p_time, InterpolationType p_interp, bool *p_ok) const {
+T Animation::_interpolate( const Vector< TKey<T> >& p_keys, float p_time, InterpolationType p_interp, bool p_loop_wrap,bool *p_ok) const {
int len=_find( p_keys, length )+1; // try to find last key (there may be more past the end)
@@ -1239,7 +1257,7 @@ T Animation::_interpolate( const Vector< TKey<T> >& p_keys, float p_time, Inter
float c=0;
// prepare for all cases of interpolation
- if (loop) {
+ if (loop && p_loop_wrap) {
// loop
if (idx>=0) {
@@ -1363,7 +1381,7 @@ Error Animation::transform_track_interpolate(int p_track, float p_time, Vector3
bool ok;
- TransformKey tk = _interpolate( tt->transforms, p_time, tt->interpolation, &ok );
+ TransformKey tk = _interpolate( tt->transforms, p_time, tt->interpolation, tt->loop_wrap, &ok );
if (!ok) // ??
return ERR_UNAVAILABLE;
@@ -1391,7 +1409,7 @@ Variant Animation::value_track_interpolate(int p_track, float p_time) const {
bool ok;
- Variant res = _interpolate( vt->values, p_time, vt->update_mode==UPDATE_CONTINUOUS?vt->interpolation:INTERPOLATION_NEAREST, &ok );
+ Variant res = _interpolate( vt->values, p_time, vt->update_mode==UPDATE_CONTINUOUS?vt->interpolation:INTERPOLATION_NEAREST,vt->loop_wrap, &ok );
if (ok) {
@@ -1711,6 +1729,8 @@ void Animation::_bind_methods() {
ClassDB::bind_method(_MD("track_set_interpolation_type","idx","interpolation"),&Animation::track_set_interpolation_type);
ClassDB::bind_method(_MD("track_get_interpolation_type","idx"),&Animation::track_get_interpolation_type);
+ ClassDB::bind_method(_MD("track_set_interpolation_loop_wrap","idx","interpolation"),&Animation::track_set_interpolation_loop_wrap);
+ ClassDB::bind_method(_MD("track_get_interpolation_loop_wrap","idx"),&Animation::track_get_interpolation_loop_wrap);
ClassDB::bind_method(_MD("transform_track_interpolate","idx","time_sec"),&Animation::_transform_track_interpolate);
diff --git a/scene/resources/animation.h b/scene/resources/animation.h
index 90824d8c7b..b81ac4f1bf 100644
--- a/scene/resources/animation.h
+++ b/scene/resources/animation.h
@@ -39,12 +39,7 @@ class Animation : public Resource {
RES_BASE_EXTENSION("anm");
public:
- enum LoopMode {
- LOOP_NONE,
- LOOP_ENABLED,
- LOOP_WRAP
- };
enum TrackType {
TYPE_VALUE, ///< Set a value in a property, can be interpolated.
@@ -71,9 +66,10 @@ private:
TrackType type;
InterpolationType interpolation;
+ bool loop_wrap;
NodePath path; // path to something
bool imported;
- Track() { interpolation=INTERPOLATION_LINEAR; imported=false;}
+ Track() { interpolation=INTERPOLATION_LINEAR; imported=false; loop_wrap=true;}
virtual ~Track() {}
};
@@ -164,7 +160,7 @@ private:
_FORCE_INLINE_ float _cubic_interpolate( const float& p_pre_a,const float& p_a, const float& p_b, const float& p_post_b, float p_c) const;
template<class T>
- _FORCE_INLINE_ T _interpolate( const Vector< TKey<T> >& p_keys, float p_time, InterpolationType p_interp,bool *p_ok) const;
+ _FORCE_INLINE_ T _interpolate( const Vector< TKey<T> >& p_keys, float p_time, InterpolationType p_interp,bool p_loop_wrap,bool *p_ok) const;
_FORCE_INLINE_ void _value_track_get_key_indices_in_range(const ValueTrack * vt, float from_time, float to_time,List<int> *p_indices) const;
_FORCE_INLINE_ void _method_track_get_key_indices_in_range(const MethodTrack * mt, float from_time, float to_time,List<int> *p_indices) const;
@@ -188,11 +184,11 @@ private:
return ret;
}
- DVector<int> _value_track_get_key_indices(int p_track, float p_time, float p_delta) const {
+ PoolVector<int> _value_track_get_key_indices(int p_track, float p_time, float p_delta) const {
List<int> idxs;
value_track_get_key_indices(p_track,p_time,p_delta,&idxs);
- DVector<int> idxr;
+ PoolVector<int> idxr;
for (List<int>::Element *E=idxs.front();E;E=E->next()) {
@@ -200,11 +196,11 @@ private:
}
return idxr;
}
- DVector<int> _method_track_get_key_indices(int p_track, float p_time, float p_delta) const {
+ PoolVector<int> _method_track_get_key_indices(int p_track, float p_time, float p_delta) const {
List<int> idxs;
method_track_get_key_indices(p_track,p_time,p_delta,&idxs);
- DVector<int> idxr;
+ PoolVector<int> idxr;
for (List<int>::Element *E=idxs.front();E;E=E->next()) {
@@ -260,6 +256,8 @@ public:
void track_set_interpolation_type(int p_track,InterpolationType p_interp);
InterpolationType track_get_interpolation_type(int p_track) const;
+ void track_set_interpolation_loop_wrap(int p_track,bool p_enable);
+ bool track_get_interpolation_loop_wrap(int p_track) const;
Error transform_track_interpolate(int p_track, float p_time, Vector3 * r_loc, Quat *r_rot, Vector3 *r_scale) const;
diff --git a/scene/resources/bit_mask.cpp b/scene/resources/bit_mask.cpp
index 81ba28fd26..d669ab771c 100644
--- a/scene/resources/bit_mask.cpp
+++ b/scene/resources/bit_mask.cpp
@@ -51,7 +51,7 @@ void BitMap::create_from_image_alpha(const Image& p_image){
create(Size2(img.get_width(),img.get_height()));
- DVector<uint8_t>::Read r = img.get_data().read();
+ PoolVector<uint8_t>::Read r = img.get_data().read();
uint8_t *w = bitmask.ptr();
for(int i=0;i<width*height;i++) {
diff --git a/scene/resources/concave_polygon_shape.cpp b/scene/resources/concave_polygon_shape.cpp
index fc1a3a9961..5190bba6a5 100644
--- a/scene/resources/concave_polygon_shape.cpp
+++ b/scene/resources/concave_polygon_shape.cpp
@@ -34,11 +34,11 @@ Vector<Vector3> ConcavePolygonShape::_gen_debug_mesh_lines() {
Set<DrawEdge> edges;
- DVector<Vector3> data=get_faces();
+ PoolVector<Vector3> data=get_faces();
int datalen=data.size();
ERR_FAIL_COND_V( (datalen%3)!=0,Vector<Vector3>() );
- DVector<Vector3>::Read r=data.read();
+ PoolVector<Vector3>::Read r=data.read();
for(int i=0;i<datalen;i+=3) {
@@ -94,13 +94,13 @@ void ConcavePolygonShape::_update_shape() {
}
-void ConcavePolygonShape::set_faces(const DVector<Vector3>& p_faces) {
+void ConcavePolygonShape::set_faces(const PoolVector<Vector3>& p_faces) {
PhysicsServer::get_singleton()->shape_set_data(get_shape(),p_faces);
notify_change_to_owners();
}
-DVector<Vector3> ConcavePolygonShape::get_faces() const {
+PoolVector<Vector3> ConcavePolygonShape::get_faces() const {
return PhysicsServer::get_singleton()->shape_get_data(get_shape());
diff --git a/scene/resources/concave_polygon_shape.h b/scene/resources/concave_polygon_shape.h
index 08d95da0ac..36e806d37a 100644
--- a/scene/resources/concave_polygon_shape.h
+++ b/scene/resources/concave_polygon_shape.h
@@ -67,8 +67,8 @@ protected:
virtual Vector<Vector3> _gen_debug_mesh_lines();
public:
- void set_faces(const DVector<Vector3>& p_faces);
- DVector<Vector3> get_faces() const;
+ void set_faces(const PoolVector<Vector3>& p_faces);
+ PoolVector<Vector3> get_faces() const;
ConcavePolygonShape();
diff --git a/scene/resources/concave_polygon_shape_2d.cpp b/scene/resources/concave_polygon_shape_2d.cpp
index 4be95cb26d..e794643132 100644
--- a/scene/resources/concave_polygon_shape_2d.cpp
+++ b/scene/resources/concave_polygon_shape_2d.cpp
@@ -31,13 +31,13 @@
#include "servers/physics_2d_server.h"
#include "servers/visual_server.h"
-void ConcavePolygonShape2D::set_segments(const DVector<Vector2>& p_segments) {
+void ConcavePolygonShape2D::set_segments(const PoolVector<Vector2>& p_segments) {
Physics2DServer::get_singleton()->shape_set_data(get_rid(),p_segments);
emit_changed();
}
-DVector<Vector2> ConcavePolygonShape2D::get_segments() const {
+PoolVector<Vector2> ConcavePolygonShape2D::get_segments() const {
return Physics2DServer::get_singleton()->shape_get_data(get_rid());
}
@@ -45,12 +45,12 @@ DVector<Vector2> ConcavePolygonShape2D::get_segments() const {
void ConcavePolygonShape2D::draw(const RID& p_to_rid,const Color& p_color) {
- DVector<Vector2> s = get_segments();
+ PoolVector<Vector2> s = get_segments();
int len=s.size();
if (len==0 || (len%2)==1)
return;
- DVector<Vector2>::Read r = s.read();
+ PoolVector<Vector2>::Read r = s.read();
for(int i=0;i<len;i+=2) {
VisualServer::get_singleton()->canvas_item_add_line(p_to_rid,r[i],r[i+1],p_color,2);
}
@@ -60,14 +60,14 @@ void ConcavePolygonShape2D::draw(const RID& p_to_rid,const Color& p_color) {
Rect2 ConcavePolygonShape2D::get_rect() const {
- DVector<Vector2> s = get_segments();
+ PoolVector<Vector2> s = get_segments();
int len=s.size();
if (len==0)
return Rect2();
Rect2 rect;
- DVector<Vector2>::Read r = s.read();
+ PoolVector<Vector2>::Read r = s.read();
for(int i=0;i<len;i++) {
if (i==0)
rect.pos=r[i];
diff --git a/scene/resources/concave_polygon_shape_2d.h b/scene/resources/concave_polygon_shape_2d.h
index 36c67254f3..309fb4a7b3 100644
--- a/scene/resources/concave_polygon_shape_2d.h
+++ b/scene/resources/concave_polygon_shape_2d.h
@@ -38,8 +38,8 @@ protected:
static void _bind_methods();
public:
- void set_segments(const DVector<Vector2>& p_segments);
- DVector<Vector2> get_segments() const;
+ void set_segments(const PoolVector<Vector2>& p_segments);
+ PoolVector<Vector2> get_segments() const;
virtual void draw(const RID& p_to_rid,const Color& p_color);
virtual Rect2 get_rect() const ;
diff --git a/scene/resources/convex_polygon_shape.cpp b/scene/resources/convex_polygon_shape.cpp
index 21e93e4b5c..ca9897bf97 100644
--- a/scene/resources/convex_polygon_shape.cpp
+++ b/scene/resources/convex_polygon_shape.cpp
@@ -32,7 +32,7 @@
Vector<Vector3> ConvexPolygonShape::_gen_debug_mesh_lines() {
- DVector<Vector3> points = get_points();
+ PoolVector<Vector3> points = get_points();
if (points.size()>3) {
@@ -64,14 +64,14 @@ void ConvexPolygonShape::_update_shape() {
emit_changed();
}
-void ConvexPolygonShape::set_points(const DVector<Vector3>& p_points) {
+void ConvexPolygonShape::set_points(const PoolVector<Vector3>& p_points) {
points=p_points;
_update_shape();
notify_change_to_owners();
}
-DVector<Vector3> ConvexPolygonShape::get_points() const {
+PoolVector<Vector3> ConvexPolygonShape::get_points() const {
return points;
}
diff --git a/scene/resources/convex_polygon_shape.h b/scene/resources/convex_polygon_shape.h
index 296a0ce4ca..215de941c6 100644
--- a/scene/resources/convex_polygon_shape.h
+++ b/scene/resources/convex_polygon_shape.h
@@ -34,7 +34,7 @@
class ConvexPolygonShape : public Shape {
GDCLASS(ConvexPolygonShape,Shape);
- DVector<Vector3> points;
+ PoolVector<Vector3> points;
protected:
@@ -45,8 +45,8 @@ protected:
virtual Vector<Vector3> _gen_debug_mesh_lines();
public:
- void set_points(const DVector<Vector3>& p_points);
- DVector<Vector3> get_points() const;
+ void set_points(const PoolVector<Vector3>& p_points);
+ PoolVector<Vector3> get_points() const;
ConvexPolygonShape();
};
diff --git a/scene/resources/curve.cpp b/scene/resources/curve.cpp
index fd0e9be304..50c546b855 100644
--- a/scene/resources/curve.cpp
+++ b/scene/resources/curve.cpp
@@ -143,17 +143,17 @@ Vector2 Curve2D::interpolatef(real_t p_findex) const {
}
-DVector<Point2> Curve2D::bake(int p_subdivs) const {
+PoolVector<Point2> Curve2D::bake(int p_subdivs) const {
int pc = points.size();
- DVector<Point2> ret;
+ PoolVector<Point2> ret;
if (pc<2)
return ret;
ret.resize((pc-1)*p_subdivs+1);
- DVector<Point2>::Write w = ret.write();
+ PoolVector<Point2>::Write w = ret.write();
const Point *r = points.ptr();
for(int i=0;i<pc;i++) {
@@ -175,7 +175,7 @@ DVector<Point2> Curve2D::bake(int p_subdivs) const {
}
}
- w = DVector<Point2>::Write();
+ w = PoolVector<Point2>::Write();
return ret;
}
diff --git a/scene/resources/curve.h b/scene/resources/curve.h
index 289de50444..670232c9b2 100644
--- a/scene/resources/curve.h
+++ b/scene/resources/curve.h
@@ -72,7 +72,7 @@ public:
Vector2 interpolate(int p_index, float p_offset) const;
Vector2 interpolatef(real_t p_findex) const;
- DVector<Point2> bake(int p_subdivs=10) const;
+ PoolVector<Point2> bake(int p_subdivs=10) const;
void advance(real_t p_distance,int &r_index, real_t &r_pos) const;
void get_approx_position_from_offset(real_t p_offset,int &r_index, real_t &r_pos,int p_subdivs=16) const;
diff --git a/scene/resources/dynamic_font.cpp b/scene/resources/dynamic_font.cpp
index 7ab7cc74e5..3aadbdbe19 100644
--- a/scene/resources/dynamic_font.cpp
+++ b/scene/resources/dynamic_font.cpp
@@ -535,7 +535,7 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
{
//zero texture
- DVector<uint8_t>::Write w = tex.imgdata.write();
+ PoolVector<uint8_t>::Write w = tex.imgdata.write();
ERR_FAIL_COND(texsize*texsize*2 > tex.imgdata.size());
for(int i=0;i<texsize*texsize*2;i++) {
w[i]=0;
@@ -556,7 +556,7 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
CharTexture &tex=textures[tex_index];
{
- DVector<uint8_t>::Write wr = tex.imgdata.write();
+ PoolVector<uint8_t>::Write wr = tex.imgdata.write();
for(int i=0;i<h;i++) {
diff --git a/scene/resources/dynamic_font.h b/scene/resources/dynamic_font.h
index 133d48bdea..321ec7e332 100644
--- a/scene/resources/dynamic_font.h
+++ b/scene/resources/dynamic_font.h
@@ -107,7 +107,7 @@ class DynamicFontAtSize : public Reference {
struct CharTexture {
- DVector<uint8_t> imgdata;
+ PoolVector<uint8_t> imgdata;
int texture_size;
Vector<int> offsets;
Ref<ImageTexture> texture;
diff --git a/scene/resources/dynamic_font_stb.cpp b/scene/resources/dynamic_font_stb.cpp
index c931b4d6c8..a25667d85a 100644
--- a/scene/resources/dynamic_font_stb.cpp
+++ b/scene/resources/dynamic_font_stb.cpp
@@ -26,10 +26,10 @@ void DynamicFontData::lock() {
void DynamicFontData::unlock() {
- fr = DVector<uint8_t>::Read();
+ fr = PoolVector<uint8_t>::Read();
}
-void DynamicFontData::set_font_data(const DVector<uint8_t>& p_font) {
+void DynamicFontData::set_font_data(const PoolVector<uint8_t>& p_font) {
//clear caches and stuff
ERR_FAIL_COND(font_data.size()) ;
font_data=p_font;
@@ -284,7 +284,7 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
{
//zero texture
- DVector<uint8_t>::Write w = tex.imgdata.write();
+ PoolVector<uint8_t>::Write w = tex.imgdata.write();
ERR_FAIL_COND(texsize*texsize*2 > tex.imgdata.size());
for(int i=0;i<texsize*texsize*2;i++) {
w[i]=0;
@@ -305,7 +305,7 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
CharTexture &tex=textures[tex_index];
{
- DVector<uint8_t>::Write wr = tex.imgdata.write();
+ PoolVector<uint8_t>::Write wr = tex.imgdata.write();
for(int i=0;i<h;i++) {
for(int j=0;j<w;j++) {
@@ -485,14 +485,14 @@ RES ResourceFormatLoaderDynamicFont::load(const String &p_path, const String& p_
FileAccess *f = FileAccess::open(p_path,FileAccess::READ);
ERR_FAIL_COND_V(!f,RES());
- DVector<uint8_t> data;
+ PoolVector<uint8_t> data;
data.resize(f->get_len());
ERR_FAIL_COND_V(data.size()==0,RES());
{
- DVector<uint8_t>::Write w = data.write();
+ PoolVector<uint8_t>::Write w = data.write();
f->get_buffer(w.ptr(),data.size());
}
diff --git a/scene/resources/dynamic_font_stb.h b/scene/resources/dynamic_font_stb.h
index ad7ca0009d..07a3e5ee6c 100644
--- a/scene/resources/dynamic_font_stb.h
+++ b/scene/resources/dynamic_font_stb.h
@@ -18,8 +18,8 @@ class DynamicFontData : public Resource {
bool valid;
- DVector<uint8_t> font_data;
- DVector<uint8_t>::Read fr;
+ PoolVector<uint8_t> font_data;
+ PoolVector<uint8_t>::Read fr;
const uint8_t* last_data_ptr;
struct KerningPairKey {
@@ -56,7 +56,7 @@ friend class DynamicFont;
Ref<DynamicFontAtSize> _get_dynamic_font_at_size(int p_size);
public:
- void set_font_data(const DVector<uint8_t>& p_font);
+ void set_font_data(const PoolVector<uint8_t>& p_font);
DynamicFontData();
~DynamicFontData();
};
@@ -71,7 +71,7 @@ class DynamicFontAtSize : public Reference {
struct CharTexture {
- DVector<uint8_t> imgdata;
+ PoolVector<uint8_t> imgdata;
int texture_size;
Vector<int> offsets;
Ref<ImageTexture> texture;
diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp
index d4e18c58b8..0464a64031 100644
--- a/scene/resources/font.cpp
+++ b/scene/resources/font.cpp
@@ -97,7 +97,7 @@ Font::Font() {
/////////////////////////////////////////////////////////////////
-void BitmapFont::_set_chars(const DVector<int>& p_chars) {
+void BitmapFont::_set_chars(const PoolVector<int>& p_chars) {
int len = p_chars.size();
//char 1 charsize 1 texture, 4 rect, 2 align, advance 1
@@ -107,7 +107,7 @@ void BitmapFont::_set_chars(const DVector<int>& p_chars) {
int chars = len/9;
- DVector<int>::Read r=p_chars.read();
+ PoolVector<int>::Read r=p_chars.read();
for(int i=0;i<chars;i++) {
const int* data = &r[i*9];
@@ -116,9 +116,9 @@ void BitmapFont::_set_chars(const DVector<int>& p_chars) {
}
-DVector<int> BitmapFont::_get_chars() const {
+PoolVector<int> BitmapFont::_get_chars() const {
- DVector<int> chars;
+ PoolVector<int> chars;
const CharType* key=NULL;
@@ -140,13 +140,13 @@ DVector<int> BitmapFont::_get_chars() const {
return chars;
}
-void BitmapFont::_set_kernings(const DVector<int>& p_kernings) {
+void BitmapFont::_set_kernings(const PoolVector<int>& p_kernings) {
int len=p_kernings.size();
ERR_FAIL_COND(len%3);
if (!len)
return;
- DVector<int>::Read r=p_kernings.read();
+ PoolVector<int>::Read r=p_kernings.read();
for(int i=0;i<len/3;i++) {
@@ -155,9 +155,9 @@ void BitmapFont::_set_kernings(const DVector<int>& p_kernings) {
}
}
-DVector<int> BitmapFont::_get_kernings() const {
+PoolVector<int> BitmapFont::_get_kernings() const {
- DVector<int> kernings;
+ PoolVector<int> kernings;
for(Map<KerningPairKey,int>::Element *E=kerning_map.front();E;E=E->next()) {
diff --git a/scene/resources/font.h b/scene/resources/font.h
index 397d48cbb0..ad0f0176db 100644
--- a/scene/resources/font.h
+++ b/scene/resources/font.h
@@ -109,10 +109,10 @@ private:
float ascent;
bool distance_field_hint;
- void _set_chars(const DVector<int>& p_chars);
- DVector<int> _get_chars() const;
- void _set_kernings(const DVector<int>& p_kernings);
- DVector<int> _get_kernings() const;
+ void _set_chars(const PoolVector<int>& p_chars);
+ PoolVector<int> _get_chars() const;
+ void _set_kernings(const PoolVector<int>& p_kernings);
+ PoolVector<int> _get_kernings() const;
void _set_textures(const Vector<Variant> & p_textures);
Vector<Variant> _get_textures() const;
diff --git a/scene/resources/mesh.cpp b/scene/resources/mesh.cpp
index ed35eb0216..bad87910ff 100644
--- a/scene/resources/mesh.cpp
+++ b/scene/resources/mesh.cpp
@@ -79,9 +79,9 @@ bool Mesh::_set(const StringName& p_name, const Variant& p_value) {
if (p_name=="morph_target/names") {
- DVector<String> sk=p_value;
+ PoolVector<String> sk=p_value;
int sz = sk.size();
- DVector<String>::Read r = sk.read();
+ PoolVector<String>::Read r = sk.read();
for(int i=0;i<sz;i++)
add_morph_target(r[i]);
return true;
@@ -133,8 +133,8 @@ bool Mesh::_set(const StringName& p_name, const Variant& p_value) {
} else if (d.has("array_data")) {
- DVector<uint8_t> array_data = d["array_data"];
- DVector<uint8_t> array_index_data;
+ PoolVector<uint8_t> array_data = d["array_data"];
+ PoolVector<uint8_t> array_index_data;
if (d.has("array_index_data"))
array_index_data=d["array_index_data"];
@@ -151,12 +151,12 @@ bool Mesh::_set(const StringName& p_name, const Variant& p_value) {
if (d.has("index_count"))
index_count=d["index_count"];
- Vector< DVector<uint8_t> > morphs;
+ Vector< PoolVector<uint8_t> > morphs;
if (d.has("morph_data")) {
Array morph_data=d["morph_data"];
for(int i=0;i<morph_data.size();i++) {
- DVector<uint8_t> morph = morph_data[i];
+ PoolVector<uint8_t> morph = morph_data[i];
morphs.push_back(morph_data[i]);
}
}
@@ -201,7 +201,7 @@ bool Mesh::_get(const StringName& p_name,Variant &r_ret) const {
if (p_name=="morph_target/names") {
- DVector<String> sk;
+ PoolVector<String> sk;
for(int i=0;i<morph_targets.size();i++)
sk.push_back(morph_targets[i]);
r_ret=sk;
@@ -251,7 +251,7 @@ bool Mesh::_get(const StringName& p_name,Variant &r_ret) const {
}
d["skeleton_aabb"]=arr;
- Vector< DVector<uint8_t> > morph_data = VS::get_singleton()->mesh_surface_get_blend_shapes(mesh,idx);
+ Vector< PoolVector<uint8_t> > morph_data = VS::get_singleton()->mesh_surface_get_blend_shapes(mesh,idx);
Array md;
for(int i=0;i<morph_data.size();i++) {
@@ -306,7 +306,7 @@ void Mesh::_recompute_aabb() {
}
-void Mesh::add_surface(uint32_t p_format,PrimitiveType p_primitive,const DVector<uint8_t>& p_array,int p_vertex_count,const DVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<DVector<uint8_t> >& p_blend_shapes,const Vector<AABB>& p_bone_aabbs) {
+void Mesh::add_surface(uint32_t p_format,PrimitiveType p_primitive,const PoolVector<uint8_t>& p_array,int p_vertex_count,const PoolVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<PoolVector<uint8_t> >& p_blend_shapes,const Vector<AABB>& p_bone_aabbs) {
Surface s;
s.aabb=p_aabb;
@@ -330,10 +330,10 @@ void Mesh::add_surface_from_arrays(PrimitiveType p_primitive,const Array& p_arra
/* make aABB? */ {
- DVector<Vector3> vertices=p_arrays[ARRAY_VERTEX];
+ PoolVector<Vector3> vertices=p_arrays[ARRAY_VERTEX];
int len=vertices.size();
ERR_FAIL_COND(len==0);
- DVector<Vector3>::Read r=vertices.read();
+ PoolVector<Vector3>::Read r=vertices.read();
const Vector3 *vtx=r.ptr();
// check AABB
@@ -569,21 +569,21 @@ AABB Mesh::get_custom_aabb() const {
}
-DVector<Face3> Mesh::get_faces() const {
+PoolVector<Face3> Mesh::get_faces() const {
Ref<TriangleMesh> tm = generate_triangle_mesh();
if (tm.is_valid())
return tm->get_faces();
- return DVector<Face3>();
+ return PoolVector<Face3>();
/*
for (int i=0;i<surfaces.size();i++) {
if (VisualServer::get_singleton()->mesh_surface_get_primitive_type( mesh, i ) != VisualServer::PRIMITIVE_TRIANGLES )
continue;
- DVector<int> indices;
- DVector<Vector3> vertices;
+ PoolVector<int> indices;
+ PoolVector<Vector3> vertices;
vertices=VisualServer::get_singleton()->mesh_surface_get_array(mesh, i,VisualServer::ARRAY_VERTEX);
@@ -604,10 +604,10 @@ DVector<Face3> Mesh::get_faces() const {
if (len<=0)
continue;
- DVector<int>::Read indicesr = indices.read();
+ PoolVector<int>::Read indicesr = indices.read();
const int *indicesptr = indicesr.ptr();
- DVector<Vector3>::Read verticesr = vertices.read();
+ PoolVector<Vector3>::Read verticesr = vertices.read();
const Vector3 *verticesptr = verticesr.ptr();
int old_faces=faces.size();
@@ -615,7 +615,7 @@ DVector<Face3> Mesh::get_faces() const {
faces.resize(new_faces);
- DVector<Face3>::Write facesw = faces.write();
+ PoolVector<Face3>::Write facesw = faces.write();
Face3 *facesptr=facesw.ptr();
@@ -639,12 +639,12 @@ DVector<Face3> Mesh::get_faces() const {
Ref<Shape> Mesh::create_convex_shape() const {
- DVector<Vector3> vertices;
+ PoolVector<Vector3> vertices;
for(int i=0;i<get_surface_count();i++) {
Array a = surface_get_arrays(i);
- DVector<Vector3> v=a[ARRAY_VERTEX];
+ PoolVector<Vector3> v=a[ARRAY_VERTEX];
vertices.append_array(v);
}
@@ -656,11 +656,11 @@ Ref<Shape> Mesh::create_convex_shape() const {
Ref<Shape> Mesh::create_trimesh_shape() const {
- DVector<Face3> faces = get_faces();
+ PoolVector<Face3> faces = get_faces();
if (faces.size()==0)
return Ref<Shape>();
- DVector<Vector3> face_points;
+ PoolVector<Vector3> face_points;
face_points.resize( faces.size()*3 );
for (int i=0;i<face_points.size();i++) {
@@ -681,9 +681,9 @@ void Mesh::center_geometry() {
for(int i=0;i<get_surface_count();i++) {
- DVector<Vector3> geom = surface_get_array(i,ARRAY_VERTEX);
+ PoolVector<Vector3> geom = surface_get_array(i,ARRAY_VERTEX);
int gc =geom.size();
- DVector<Vector3>::Write w = geom.write();
+ PoolVector<Vector3>::Write w = geom.write();
surfaces[i].aabb.pos-=ofs;
for(int i=0;i<gc;i++) {
@@ -691,7 +691,7 @@ void Mesh::center_geometry() {
w[i]-=ofs;
}
- w = DVector<Vector3>::Write();
+ w = PoolVector<Vector3>::Write();
surface_set_array(i,ARRAY_VERTEX,geom);
@@ -752,9 +752,9 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const {
if (facecount==0 || (facecount%3)!=0)
return triangle_mesh;
- DVector<Vector3> faces;
+ PoolVector<Vector3> faces;
faces.resize(facecount);
- DVector<Vector3>::Write facesw=faces.write();
+ PoolVector<Vector3>::Write facesw=faces.write();
int widx=0;
@@ -766,14 +766,14 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const {
Array a = surface_get_arrays(i);
int vc = surface_get_array_len(i);
- DVector<Vector3> vertices = a[ARRAY_VERTEX];
- DVector<Vector3>::Read vr=vertices.read();
+ PoolVector<Vector3> vertices = a[ARRAY_VERTEX];
+ PoolVector<Vector3>::Read vr=vertices.read();
if (surface_get_format(i)&ARRAY_FORMAT_INDEX) {
int ic=surface_get_array_index_len(i);
- DVector<int> indices = a[ARRAY_INDEX];
- DVector<int>::Read ir = indices.read();
+ PoolVector<int> indices = a[ARRAY_INDEX];
+ PoolVector<int>::Read ir = indices.read();
for(int i=0;i<ic;i++) {
int index = ir[i];
@@ -788,7 +788,7 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const {
}
- facesw=DVector<Vector3>::Write();
+ facesw=PoolVector<Vector3>::Write();
triangle_mesh = Ref<TriangleMesh>( memnew( TriangleMesh ));
@@ -814,7 +814,7 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
if (i==0) {
arrays=a;
- DVector<Vector3> v=a[ARRAY_VERTEX];
+ PoolVector<Vector3> v=a[ARRAY_VERTEX];
index_accum+=v.size();
} else {
@@ -831,8 +831,8 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
case ARRAY_VERTEX:
case ARRAY_NORMAL: {
- DVector<Vector3> dst = arrays[j];
- DVector<Vector3> src = a[j];
+ PoolVector<Vector3> dst = arrays[j];
+ PoolVector<Vector3> src = a[j];
if (j==ARRAY_VERTEX)
vcount=src.size();
if (dst.size()==0 || src.size()==0) {
@@ -846,8 +846,8 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
case ARRAY_BONES:
case ARRAY_WEIGHTS: {
- DVector<real_t> dst = arrays[j];
- DVector<real_t> src = a[j];
+ PoolVector<real_t> dst = arrays[j];
+ PoolVector<real_t> src = a[j];
if (dst.size()==0 || src.size()==0) {
arrays[j]=Variant();
continue;
@@ -857,8 +857,8 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
} break;
case ARRAY_COLOR: {
- DVector<Color> dst = arrays[j];
- DVector<Color> src = a[j];
+ PoolVector<Color> dst = arrays[j];
+ PoolVector<Color> src = a[j];
if (dst.size()==0 || src.size()==0) {
arrays[j]=Variant();
continue;
@@ -869,8 +869,8 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
} break;
case ARRAY_TEX_UV:
case ARRAY_TEX_UV2: {
- DVector<Vector2> dst = arrays[j];
- DVector<Vector2> src = a[j];
+ PoolVector<Vector2> dst = arrays[j];
+ PoolVector<Vector2> src = a[j];
if (dst.size()==0 || src.size()==0) {
arrays[j]=Variant();
continue;
@@ -880,15 +880,15 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
} break;
case ARRAY_INDEX: {
- DVector<int> dst = arrays[j];
- DVector<int> src = a[j];
+ PoolVector<int> dst = arrays[j];
+ PoolVector<int> src = a[j];
if (dst.size()==0 || src.size()==0) {
arrays[j]=Variant();
continue;
}
{
int ss = src.size();
- DVector<int>::Write w = src.write();
+ PoolVector<int>::Write w = src.write();
for(int k=0;k<ss;k++) {
w[k]+=index_accum;
}
@@ -906,13 +906,13 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
}
{
- DVector<int>::Write ir;
- DVector<int> indices =arrays[ARRAY_INDEX];
+ PoolVector<int>::Write ir;
+ PoolVector<int> indices =arrays[ARRAY_INDEX];
bool has_indices=false;
- DVector<Vector3> vertices =arrays[ARRAY_VERTEX];
+ PoolVector<Vector3> vertices =arrays[ARRAY_VERTEX];
int vc = vertices.size();
ERR_FAIL_COND_V(!vc,Ref<Mesh>());
- DVector<Vector3>::Write r=vertices.write();
+ PoolVector<Vector3>::Write r=vertices.write();
if (indices.size()) {
@@ -977,14 +977,14 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
r[i]=t;
}
- r = DVector<Vector3>::Write();
+ r = PoolVector<Vector3>::Write();
arrays[ARRAY_VERTEX]=vertices;
if (!has_indices) {
- DVector<int> new_indices;
+ PoolVector<int> new_indices;
new_indices.resize(vertices.size());
- DVector<int>::Write iw = new_indices.write();
+ PoolVector<int>::Write iw = new_indices.write();
for(int j=0;j<vc2;j+=3) {
@@ -993,7 +993,7 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
iw[j+2]=j+1;
}
- iw=DVector<int>::Write();
+ iw=PoolVector<int>::Write();
arrays[ARRAY_INDEX]=new_indices;
} else {
@@ -1002,7 +1002,7 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const {
SWAP(ir[j+1],ir[j+2]);
}
- ir=DVector<int>::Write();
+ ir=PoolVector<int>::Write();
arrays[ARRAY_INDEX]=indices;
}
diff --git a/scene/resources/mesh.h b/scene/resources/mesh.h
index 9be90b6436..f92db837ea 100644
--- a/scene/resources/mesh.h
+++ b/scene/resources/mesh.h
@@ -139,7 +139,7 @@ protected:
public:
void add_surface_from_arrays(PrimitiveType p_primitive, const Array& p_arrays, const Array& p_blend_shapes=Array(), uint32_t p_flags=ARRAY_COMPRESS_DEFAULT);
- void add_surface(uint32_t p_format,PrimitiveType p_primitive,const DVector<uint8_t>& p_array,int p_vertex_count,const DVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<DVector<uint8_t> >& p_blend_shapes=Vector<DVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>());
+ void add_surface(uint32_t p_format,PrimitiveType p_primitive,const PoolVector<uint8_t>& p_array,int p_vertex_count,const PoolVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<PoolVector<uint8_t> >& p_blend_shapes=Vector<PoolVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>());
Array surface_get_arrays(int p_surface) const;
virtual Array surface_get_morph_arrays(int p_surface) const;
@@ -186,7 +186,7 @@ public:
void center_geometry();
void regen_normalmaps();
- DVector<Face3> get_faces() const;
+ PoolVector<Face3> get_faces() const;
Ref<TriangleMesh> generate_triangle_mesh() const;
Mesh();
diff --git a/scene/resources/mesh_data_tool.cpp b/scene/resources/mesh_data_tool.cpp
index 4a753e6c09..ec699ee8e3 100644
--- a/scene/resources/mesh_data_tool.cpp
+++ b/scene/resources/mesh_data_tool.cpp
@@ -51,7 +51,7 @@ Error MeshDataTool::create_from_surface(const Ref<Mesh>& p_mesh,int p_surface) {
Array arrays = p_mesh->surface_get_arrays(p_surface);
ERR_FAIL_COND_V( arrays.empty(), ERR_INVALID_PARAMETER );
- DVector<Vector3> varray = arrays[Mesh::ARRAY_VERTEX];
+ PoolVector<Vector3> varray = arrays[Mesh::ARRAY_VERTEX];
int vcount = varray.size();
ERR_FAIL_COND_V( vcount == 0, ERR_INVALID_PARAMETER);
@@ -60,34 +60,34 @@ Error MeshDataTool::create_from_surface(const Ref<Mesh>& p_mesh,int p_surface) {
format = p_mesh->surface_get_format(p_surface);
material=p_mesh->surface_get_material(p_surface);
- DVector<Vector3>::Read vr = varray.read();
+ PoolVector<Vector3>::Read vr = varray.read();
- DVector<Vector3>::Read nr;
+ PoolVector<Vector3>::Read nr;
if (arrays[Mesh::ARRAY_NORMAL].get_type()!=Variant::NIL)
- nr = arrays[Mesh::ARRAY_NORMAL].operator DVector<Vector3>().read();
+ nr = arrays[Mesh::ARRAY_NORMAL].operator PoolVector<Vector3>().read();
- DVector<real_t>::Read ta;
+ PoolVector<real_t>::Read ta;
if (arrays[Mesh::ARRAY_TANGENT].get_type()!=Variant::NIL)
- ta = arrays[Mesh::ARRAY_TANGENT].operator DVector<real_t>().read();
+ ta = arrays[Mesh::ARRAY_TANGENT].operator PoolVector<real_t>().read();
- DVector<Vector2>::Read uv;
+ PoolVector<Vector2>::Read uv;
if (arrays[Mesh::ARRAY_TEX_UV].get_type()!=Variant::NIL)
- uv = arrays[Mesh::ARRAY_TEX_UV].operator DVector<Vector2>().read();
- DVector<Vector2>::Read uv2;
+ uv = arrays[Mesh::ARRAY_TEX_UV].operator PoolVector<Vector2>().read();
+ PoolVector<Vector2>::Read uv2;
if (arrays[Mesh::ARRAY_TEX_UV2].get_type()!=Variant::NIL)
- uv2 = arrays[Mesh::ARRAY_TEX_UV2].operator DVector<Vector2>().read();
+ uv2 = arrays[Mesh::ARRAY_TEX_UV2].operator PoolVector<Vector2>().read();
- DVector<Color>::Read col;
+ PoolVector<Color>::Read col;
if (arrays[Mesh::ARRAY_COLOR].get_type()!=Variant::NIL)
- col = arrays[Mesh::ARRAY_COLOR].operator DVector<Color>().read();
+ col = arrays[Mesh::ARRAY_COLOR].operator PoolVector<Color>().read();
- DVector<real_t>::Read bo;
+ PoolVector<real_t>::Read bo;
if (arrays[Mesh::ARRAY_BONES].get_type()!=Variant::NIL)
- bo = arrays[Mesh::ARRAY_BONES].operator DVector<real_t>().read();
+ bo = arrays[Mesh::ARRAY_BONES].operator PoolVector<real_t>().read();
- DVector<real_t>::Read we;
+ PoolVector<real_t>::Read we;
if (arrays[Mesh::ARRAY_WEIGHTS].get_type()!=Variant::NIL)
- we = arrays[Mesh::ARRAY_WEIGHTS].operator DVector<real_t>().read();
+ we = arrays[Mesh::ARRAY_WEIGHTS].operator PoolVector<real_t>().read();
vertices.resize(vcount);
@@ -129,7 +129,7 @@ Error MeshDataTool::create_from_surface(const Ref<Mesh>& p_mesh,int p_surface) {
}
- DVector<int> indices;
+ PoolVector<int> indices;
if (arrays[Mesh::ARRAY_INDEX].get_type()!=Variant::NIL) {
@@ -137,14 +137,14 @@ Error MeshDataTool::create_from_surface(const Ref<Mesh>& p_mesh,int p_surface) {
} else {
//make code simpler
indices.resize(vcount);
- DVector<int>::Write iw=indices.write();
+ PoolVector<int>::Write iw=indices.write();
for(int i=0;i<vcount;i++)
iw[i]=i;
}
int icount=indices.size();
- DVector<int>::Read r = indices.read();
+ PoolVector<int>::Read r = indices.read();
Map<Point2i,int> edge_indices;
@@ -199,59 +199,59 @@ Error MeshDataTool::commit_to_surface(const Ref<Mesh>& p_mesh) {
int vcount=vertices.size();
- DVector<Vector3> v;
- DVector<Vector3> n;
- DVector<real_t> t;
- DVector<Vector2> u;
- DVector<Vector2> u2;
- DVector<Color> c;
- DVector<real_t> b;
- DVector<real_t> w;
- DVector<int> in;
+ PoolVector<Vector3> v;
+ PoolVector<Vector3> n;
+ PoolVector<real_t> t;
+ PoolVector<Vector2> u;
+ PoolVector<Vector2> u2;
+ PoolVector<Color> c;
+ PoolVector<real_t> b;
+ PoolVector<real_t> w;
+ PoolVector<int> in;
{
v.resize(vcount);
- DVector<Vector3>::Write vr=v.write();
+ PoolVector<Vector3>::Write vr=v.write();
- DVector<Vector3>::Write nr;
+ PoolVector<Vector3>::Write nr;
if (format&Mesh::ARRAY_FORMAT_NORMAL) {
n.resize(vcount);
nr = n.write();
}
- DVector<real_t>::Write ta;
+ PoolVector<real_t>::Write ta;
if (format&Mesh::ARRAY_FORMAT_TANGENT) {
t.resize(vcount*4);
ta = t.write();
}
- DVector<Vector2>::Write uv;
+ PoolVector<Vector2>::Write uv;
if (format&Mesh::ARRAY_FORMAT_TEX_UV) {
u.resize(vcount);
uv = u.write();
}
- DVector<Vector2>::Write uv2;
+ PoolVector<Vector2>::Write uv2;
if (format&Mesh::ARRAY_FORMAT_TEX_UV2) {
u2.resize(vcount);
uv2 = u2.write();
}
- DVector<Color>::Write col;
+ PoolVector<Color>::Write col;
if (format&Mesh::ARRAY_FORMAT_COLOR) {
c.resize(vcount);
col = c.write();
}
- DVector<real_t>::Write bo;
+ PoolVector<real_t>::Write bo;
if (format&Mesh::ARRAY_FORMAT_BONES) {
b.resize(vcount*4);
bo = b.write();
}
- DVector<real_t>::Write we;
+ PoolVector<real_t>::Write we;
if (format&Mesh::ARRAY_FORMAT_WEIGHTS) {
w.resize(vcount*4);
we = w.write();
@@ -299,7 +299,7 @@ Error MeshDataTool::commit_to_surface(const Ref<Mesh>& p_mesh) {
int fc = faces.size();
in.resize(fc*3);
- DVector<int>::Write iw=in.write();
+ PoolVector<int>::Write iw=in.write();
for(int i=0;i<fc;i++) {
iw[i*3+0]=faces[i].v[0];
diff --git a/scene/resources/multimesh.cpp b/scene/resources/multimesh.cpp
index 802f58e8ca..143870c920 100644
--- a/scene/resources/multimesh.cpp
+++ b/scene/resources/multimesh.cpp
@@ -31,17 +31,17 @@
-void MultiMesh::_set_transform_array(const DVector<Vector3>& p_array) {
+void MultiMesh::_set_transform_array(const PoolVector<Vector3>& p_array) {
int instance_count = get_instance_count();
- DVector<Vector3> xforms = p_array;
+ PoolVector<Vector3> xforms = p_array;
int len=xforms.size();
ERR_FAIL_COND((len/4) != instance_count);
if (len==0)
return;
- DVector<Vector3>::Read r = xforms.read();
+ PoolVector<Vector3>::Read r = xforms.read();
for(int i=0;i<len/4;i++) {
@@ -56,17 +56,17 @@ void MultiMesh::_set_transform_array(const DVector<Vector3>& p_array) {
}
-DVector<Vector3> MultiMesh::_get_transform_array() const {
+PoolVector<Vector3> MultiMesh::_get_transform_array() const {
int instance_count = get_instance_count();
if (instance_count==0)
- return DVector<Vector3>();
+ return PoolVector<Vector3>();
- DVector<Vector3> xforms;
+ PoolVector<Vector3> xforms;
xforms.resize(instance_count*4);
- DVector<Vector3>::Write w = xforms.write();
+ PoolVector<Vector3>::Write w = xforms.write();
for(int i=0;i<instance_count;i++) {
@@ -82,17 +82,17 @@ DVector<Vector3> MultiMesh::_get_transform_array() const {
}
-void MultiMesh::_set_color_array(const DVector<Color>& p_array) {
+void MultiMesh::_set_color_array(const PoolVector<Color>& p_array) {
int instance_count = get_instance_count();
- DVector<Color> colors = p_array;
+ PoolVector<Color> colors = p_array;
int len=colors.size();
ERR_FAIL_COND(len != instance_count);
if (len==0)
return;
- DVector<Color>::Read r = colors.read();
+ PoolVector<Color>::Read r = colors.read();
for(int i=0;i<len;i++) {
@@ -101,14 +101,14 @@ void MultiMesh::_set_color_array(const DVector<Color>& p_array) {
}
-DVector<Color> MultiMesh::_get_color_array() const {
+PoolVector<Color> MultiMesh::_get_color_array() const {
int instance_count = get_instance_count();
if (instance_count==0)
- return DVector<Color>();
+ return PoolVector<Color>();
- DVector<Color> colors;
+ PoolVector<Color> colors;
colors.resize(instance_count);
for(int i=0;i<instance_count;i++) {
diff --git a/scene/resources/multimesh.h b/scene/resources/multimesh.h
index ab2ef59214..3ba109a087 100644
--- a/scene/resources/multimesh.h
+++ b/scene/resources/multimesh.h
@@ -59,11 +59,11 @@ protected:
static void _bind_methods();
- void _set_transform_array(const DVector<Vector3>& p_array);
- DVector<Vector3> _get_transform_array() const;
+ void _set_transform_array(const PoolVector<Vector3>& p_array);
+ PoolVector<Vector3> _get_transform_array() const;
- void _set_color_array(const DVector<Color>& p_array);
- DVector<Color> _get_color_array() const;
+ void _set_color_array(const PoolVector<Color>& p_array);
+ PoolVector<Color> _get_color_array() const;
public:
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index 7d86513c51..b0161f6898 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -42,7 +42,7 @@ bool SceneState::can_instance() const {
}
-Node *SceneState::instance(bool p_gen_edit_state) const {
+Node *SceneState::instance(GenEditState p_edit_state) const {
// nodes where instancing failed (because something is missing)
List<Node*> stray_instances;
@@ -76,7 +76,9 @@ Node *SceneState::instance(bool p_gen_edit_state) const {
Node **ret_nodes=(Node**)alloca( sizeof(Node*)*nc );
- bool gen_node_path_cache=p_gen_edit_state && node_path_cache.empty();
+ bool gen_node_path_cache=p_edit_state!=GEN_EDIT_STATE_DISABLED && node_path_cache.empty();
+
+ Map<Ref<Resource>,Ref<Resource> > resources_local_to_scene;
for(int i=0;i<nc;i++) {
@@ -105,9 +107,9 @@ Node *SceneState::instance(bool p_gen_edit_state) const {
//print_line("scene inherit");
Ref<PackedScene> sdata = props[ base_scene_idx ];
ERR_FAIL_COND_V( !sdata.is_valid(), NULL);
- node = sdata->instance(p_gen_edit_state);
+ node = sdata->instance(p_edit_state==GEN_EDIT_STATE_DISABLED ? PackedScene::GEN_EDIT_STATE_DISABLED : PackedScene::GEN_EDIT_STATE_INSTANCE); //only main gets main edit state
ERR_FAIL_COND_V(!node,NULL);
- if (p_gen_edit_state) {
+ if (p_edit_state!=GEN_EDIT_STATE_DISABLED) {
node->set_scene_inherited_state(sdata->get_state());
}
@@ -121,7 +123,7 @@ Node *SceneState::instance(bool p_gen_edit_state) const {
Ref<PackedScene> sdata = ResourceLoader::load(path,"PackedScene");
ERR_FAIL_COND_V( !sdata.is_valid(), NULL);
- node = sdata->instance(p_gen_edit_state);
+ node = sdata->instance(p_edit_state==GEN_EDIT_STATE_DISABLED ? PackedScene::GEN_EDIT_STATE_DISABLED : PackedScene::GEN_EDIT_STATE_INSTANCE);
ERR_FAIL_COND_V(!node,NULL);
} else {
InstancePlaceholder *ip = memnew( InstancePlaceholder );
@@ -132,7 +134,7 @@ Node *SceneState::instance(bool p_gen_edit_state) const {
} else {
Ref<PackedScene> sdata = props[ n.instance&FLAG_MASK ];
ERR_FAIL_COND_V( !sdata.is_valid(), NULL);
- node = sdata->instance(p_gen_edit_state);
+ node = sdata->instance(p_edit_state==GEN_EDIT_STATE_DISABLED ? PackedScene::GEN_EDIT_STATE_DISABLED : PackedScene::GEN_EDIT_STATE_INSTANCE);
ERR_FAIL_COND_V(!node,NULL);
}
@@ -166,8 +168,8 @@ Node *SceneState::instance(bool p_gen_edit_state) const {
} else if (ret_nodes[n.parent]->cast_to<Node2D>()) {
obj = memnew( Node2D );
}
-
}
+
if (!obj) {
obj = memnew( Node );
}
@@ -212,7 +214,43 @@ Node *SceneState::instance(bool p_gen_edit_state) const {
}
} else {
- node->set(snames[ nprops[j].name ],props[ nprops[j].value ],&valid);
+ Variant value = props[ nprops[j].value ];
+
+ if (value.get_type()==Variant::OBJECT) {
+ //handle resources that are local to scene by duplicating them if needed
+ Ref<Resource> res = value;
+ if (res.is_valid()) {
+ if (res->is_local_to_scene()) {
+
+ Map<Ref<Resource>,Ref<Resource> >::Element *E=resources_local_to_scene.find(res);
+
+ if (E) {
+ value=E->get();
+ } else {
+
+ Node *base = i==0?node:ret_nodes[0];
+
+ if (p_edit_state==GEN_EDIT_STATE_MAIN) {
+
+ res->local_scene=base;
+ resources_local_to_scene[res]=res;
+
+ } else {
+ Node *base = i==0?node:ret_nodes[0];
+ Ref<Resource> local_dupe = res->duplicate_for_local_scene(base,resources_local_to_scene);
+ resources_local_to_scene[res]=local_dupe;
+ res=local_dupe;
+ value=local_dupe;
+ }
+
+ res->setup_local_to_scene();
+
+ }
+ //must make a copy, because this res is local to scene
+ }
+ }
+ }
+ node->set(snames[ nprops[j].name ],value,&valid);
}
}
}
@@ -1139,12 +1177,12 @@ void SceneState::set_bundled_scene(const Dictionary& d) {
ERR_FAIL();
}
- DVector<String> snames = d["names"];
+ PoolVector<String> snames = d["names"];
if (snames.size()) {
int namecount = snames.size();
names.resize(namecount);
- DVector<String>::Read r =snames.read();
+ PoolVector<String>::Read r =snames.read();
for(int i=0;i<names.size();i++)
names[i]=r[i];
}
@@ -1166,8 +1204,8 @@ void SceneState::set_bundled_scene(const Dictionary& d) {
nodes.resize(d["node_count"]);
int nc=nodes.size();
if (nc) {
- DVector<int> snodes = d["nodes"];
- DVector<int>::Read r = snodes.read();
+ PoolVector<int> snodes = d["nodes"];
+ PoolVector<int>::Read r = snodes.read();
int idx=0;
for(int i=0;i<nc;i++) {
NodeData &nd = nodes[i];
@@ -1196,8 +1234,8 @@ void SceneState::set_bundled_scene(const Dictionary& d) {
if (cc) {
- DVector<int> sconns = d["conns"];
- DVector<int>::Read r = sconns.read();
+ PoolVector<int> sconns = d["conns"];
+ PoolVector<int>::Read r = sconns.read();
int idx=0;
for(int i=0;i<cc;i++) {
ConnectionData &cd = connections[i];
@@ -1245,12 +1283,12 @@ void SceneState::set_bundled_scene(const Dictionary& d) {
Dictionary SceneState::get_bundled_scene() const {
- DVector<String> rnames;
+ PoolVector<String> rnames;
rnames.resize(names.size());
if (names.size()) {
- DVector<String>::Write r=rnames.write();
+ PoolVector<String>::Write r=rnames.write();
for(int i=0;i<names.size();i++)
r[i]=names[i];
@@ -1659,10 +1697,10 @@ void SceneState::add_editable_instance(const NodePath& p_path){
editable_instances.push_back(p_path);
}
-DVector<String> SceneState::_get_node_groups(int p_idx) const {
+PoolVector<String> SceneState::_get_node_groups(int p_idx) const {
Vector<StringName> groups = get_node_groups(p_idx);
- DVector<String> ret;
+ PoolVector<String> ret;
for(int i=0;i<groups.size();i++)
ret.push_back(groups[i]);
@@ -1693,6 +1731,10 @@ void SceneState::_bind_methods() {
ClassDB::bind_method(_MD("get_connection_method","idx"),&SceneState::get_connection_method);
ClassDB::bind_method(_MD("get_connection_flags","idx"),&SceneState::get_connection_flags);
ClassDB::bind_method(_MD("get_connection_binds","idx"),&SceneState::get_connection_binds);
+
+ BIND_CONSTANT( GEN_EDIT_STATE_DISABLED );
+ BIND_CONSTANT( GEN_EDIT_STATE_INSTANCE );
+ BIND_CONSTANT( GEN_EDIT_STATE_MAIN );
}
SceneState::SceneState() {
@@ -1732,7 +1774,7 @@ bool PackedScene::can_instance() const {
return state->can_instance();
}
-Node *PackedScene::instance(bool p_gen_edit_state) const {
+Node *PackedScene::instance(GenEditState p_edit_state) const {
#ifndef TOOLS_ENABLED
if (p_gen_edit_state) {
@@ -1741,11 +1783,11 @@ Node *PackedScene::instance(bool p_gen_edit_state) const {
}
#endif
- Node *s = state->instance(p_gen_edit_state);
+ Node *s = state->instance((SceneState::GenEditState)p_edit_state);
if (!s)
return NULL;
- if (p_gen_edit_state) {
+ if (p_edit_state!=GEN_EDIT_STATE_DISABLED) {
s->set_scene_instance_state(state);
}
@@ -1792,7 +1834,7 @@ void PackedScene::set_path(const String& p_path,bool p_take_over) {
void PackedScene::_bind_methods() {
ClassDB::bind_method(_MD("pack","path:Node"),&PackedScene::pack);
- ClassDB::bind_method(_MD("instance:Node","gen_edit_state"),&PackedScene::instance,DEFVAL(false));
+ ClassDB::bind_method(_MD("instance:Node","edit_state"),&PackedScene::instance,DEFVAL(false));
ClassDB::bind_method(_MD("can_instance"),&PackedScene::can_instance);
ClassDB::bind_method(_MD("_set_bundled_scene"),&PackedScene::_set_bundled_scene);
ClassDB::bind_method(_MD("_get_bundled_scene"),&PackedScene::_get_bundled_scene);
@@ -1800,6 +1842,10 @@ void PackedScene::_bind_methods() {
ADD_PROPERTY( PropertyInfo(Variant::DICTIONARY,"_bundled"),_SCS("_set_bundled_scene"),_SCS("_get_bundled_scene"));
+ BIND_CONSTANT( GEN_EDIT_STATE_DISABLED );
+ BIND_CONSTANT( GEN_EDIT_STATE_INSTANCE );
+ BIND_CONSTANT( GEN_EDIT_STATE_MAIN );
+
}
PackedScene::PackedScene() {
diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h
index 2eda624dc3..381b356b1e 100644
--- a/scene/resources/packed_scene.h
+++ b/scene/resources/packed_scene.h
@@ -102,7 +102,7 @@ class SceneState : public Reference {
static bool disable_placeholders;
- DVector<String> _get_node_groups(int p_idx) const;
+ PoolVector<String> _get_node_groups(int p_idx) const;
protected:
@@ -117,6 +117,12 @@ public:
FLAG_MASK=(1<<24)-1,
};
+ enum GenEditState {
+ GEN_EDIT_STATE_DISABLED,
+ GEN_EDIT_STATE_INSTANCE,
+ GEN_EDIT_STATE_MAIN,
+ };
+
static void set_disable_placeholders(bool p_disable);
int find_node_by_path(const NodePath& p_node) const;
@@ -136,7 +142,7 @@ public:
void clear();
bool can_instance() const;
- Node *instance(bool p_gen_edit_state=false) const;
+ Node *instance(GenEditState p_edit_state) const;
//unbuild API
@@ -187,6 +193,8 @@ public:
SceneState();
};
+VARIANT_ENUM_CAST(SceneState::GenEditState)
+
class PackedScene : public Resource {
GDCLASS(PackedScene, Resource );
@@ -203,13 +211,18 @@ protected:
static void _bind_methods();
public:
+ enum GenEditState {
+ GEN_EDIT_STATE_DISABLED,
+ GEN_EDIT_STATE_INSTANCE,
+ GEN_EDIT_STATE_MAIN,
+ };
Error pack(Node *p_scene);
void clear();
bool can_instance() const;
- Node *instance(bool p_gen_edit_state=false) const;
+ Node *instance(GenEditState p_edit_state=GEN_EDIT_STATE_DISABLED) const;
void recreate_state();
void replace_state(Ref<SceneState> p_by);
@@ -225,4 +238,6 @@ public:
};
+VARIANT_ENUM_CAST(PackedScene::GenEditState)
+
#endif // SCENE_PRELOADER_H
diff --git a/scene/resources/polygon_path_finder.cpp b/scene/resources/polygon_path_finder.cpp
index 3dc3e6005a..2156487407 100644
--- a/scene/resources/polygon_path_finder.cpp
+++ b/scene/resources/polygon_path_finder.cpp
@@ -448,7 +448,7 @@ void PolygonPathFinder::_set_data(const Dictionary& p_data) {
ERR_FAIL_COND(!p_data.has("segments"));
ERR_FAIL_COND(!p_data.has("bounds"));
- DVector<Vector2> p=p_data["points"];
+ PoolVector<Vector2> p=p_data["points"];
Array c=p_data["connections"];
ERR_FAIL_COND(c.size()!=p.size());
@@ -458,11 +458,11 @@ void PolygonPathFinder::_set_data(const Dictionary& p_data) {
int pc = p.size();
points.resize(pc+2);
- DVector<Vector2>::Read pr=p.read();
+ PoolVector<Vector2>::Read pr=p.read();
for(int i=0;i<pc;i++) {
points[i].pos=pr[i];
- DVector<int> con=c[i];
- DVector<int>::Read cr=con.read();
+ PoolVector<int> con=c[i];
+ PoolVector<int>::Read cr=con.read();
int cc=con.size();
for(int j=0;j<cc;j++) {
@@ -473,19 +473,19 @@ void PolygonPathFinder::_set_data(const Dictionary& p_data) {
if (p_data.has("penalties")) {
- DVector<float> penalties=p_data["penalties"];
+ PoolVector<float> penalties=p_data["penalties"];
if (penalties.size()==pc) {
- DVector<float>::Read pr = penalties.read();
+ PoolVector<float>::Read pr = penalties.read();
for(int i=0;i<pc;i++) {
points[i].penalty=pr[i];
}
}
}
- DVector<int> segs=p_data["segments"];
+ PoolVector<int> segs=p_data["segments"];
int sc=segs.size();
ERR_FAIL_COND(sc&1);
- DVector<int>::Read sr = segs.read();
+ PoolVector<int>::Read sr = segs.read();
for(int i=0;i<sc;i+=2) {
Edge e(sr[i],sr[i+1]);
@@ -498,25 +498,25 @@ void PolygonPathFinder::_set_data(const Dictionary& p_data) {
Dictionary PolygonPathFinder::_get_data() const{
Dictionary d;
- DVector<Vector2> p;
- DVector<int> ind;
+ PoolVector<Vector2> p;
+ PoolVector<int> ind;
Array connections;
p.resize(points.size()-2);
connections.resize(points.size()-2);
ind.resize(edges.size()*2);
- DVector<float> penalties;
+ PoolVector<float> penalties;
penalties.resize(points.size()-2);
{
- DVector<Vector2>::Write wp=p.write();
- DVector<float>::Write pw=penalties.write();
+ PoolVector<Vector2>::Write wp=p.write();
+ PoolVector<float>::Write pw=penalties.write();
for(int i=0;i<points.size()-2;i++) {
wp[i]=points[i].pos;
pw[i]=points[i].penalty;
- DVector<int> c;
+ PoolVector<int> c;
c.resize(points[i].connections.size());
{
- DVector<int>::Write cw=c.write();
+ PoolVector<int>::Write cw=c.write();
int idx=0;
for (Set<int>::Element *E=points[i].connections.front();E;E=E->next()) {
cw[idx++]=E->get();
@@ -527,7 +527,7 @@ Dictionary PolygonPathFinder::_get_data() const{
}
{
- DVector<int>::Write iw=ind.write();
+ PoolVector<int>::Write iw=ind.write();
int idx=0;
for (Set<Edge>::Element *E=edges.front();E;E=E->next()) {
iw[idx++]=E->get().points[0];
diff --git a/scene/resources/room.cpp b/scene/resources/room.cpp
index c4d11b94d1..88648272be 100644
--- a/scene/resources/room.cpp
+++ b/scene/resources/room.cpp
@@ -37,12 +37,12 @@ RID RoomBounds::get_rid() const {
}
-void RoomBounds::set_geometry_hint(const DVector<Face3>& p_geometry_hint) {
+void RoomBounds::set_geometry_hint(const PoolVector<Face3>& p_geometry_hint) {
geometry_hint=p_geometry_hint;
}
-DVector<Face3> RoomBounds::get_geometry_hint() const {
+PoolVector<Face3> RoomBounds::get_geometry_hint() const {
return geometry_hint;
}
diff --git a/scene/resources/room.h b/scene/resources/room.h
index 6a8deac8b3..84d68e5718 100644
--- a/scene/resources/room.h
+++ b/scene/resources/room.h
@@ -41,7 +41,7 @@ class RoomBounds : public Resource {
RES_BASE_EXTENSION("room");
RID area;
- DVector<Face3> geometry_hint;
+ PoolVector<Face3> geometry_hint;
protected:
@@ -53,8 +53,8 @@ public:
virtual RID get_rid() const;
- void set_geometry_hint(const DVector<Face3>& geometry_hint);
- DVector<Face3> get_geometry_hint() const;
+ void set_geometry_hint(const PoolVector<Face3>& geometry_hint);
+ PoolVector<Face3> get_geometry_hint() const;
RoomBounds();
~RoomBounds();
diff --git a/scene/resources/sample.cpp b/scene/resources/sample.cpp
index 8ea02ac943..e07e4d3767 100644
--- a/scene/resources/sample.cpp
+++ b/scene/resources/sample.cpp
@@ -119,18 +119,18 @@ int Sample::get_length() const {
return length;
}
-void Sample::set_data(const DVector<uint8_t>& p_buffer) {
+void Sample::set_data(const PoolVector<uint8_t>& p_buffer) {
if (sample.is_valid())
AudioServer::get_singleton()->sample_set_data(sample,p_buffer);
}
-DVector<uint8_t> Sample::get_data() const {
+PoolVector<uint8_t> Sample::get_data() const {
if (sample.is_valid())
return AudioServer::get_singleton()->sample_get_data(sample);
- return DVector<uint8_t>();
+ return PoolVector<uint8_t>();
}
diff --git a/scene/resources/sample.h b/scene/resources/sample.h
index c011f63144..be2cf67954 100644
--- a/scene/resources/sample.h
+++ b/scene/resources/sample.h
@@ -82,8 +82,8 @@ public:
bool is_stereo() const;
int get_length() const;
- void set_data(const DVector<uint8_t>& p_buffer);
- DVector<uint8_t> get_data() const;
+ void set_data(const PoolVector<uint8_t>& p_buffer);
+ PoolVector<uint8_t> get_data() const;
void set_mix_rate(int p_rate);
int get_mix_rate() const;
diff --git a/scene/resources/shader_graph.cpp b/scene/resources/shader_graph.cpp
index 0c31e1406f..37b019e369 100644
--- a/scene/resources/shader_graph.cpp
+++ b/scene/resources/shader_graph.cpp
@@ -554,8 +554,8 @@ void ShaderGraph::node_add(ShaderType p_type, NodeType p_node_type,int p_id) {
case NODE_XFORM_TO_VEC: {} break; // 3 scalar input: {} break; 1 vec3 output
case NODE_SCALAR_INTERP: {} break; // scalar interpolation (with optional curve)
case NODE_VEC_INTERP: {} break; // vec3 interpolation (with optional curve)
- case NODE_COLOR_RAMP: { node.param1=DVector<Color>(); node.param2=DVector<real_t>();} break; // vec3 interpolation (with optional curve)
- case NODE_CURVE_MAP: { node.param1=DVector<Vector2>();} break; // vec3 interpolation (with optional curve)
+ case NODE_COLOR_RAMP: { node.param1=PoolVector<Color>(); node.param2=PoolVector<real_t>();} break; // vec3 interpolation (with optional curve)
+ case NODE_CURVE_MAP: { node.param1=PoolVector<Vector2>();} break; // vec3 interpolation (with optional curve)
case NODE_SCALAR_INPUT: {node.param1=_find_unique_name("Scalar"); node.param2=0;} break; // scalar uniform (assignable in material)
case NODE_VEC_INPUT: {node.param1=_find_unique_name("Vec3");node.param2=Vector3();} break; // vec3 uniform (assignable in material)
case NODE_RGB_INPUT: {node.param1=_find_unique_name("Color");node.param2=Color();} break; // color uniform (assignable in material)
@@ -1082,7 +1082,7 @@ ShaderGraph::VecFunc ShaderGraph::vec_func_node_get_function(ShaderType p_type,
return VecFunc(func);
}
-void ShaderGraph::color_ramp_node_set_ramp(ShaderType p_type,int p_id,const DVector<Color>& p_colors, const DVector<real_t>& p_offsets){
+void ShaderGraph::color_ramp_node_set_ramp(ShaderType p_type,int p_id,const PoolVector<Color>& p_colors, const PoolVector<real_t>& p_offsets){
ERR_FAIL_INDEX(p_type,3);
ERR_FAIL_COND(!shader[p_type].node_map.has(p_id));
@@ -1094,27 +1094,27 @@ void ShaderGraph::color_ramp_node_set_ramp(ShaderType p_type,int p_id,const DVec
}
-DVector<Color> ShaderGraph::color_ramp_node_get_colors(ShaderType p_type,int p_id) const{
+PoolVector<Color> ShaderGraph::color_ramp_node_get_colors(ShaderType p_type,int p_id) const{
- ERR_FAIL_INDEX_V(p_type,3,DVector<Color>());
- ERR_FAIL_COND_V(!shader[p_type].node_map.has(p_id),DVector<Color>());
+ ERR_FAIL_INDEX_V(p_type,3,PoolVector<Color>());
+ ERR_FAIL_COND_V(!shader[p_type].node_map.has(p_id),PoolVector<Color>());
const Node& n = shader[p_type].node_map[p_id];
return n.param1;
}
-DVector<real_t> ShaderGraph::color_ramp_node_get_offsets(ShaderType p_type,int p_id) const{
+PoolVector<real_t> ShaderGraph::color_ramp_node_get_offsets(ShaderType p_type,int p_id) const{
- ERR_FAIL_INDEX_V(p_type,3,DVector<real_t>());
- ERR_FAIL_COND_V(!shader[p_type].node_map.has(p_id),DVector<real_t>());
+ ERR_FAIL_INDEX_V(p_type,3,PoolVector<real_t>());
+ ERR_FAIL_COND_V(!shader[p_type].node_map.has(p_id),PoolVector<real_t>());
const Node& n = shader[p_type].node_map[p_id];
return n.param2;
}
-void ShaderGraph::curve_map_node_set_points(ShaderType p_type,int p_id,const DVector<Vector2>& p_points) {
+void ShaderGraph::curve_map_node_set_points(ShaderType p_type,int p_id,const PoolVector<Vector2>& p_points) {
ERR_FAIL_INDEX(p_type,3);
ERR_FAIL_COND(!shader[p_type].node_map.has(p_id));
@@ -1124,10 +1124,10 @@ void ShaderGraph::curve_map_node_set_points(ShaderType p_type,int p_id,const DVe
}
-DVector<Vector2> ShaderGraph::curve_map_node_get_points(ShaderType p_type,int p_id) const{
+PoolVector<Vector2> ShaderGraph::curve_map_node_get_points(ShaderType p_type,int p_id) const{
- ERR_FAIL_INDEX_V(p_type,3,DVector<Vector2>());
- ERR_FAIL_COND_V(!shader[p_type].node_map.has(p_id),DVector<Vector2>());
+ ERR_FAIL_INDEX_V(p_type,3,PoolVector<Vector2>());
+ ERR_FAIL_COND_V(!shader[p_type].node_map.has(p_id),PoolVector<Vector2>());
const Node& n = shader[p_type].node_map[p_id];
return n.param1;
@@ -2450,16 +2450,16 @@ void ShaderGraph::_add_node_code(ShaderType p_type,Node *p_node,const Vector<Str
DEF_SCALAR(0);
static const int color_ramp_len=512;
- DVector<uint8_t> cramp;
+ PoolVector<uint8_t> cramp;
cramp.resize(color_ramp_len*4);
{
- DVector<Color> colors=p_node->param1;
- DVector<real_t> offsets=p_node->param2;
+ PoolVector<Color> colors=p_node->param1;
+ PoolVector<real_t> offsets=p_node->param2;
int cc =colors.size();
- DVector<uint8_t>::Write crw = cramp.write();
- DVector<Color>::Read cr = colors.read();
- DVector<real_t>::Read ofr = offsets.read();
+ PoolVector<uint8_t>::Write crw = cramp.write();
+ PoolVector<Color>::Read cr = colors.read();
+ PoolVector<real_t>::Read ofr = offsets.read();
int at=0;
Color color_at(0,0,0,1);
@@ -2508,14 +2508,14 @@ void ShaderGraph::_add_node_code(ShaderType p_type,Node *p_node,const Vector<Str
static const int curve_map_len=256;
bool mapped[256];
zeromem(mapped,sizeof(mapped));
- DVector<uint8_t> cmap;
+ PoolVector<uint8_t> cmap;
cmap.resize(curve_map_len);
{
- DVector<Point2> points=p_node->param1;
+ PoolVector<Point2> points=p_node->param1;
int pc =points.size();
- DVector<uint8_t>::Write cmw = cmap.write();
- DVector<Point2>::Read pr = points.read();
+ PoolVector<uint8_t>::Write cmw = cmap.write();
+ PoolVector<Point2>::Read pr = points.read();
Vector2 prev=Vector2(0,0);
Vector2 prev2=Vector2(0,0);
diff --git a/scene/resources/shader_graph.h b/scene/resources/shader_graph.h
index 57893f27c0..f4e24dbe78 100644
--- a/scene/resources/shader_graph.h
+++ b/scene/resources/shader_graph.h
@@ -326,12 +326,12 @@ public:
void vec_func_node_set_function(ShaderType p_which,int p_id,VecFunc p_func);
VecFunc vec_func_node_get_function(ShaderType p_which,int p_id) const;
- void color_ramp_node_set_ramp(ShaderType p_which,int p_id,const DVector<Color>& p_colors, const DVector<real_t>& p_offsets);
- DVector<Color> color_ramp_node_get_colors(ShaderType p_which,int p_id) const;
- DVector<real_t> color_ramp_node_get_offsets(ShaderType p_which,int p_id) const;
+ void color_ramp_node_set_ramp(ShaderType p_which,int p_id,const PoolVector<Color>& p_colors, const PoolVector<real_t>& p_offsets);
+ PoolVector<Color> color_ramp_node_get_colors(ShaderType p_which,int p_id) const;
+ PoolVector<real_t> color_ramp_node_get_offsets(ShaderType p_which,int p_id) const;
- void curve_map_node_set_points(ShaderType p_which, int p_id, const DVector<Vector2>& p_points);
- DVector<Vector2> curve_map_node_get_points(ShaderType p_which,int p_id) const;
+ void curve_map_node_set_points(ShaderType p_which, int p_id, const PoolVector<Vector2>& p_points);
+ PoolVector<Vector2> curve_map_node_get_points(ShaderType p_which,int p_id) const;
void input_node_set_name(ShaderType p_which,int p_id,const String& p_name);
String input_node_get_name(ShaderType p_which,int p_id);
diff --git a/scene/resources/shape.cpp b/scene/resources/shape.cpp
index f00443276f..a90c3b47a9 100644
--- a/scene/resources/shape.cpp
+++ b/scene/resources/shape.cpp
@@ -34,7 +34,7 @@
#include "scene/main/scene_main_loop.h"
-void Shape::add_vertices_to_array(DVector<Vector3> &array, const Transform& p_xform) {
+void Shape::add_vertices_to_array(PoolVector<Vector3> &array, const Transform& p_xform) {
Vector<Vector3> toadd = _gen_debug_mesh_lines();
@@ -42,7 +42,7 @@ void Shape::add_vertices_to_array(DVector<Vector3> &array, const Transform& p_xf
int base=array.size();
array.resize(base+toadd.size());
- DVector<Vector3>::Write w = array.write();
+ PoolVector<Vector3>::Write w = array.write();
for(int i=0;i<toadd.size();i++) {
w[i+base]=p_xform.xform(toadd[i]);
}
@@ -61,11 +61,11 @@ Ref<Mesh> Shape::get_debug_mesh() {
if (!lines.empty()) {
//make mesh
- DVector<Vector3> array;
+ PoolVector<Vector3> array;
array.resize(lines.size());
{
- DVector<Vector3>::Write w=array.write();
+ PoolVector<Vector3>::Write w=array.write();
for(int i=0;i<lines.size();i++) {
w[i]=lines[i];
}
diff --git a/scene/resources/shape.h b/scene/resources/shape.h
index 94a8ec7075..29a93b642c 100644
--- a/scene/resources/shape.h
+++ b/scene/resources/shape.h
@@ -53,7 +53,7 @@ public:
Ref<Mesh> get_debug_mesh();
- void add_vertices_to_array(DVector<Vector3> &array, const Transform& p_xform);
+ void add_vertices_to_array(PoolVector<Vector3> &array, const Transform& p_xform);
Shape();
~Shape();
diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp
index 2ed620c097..cc13c0ff11 100644
--- a/scene/resources/surface_tool.cpp
+++ b/scene/resources/surface_tool.cpp
@@ -262,9 +262,9 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
case Mesh::ARRAY_FORMAT_VERTEX:
case Mesh::ARRAY_FORMAT_NORMAL: {
- DVector<Vector3> array;
+ PoolVector<Vector3> array;
array.resize(varr_len);
- DVector<Vector3>::Write w = array.write();
+ PoolVector<Vector3>::Write w = array.write();
int idx=0;
for(List< Vertex >::Element *E=vertex_array.front();E;E=E->next(),idx++) {
@@ -282,7 +282,7 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
}
- w=DVector<Vector3>::Write();
+ w=PoolVector<Vector3>::Write();
a[i]=array;
} break;
@@ -290,9 +290,9 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
case Mesh::ARRAY_FORMAT_TEX_UV:
case Mesh::ARRAY_FORMAT_TEX_UV2: {
- DVector<Vector2> array;
+ PoolVector<Vector2> array;
array.resize(varr_len);
- DVector<Vector2>::Write w = array.write();
+ PoolVector<Vector2>::Write w = array.write();
int idx=0;
for(List< Vertex >::Element *E=vertex_array.front();E;E=E->next(),idx++) {
@@ -311,15 +311,15 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
}
- w=DVector<Vector2>::Write();
+ w=PoolVector<Vector2>::Write();
a[i]=array;
} break;
case Mesh::ARRAY_FORMAT_TANGENT: {
- DVector<float> array;
+ PoolVector<float> array;
array.resize(varr_len*4);
- DVector<float>::Write w = array.write();
+ PoolVector<float>::Write w = array.write();
int idx=0;
for(List< Vertex >::Element *E=vertex_array.front();E;E=E->next(),idx+=4) {
@@ -335,15 +335,15 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
w[idx+3]=d<0 ? -1 : 1;
}
- w=DVector<float>::Write();
+ w=PoolVector<float>::Write();
a[i]=array;
} break;
case Mesh::ARRAY_FORMAT_COLOR: {
- DVector<Color> array;
+ PoolVector<Color> array;
array.resize(varr_len);
- DVector<Color>::Write w = array.write();
+ PoolVector<Color>::Write w = array.write();
int idx=0;
for(List< Vertex >::Element *E=vertex_array.front();E;E=E->next(),idx++) {
@@ -352,15 +352,15 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
w[idx]=v.color;
}
- w=DVector<Color>::Write();
+ w=PoolVector<Color>::Write();
a[i]=array;
} break;
case Mesh::ARRAY_FORMAT_BONES: {
- DVector<int> array;
+ PoolVector<int> array;
array.resize(varr_len*4);
- DVector<int>::Write w = array.write();
+ PoolVector<int>::Write w = array.write();
int idx=0;
for(List< Vertex >::Element *E=vertex_array.front();E;E=E->next(),idx+=4) {
@@ -375,16 +375,16 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
}
- w=DVector<int>::Write();
+ w=PoolVector<int>::Write();
a[i]=array;
} break;
case Mesh::ARRAY_FORMAT_WEIGHTS: {
- DVector<float> array;
+ PoolVector<float> array;
array.resize(varr_len*4);
- DVector<float>::Write w = array.write();
+ PoolVector<float>::Write w = array.write();
int idx=0;
for(List< Vertex >::Element *E=vertex_array.front();E;E=E->next(),idx+=4) {
@@ -399,7 +399,7 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
}
- w=DVector<float>::Write();
+ w=PoolVector<float>::Write();
a[i]=array;
} break;
@@ -407,9 +407,9 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
ERR_CONTINUE( index_array.size() ==0 );
- DVector<int> array;
+ PoolVector<int> array;
array.resize(index_array.size());
- DVector<int>::Write w = array.write();
+ PoolVector<int>::Write w = array.write();
int idx=0;
for(List< int>::Element *E=index_array.front();E;E=E->next(),idx++) {
@@ -417,7 +417,7 @@ Ref<Mesh> SurfaceTool::commit(const Ref<Mesh>& p_existing) {
w[idx]=E->get();
}
- w=DVector<int>::Write();
+ w=PoolVector<int>::Write();
a[i]=array;
} break;
@@ -490,14 +490,14 @@ void SurfaceTool::_create_list(const Ref<Mesh>& p_existing, int p_surface, List<
Array arr = p_existing->surface_get_arrays(p_surface);
ERR_FAIL_COND( arr.size() !=VS::ARRAY_MAX );
- DVector<Vector3> varr = arr[VS::ARRAY_VERTEX];
- DVector<Vector3> narr = arr[VS::ARRAY_NORMAL];
- DVector<float> tarr = arr[VS::ARRAY_TANGENT];
- DVector<Color> carr = arr[VS::ARRAY_COLOR];
- DVector<Vector2> uvarr = arr[VS::ARRAY_TEX_UV];
- DVector<Vector2> uv2arr = arr[VS::ARRAY_TEX_UV2];
- DVector<int> barr = arr[VS::ARRAY_BONES];
- DVector<float> warr = arr[VS::ARRAY_WEIGHTS];
+ PoolVector<Vector3> varr = arr[VS::ARRAY_VERTEX];
+ PoolVector<Vector3> narr = arr[VS::ARRAY_NORMAL];
+ PoolVector<float> tarr = arr[VS::ARRAY_TANGENT];
+ PoolVector<Color> carr = arr[VS::ARRAY_COLOR];
+ PoolVector<Vector2> uvarr = arr[VS::ARRAY_TEX_UV];
+ PoolVector<Vector2> uv2arr = arr[VS::ARRAY_TEX_UV2];
+ PoolVector<int> barr = arr[VS::ARRAY_BONES];
+ PoolVector<float> warr = arr[VS::ARRAY_WEIGHTS];
int vc = varr.size();
@@ -505,46 +505,46 @@ void SurfaceTool::_create_list(const Ref<Mesh>& p_existing, int p_surface, List<
return;
lformat=0;
- DVector<Vector3>::Read rv;
+ PoolVector<Vector3>::Read rv;
if (varr.size()) {
lformat|=VS::ARRAY_FORMAT_VERTEX;
rv=varr.read();
}
- DVector<Vector3>::Read rn;
+ PoolVector<Vector3>::Read rn;
if (narr.size()) {
lformat|=VS::ARRAY_FORMAT_NORMAL;
rn=narr.read();
}
- DVector<float>::Read rt;
+ PoolVector<float>::Read rt;
if (tarr.size()) {
lformat|=VS::ARRAY_FORMAT_TANGENT;
rt=tarr.read();
}
- DVector<Color>::Read rc;
+ PoolVector<Color>::Read rc;
if (carr.size()) {
lformat|=VS::ARRAY_FORMAT_COLOR;
rc=carr.read();
}
- DVector<Vector2>::Read ruv;
+ PoolVector<Vector2>::Read ruv;
if (uvarr.size()) {
lformat|=VS::ARRAY_FORMAT_TEX_UV;
ruv=uvarr.read();
}
- DVector<Vector2>::Read ruv2;
+ PoolVector<Vector2>::Read ruv2;
if (uv2arr.size()) {
lformat|=VS::ARRAY_FORMAT_TEX_UV2;
ruv2=uv2arr.read();
}
- DVector<int>::Read rb;
+ PoolVector<int>::Read rb;
if (barr.size()) {
lformat|=VS::ARRAY_FORMAT_BONES;
rb=barr.read();
}
- DVector<float>::Read rw;
+ PoolVector<float>::Read rw;
if (warr.size()) {
lformat|=VS::ARRAY_FORMAT_WEIGHTS;
rw=warr.read();
@@ -592,12 +592,12 @@ void SurfaceTool::_create_list(const Ref<Mesh>& p_existing, int p_surface, List<
//indices
- DVector<int> idx= arr[VS::ARRAY_INDEX];
+ PoolVector<int> idx= arr[VS::ARRAY_INDEX];
int is = idx.size();
if (is) {
lformat|=VS::ARRAY_FORMAT_INDEX;
- DVector<int>::Read iarr=idx.read();
+ PoolVector<int>::Read iarr=idx.read();
for(int i=0;i<is;i++) {
r_index->push_back(iarr[i]);
}
diff --git a/scene/resources/theme.h b/scene/resources/theme.h
index 94ac910e9f..e9d890cf97 100644
--- a/scene/resources/theme.h
+++ b/scene/resources/theme.h
@@ -72,13 +72,13 @@ protected:
Ref<Font> default_theme_font;
- DVector<String> _get_icon_list(const String& p_type) const { DVector<String> ilret; List<StringName> il; get_icon_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
- DVector<String> _get_stylebox_list(const String& p_type) const { DVector<String> ilret; List<StringName> il; get_stylebox_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
- DVector<String> _get_stylebox_types(void) const { DVector<String> ilret; List<StringName> il; get_stylebox_types(&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
- DVector<String> _get_font_list(const String& p_type) const { DVector<String> ilret; List<StringName> il; get_font_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
- DVector<String> _get_color_list(const String& p_type) const { DVector<String> ilret; List<StringName> il; get_color_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
- DVector<String> _get_constant_list(const String& p_type) const { DVector<String> ilret; List<StringName> il; get_constant_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
- DVector<String> _get_type_list(const String& p_type) const { DVector<String> ilret; List<StringName> il; get_type_list(&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
+ PoolVector<String> _get_icon_list(const String& p_type) const { PoolVector<String> ilret; List<StringName> il; get_icon_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
+ PoolVector<String> _get_stylebox_list(const String& p_type) const { PoolVector<String> ilret; List<StringName> il; get_stylebox_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
+ PoolVector<String> _get_stylebox_types(void) const { PoolVector<String> ilret; List<StringName> il; get_stylebox_types(&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
+ PoolVector<String> _get_font_list(const String& p_type) const { PoolVector<String> ilret; List<StringName> il; get_font_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
+ PoolVector<String> _get_color_list(const String& p_type) const { PoolVector<String> ilret; List<StringName> il; get_color_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
+ PoolVector<String> _get_constant_list(const String& p_type) const { PoolVector<String> ilret; List<StringName> il; get_constant_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
+ PoolVector<String> _get_type_list(const String& p_type) const { PoolVector<String> ilret; List<StringName> il; get_type_list(&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
static void _bind_methods();
public:
diff --git a/scene/scene_string_names.cpp b/scene/scene_string_names.cpp
index 9a2647327b..8e7ca882a4 100644
--- a/scene/scene_string_names.cpp
+++ b/scene/scene_string_names.cpp
@@ -51,6 +51,7 @@ SceneStringNames::SceneStringNames() {
sleeping_state_changed=StaticCString::create("sleeping_state_changed");
finished=StaticCString::create("finished");
+ animation_finished=StaticCString::create("animation_finished");
animation_changed=StaticCString::create("animation_changed");
animation_started=StaticCString::create("animation_started");
@@ -116,6 +117,9 @@ SceneStringNames::SceneStringNames() {
_input_event=StaticCString::create("_input_event");
+ gui_input=StaticCString::create("gui_input");
+ _gui_input=StaticCString::create("_gui_input");
+
changed=StaticCString::create("changed");
_shader_changed=StaticCString::create("_shader_changed");
diff --git a/scene/scene_string_names.h b/scene/scene_string_names.h
index 598f2fadbc..5befaa2b69 100644
--- a/scene/scene_string_names.h
+++ b/scene/scene_string_names.h
@@ -54,6 +54,8 @@ public:
StringName visibility_changed;
StringName input_event;
StringName _input_event;
+ StringName gui_input;
+ StringName _gui_input;
StringName item_rect_changed;
StringName shader_shader;
StringName shader_unshaded;
@@ -78,6 +80,7 @@ public:
StringName sort_children;
StringName finished;
+ StringName animation_finished;
StringName animation_changed;
StringName animation_started;
diff --git a/servers/audio/audio_server_sw.cpp b/servers/audio/audio_server_sw.cpp
index edf8143eb5..f508a130b4 100644
--- a/servers/audio/audio_server_sw.cpp
+++ b/servers/audio/audio_server_sw.cpp
@@ -384,11 +384,11 @@ const void* AudioServerSW::sample_get_data_ptr(RID p_sample) const {
return sample_manager->sample_get_data_ptr(p_sample);
}
-void AudioServerSW::sample_set_data(RID p_sample, const DVector<uint8_t>& p_buffer) {
+void AudioServerSW::sample_set_data(RID p_sample, const PoolVector<uint8_t>& p_buffer) {
AUDIO_LOCK
sample_manager->sample_set_data(p_sample,p_buffer);
}
-DVector<uint8_t> AudioServerSW::sample_get_data(RID p_sample) const {
+PoolVector<uint8_t> AudioServerSW::sample_get_data(RID p_sample) const {
AUDIO_LOCK
return sample_manager->sample_get_data(p_sample);
}
diff --git a/servers/audio/audio_server_sw.h b/servers/audio/audio_server_sw.h
index f97ae8db82..52b45351c3 100644
--- a/servers/audio/audio_server_sw.h
+++ b/servers/audio/audio_server_sw.h
@@ -125,8 +125,8 @@ public:
virtual int sample_get_length(RID p_sample) const;
const void* sample_get_data_ptr(RID p_sample) const;
- virtual void sample_set_data(RID p_sample, const DVector<uint8_t>& p_buffer);
- virtual DVector<uint8_t> sample_get_data(RID p_sample) const;
+ virtual void sample_set_data(RID p_sample, const PoolVector<uint8_t>& p_buffer);
+ virtual PoolVector<uint8_t> sample_get_data(RID p_sample) const;
virtual void sample_set_mix_rate(RID p_sample,int p_rate);
virtual int sample_get_mix_rate(RID p_sample) const;
diff --git a/servers/audio/sample_manager_sw.cpp b/servers/audio/sample_manager_sw.cpp
index 623bb0f9cb..fe4cc36776 100644
--- a/servers/audio/sample_manager_sw.cpp
+++ b/servers/audio/sample_manager_sw.cpp
@@ -125,7 +125,7 @@ int SampleManagerMallocSW::sample_get_length(RID p_sample) const {
return s->length;
}
-void SampleManagerMallocSW::sample_set_data(RID p_sample, const DVector<uint8_t>& p_buffer) {
+void SampleManagerMallocSW::sample_set_data(RID p_sample, const PoolVector<uint8_t>& p_buffer) {
Sample *s = sample_owner.get(p_sample);
ERR_FAIL_COND(!s);
@@ -137,7 +137,7 @@ void SampleManagerMallocSW::sample_set_data(RID p_sample, const DVector<uint8_t>
ERR_EXPLAIN("Sample buffer size does not match sample size.");
//print_line("len bytes: "+itos(s->length_bytes)+" bufsize: "+itos(buff_size));
ERR_FAIL_COND(s->length_bytes!=buff_size);
- DVector<uint8_t>::Read buffer_r=p_buffer.read();
+ PoolVector<uint8_t>::Read buffer_r=p_buffer.read();
const uint8_t *src = buffer_r.ptr();
uint8_t *dst = (uint8_t*)s->data;
//print_line("set data: "+itos(s->length_bytes));
@@ -181,14 +181,14 @@ void SampleManagerMallocSW::sample_set_data(RID p_sample, const DVector<uint8_t>
}
-const DVector<uint8_t> SampleManagerMallocSW::sample_get_data(RID p_sample) const {
+const PoolVector<uint8_t> SampleManagerMallocSW::sample_get_data(RID p_sample) const {
Sample *s = sample_owner.get(p_sample);
- ERR_FAIL_COND_V(!s,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!s,PoolVector<uint8_t>());
- DVector<uint8_t> ret_buffer;
+ PoolVector<uint8_t> ret_buffer;
ret_buffer.resize(s->length_bytes);
- DVector<uint8_t>::Write buffer_w=ret_buffer.write();
+ PoolVector<uint8_t>::Write buffer_w=ret_buffer.write();
uint8_t *dst = buffer_w.ptr();
const uint8_t *src = (const uint8_t*)s->data;
@@ -197,7 +197,7 @@ const DVector<uint8_t> SampleManagerMallocSW::sample_get_data(RID p_sample) cons
dst[i]=src[i];
}
- buffer_w = DVector<uint8_t>::Write(); //unlock
+ buffer_w = PoolVector<uint8_t>::Write(); //unlock
return ret_buffer;
}
diff --git a/servers/audio/sample_manager_sw.h b/servers/audio/sample_manager_sw.h
index ad71723cd6..93cad96f1a 100644
--- a/servers/audio/sample_manager_sw.h
+++ b/servers/audio/sample_manager_sw.h
@@ -45,8 +45,8 @@ public:
virtual bool sample_is_stereo(RID p_sample) const=0;
virtual int sample_get_length(RID p_sample) const=0;
- virtual void sample_set_data(RID p_sample, const DVector<uint8_t>& p_buffer)=0;
- virtual const DVector<uint8_t> sample_get_data(RID p_sample) const=0;
+ virtual void sample_set_data(RID p_sample, const PoolVector<uint8_t>& p_buffer)=0;
+ virtual const PoolVector<uint8_t> sample_get_data(RID p_sample) const=0;
virtual void *sample_get_data_ptr(RID p_sample) const=0;
@@ -102,8 +102,8 @@ public:
virtual bool sample_is_stereo(RID p_sample) const;
virtual int sample_get_length(RID p_sample) const;
- virtual void sample_set_data(RID p_sample, const DVector<uint8_t>& p_buffer);
- virtual const DVector<uint8_t> sample_get_data(RID p_sample) const;
+ virtual void sample_set_data(RID p_sample, const PoolVector<uint8_t>& p_buffer);
+ virtual const PoolVector<uint8_t> sample_get_data(RID p_sample) const;
virtual void *sample_get_data_ptr(RID p_sample) const;
diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp
index 78d793fe46..5037b19924 100644
--- a/servers/audio_server.cpp
+++ b/servers/audio_server.cpp
@@ -46,7 +46,7 @@ AudioServer *AudioServer::get_singleton() {
return singleton;
}
-void AudioServer::sample_set_signed_data(RID p_sample, const DVector<float>& p_buffer) {
+void AudioServer::sample_set_signed_data(RID p_sample, const PoolVector<float>& p_buffer) {
SampleFormat format = sample_get_format(p_sample);
@@ -56,9 +56,9 @@ void AudioServer::sample_set_signed_data(RID p_sample, const DVector<float>& p_b
int len = p_buffer.size();
ERR_FAIL_COND( len == 0 );
- DVector<uint8_t> data;
- DVector<uint8_t>::Write w;
- DVector<float>::Read r = p_buffer.read();
+ PoolVector<uint8_t> data;
+ PoolVector<uint8_t>::Write w;
+ PoolVector<float>::Read r = p_buffer.read();
switch(format) {
case SAMPLE_FORMAT_PCM8: {
@@ -95,7 +95,7 @@ void AudioServer::sample_set_signed_data(RID p_sample, const DVector<float>& p_b
} break;
}
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
sample_set_data(p_sample,data);
diff --git a/servers/audio_server.h b/servers/audio_server.h
index 9d8ae2bff9..1482b40d4c 100644
--- a/servers/audio_server.h
+++ b/servers/audio_server.h
@@ -168,9 +168,9 @@ public:
virtual int sample_get_length(RID p_sample) const=0;
virtual const void* sample_get_data_ptr(RID p_sample) const=0;
- virtual void sample_set_signed_data(RID p_sample, const DVector<float>& p_buffer);
- virtual void sample_set_data(RID p_sample, const DVector<uint8_t>& p_buffer)=0;
- virtual DVector<uint8_t> sample_get_data(RID p_sample) const=0;
+ virtual void sample_set_signed_data(RID p_sample, const PoolVector<float>& p_buffer);
+ virtual void sample_set_data(RID p_sample, const PoolVector<uint8_t>& p_buffer)=0;
+ virtual PoolVector<uint8_t> sample_get_data(RID p_sample) const=0;
virtual void sample_set_mix_rate(RID p_sample,int p_rate)=0;
virtual int sample_get_mix_rate(RID p_sample) const=0;
diff --git a/servers/physics/shape_sw.cpp b/servers/physics/shape_sw.cpp
index 304bcf8f7b..c853dcff35 100644
--- a/servers/physics/shape_sw.cpp
+++ b/servers/physics/shape_sw.cpp
@@ -971,10 +971,10 @@ FaceShapeSW::FaceShapeSW() {
-DVector<Vector3> ConcavePolygonShapeSW::get_faces() const {
+PoolVector<Vector3> ConcavePolygonShapeSW::get_faces() const {
- DVector<Vector3> rfaces;
+ PoolVector<Vector3> rfaces;
rfaces.resize(faces.size()*3);
for(int i=0;i<faces.size();i++) {
@@ -998,7 +998,7 @@ void ConcavePolygonShapeSW::project_range(const Vector3& p_normal, const Transfo
r_max=0;
return;
}
- DVector<Vector3>::Read r=vertices.read();
+ PoolVector<Vector3>::Read r=vertices.read();
const Vector3 *vptr=r.ptr();
for (int i=0;i<count;i++) {
@@ -1020,7 +1020,7 @@ Vector3 ConcavePolygonShapeSW::get_support(const Vector3& p_normal) const {
if (count==0)
return Vector3();
- DVector<Vector3>::Read r=vertices.read();
+ PoolVector<Vector3>::Read r=vertices.read();
const Vector3 *vptr=r.ptr();
Vector3 n=p_normal;
@@ -1111,9 +1111,9 @@ bool ConcavePolygonShapeSW::intersect_segment(const Vector3& p_begin,const Vecto
return false;
// unlock data
- DVector<Face>::Read fr=faces.read();
- DVector<Vector3>::Read vr=vertices.read();
- DVector<BVH>::Read br=bvh.read();
+ PoolVector<Face>::Read fr=faces.read();
+ PoolVector<Vector3>::Read vr=vertices.read();
+ PoolVector<BVH>::Read br=bvh.read();
_SegmentCullParams params;
@@ -1184,9 +1184,9 @@ void ConcavePolygonShapeSW::cull(const AABB& p_local_aabb,Callback p_callback,vo
AABB local_aabb=p_local_aabb;
// unlock data
- DVector<Face>::Read fr=faces.read();
- DVector<Vector3>::Read vr=vertices.read();
- DVector<BVH>::Read br=bvh.read();
+ PoolVector<Face>::Read fr=faces.read();
+ PoolVector<Vector3>::Read vr=vertices.read();
+ PoolVector<BVH>::Read br=bvh.read();
FaceShapeSW face; // use this to send in the callback
@@ -1347,7 +1347,7 @@ void ConcavePolygonShapeSW::_fill_bvh(_VolumeSW_BVH* p_bvh_tree,BVH* p_bvh_array
}
-void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
+void ConcavePolygonShapeSW::_setup(PoolVector<Vector3> p_faces) {
int src_face_count=p_faces.size();
if (src_face_count==0) {
@@ -1357,7 +1357,7 @@ void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
ERR_FAIL_COND(src_face_count%3);
src_face_count/=3;
- DVector<Vector3>::Read r = p_faces.read();
+ PoolVector<Vector3>::Read r = p_faces.read();
const Vector3 * facesr= r.ptr();
#if 0
@@ -1399,7 +1399,7 @@ void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
vertices.resize( point_map.size() );
- DVector<Vector3>::Write vw = vertices.write();
+ PoolVector<Vector3>::Write vw = vertices.write();
Vector3 *verticesw=vw.ptr();
AABB _aabb;
@@ -1418,7 +1418,7 @@ void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
point_map.clear(); // not needed anymore
faces.resize(face_list.size());
- DVector<Face>::Write w = faces.write();
+ PoolVector<Face>::Write w = faces.write();
Face *facesw=w.ptr();
int fc=0;
@@ -1431,10 +1431,10 @@ void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
face_list.clear();
- DVector<_VolumeSW_BVH_Element> bvh_array;
+ PoolVector<_VolumeSW_BVH_Element> bvh_array;
bvh_array.resize( fc );
- DVector<_VolumeSW_BVH_Element>::Write bvhw = bvh_array.write();
+ PoolVector<_VolumeSW_BVH_Element>::Write bvhw = bvh_array.write();
_VolumeSW_BVH_Element *bvh_arrayw=bvhw.ptr();
@@ -1451,8 +1451,8 @@ void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
}
- w=DVector<Face>::Write();
- vw=DVector<Vector3>::Write();
+ w=PoolVector<Face>::Write();
+ vw=PoolVector<Vector3>::Write();
int count=0;
@@ -1460,11 +1460,11 @@ void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
ERR_FAIL_COND(count==0);
- bvhw=DVector<_VolumeSW_BVH_Element>::Write();
+ bvhw=PoolVector<_VolumeSW_BVH_Element>::Write();
bvh.resize( count+1 );
- DVector<BVH>::Write bvhw2 = bvh.write();
+ PoolVector<BVH>::Write bvhw2 = bvh.write();
BVH*bvh_arrayw2=bvhw2.ptr();
int idx=0;
@@ -1473,19 +1473,19 @@ void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
set_aabb(_aabb);
#else
- DVector<_VolumeSW_BVH_Element> bvh_array;
+ PoolVector<_VolumeSW_BVH_Element> bvh_array;
bvh_array.resize( src_face_count );
- DVector<_VolumeSW_BVH_Element>::Write bvhw = bvh_array.write();
+ PoolVector<_VolumeSW_BVH_Element>::Write bvhw = bvh_array.write();
_VolumeSW_BVH_Element *bvh_arrayw=bvhw.ptr();
faces.resize(src_face_count);
- DVector<Face>::Write w = faces.write();
+ PoolVector<Face>::Write w = faces.write();
Face *facesw=w.ptr();
vertices.resize( src_face_count*3 );
- DVector<Vector3>::Write vw = vertices.write();
+ PoolVector<Vector3>::Write vw = vertices.write();
Vector3 *verticesw=vw.ptr();
AABB _aabb;
@@ -1512,15 +1512,15 @@ void ConcavePolygonShapeSW::_setup(DVector<Vector3> p_faces) {
}
- w=DVector<Face>::Write();
- vw=DVector<Vector3>::Write();
+ w=PoolVector<Face>::Write();
+ vw=PoolVector<Vector3>::Write();
int count=0;
_VolumeSW_BVH *bvh_tree=_volume_sw_build_bvh(bvh_arrayw,src_face_count,count);
bvh.resize( count+1 );
- DVector<BVH>::Write bvhw2 = bvh.write();
+ PoolVector<BVH>::Write bvhw2 = bvh.write();
BVH*bvh_arrayw2=bvhw2.ptr();
int idx=0;
@@ -1553,7 +1553,7 @@ ConcavePolygonShapeSW::ConcavePolygonShapeSW() {
/* HEIGHT MAP SHAPE */
-DVector<float> HeightMapShapeSW::get_heights() const {
+PoolVector<float> HeightMapShapeSW::get_heights() const {
return heights;
}
@@ -1614,14 +1614,14 @@ Vector3 HeightMapShapeSW::get_moment_of_inertia(float p_mass) const {
}
-void HeightMapShapeSW::_setup(DVector<real_t> p_heights,int p_width,int p_depth,real_t p_cell_size) {
+void HeightMapShapeSW::_setup(PoolVector<real_t> p_heights,int p_width,int p_depth,real_t p_cell_size) {
heights=p_heights;
width=p_width;
depth=p_depth;;
cell_size=p_cell_size;
- DVector<real_t>::Read r = heights. read();
+ PoolVector<real_t>::Read r = heights. read();
AABB aabb;
@@ -1656,7 +1656,7 @@ void HeightMapShapeSW::set_data(const Variant& p_data) {
int width=d["width"];
int depth=d["depth"];
float cell_size=d["cell_size"];
- DVector<float> heights=d["heights"];
+ PoolVector<float> heights=d["heights"];
ERR_FAIL_COND( width<= 0);
ERR_FAIL_COND( depth<= 0);
diff --git a/servers/physics/shape_sw.h b/servers/physics/shape_sw.h
index d031a9fb9b..5916fd9881 100644
--- a/servers/physics/shape_sw.h
+++ b/servers/physics/shape_sw.h
@@ -279,8 +279,8 @@ struct ConcavePolygonShapeSW : public ConcaveShapeSW {
int indices[3];
};
- DVector<Face> faces;
- DVector<Vector3> vertices;
+ PoolVector<Face> faces;
+ PoolVector<Vector3> vertices;
struct BVH {
@@ -291,7 +291,7 @@ struct ConcavePolygonShapeSW : public ConcaveShapeSW {
int face_index;
};
- DVector<BVH> bvh;
+ PoolVector<BVH> bvh;
struct _CullParams {
@@ -326,10 +326,10 @@ struct ConcavePolygonShapeSW : public ConcaveShapeSW {
void _fill_bvh(_VolumeSW_BVH* p_bvh_tree,BVH* p_bvh_array,int& p_idx);
- void _setup(DVector<Vector3> p_faces);
+ void _setup(PoolVector<Vector3> p_faces);
public:
- DVector<Vector3> get_faces() const;
+ PoolVector<Vector3> get_faces() const;
virtual PhysicsServer::ShapeType get_type() const { return PhysicsServer::SHAPE_CONCAVE_POLYGON; }
@@ -352,7 +352,7 @@ public:
struct HeightMapShapeSW : public ConcaveShapeSW {
- DVector<real_t> heights;
+ PoolVector<real_t> heights;
int width;
int depth;
float cell_size;
@@ -360,10 +360,10 @@ struct HeightMapShapeSW : public ConcaveShapeSW {
// void _cull_segment(int p_idx,_SegmentCullParams *p_params) const;
// void _cull(int p_idx,_CullParams *p_params) const;
- void _setup(DVector<float> p_heights,int p_width,int p_depth,float p_cell_size);
+ void _setup(PoolVector<float> p_heights,int p_width,int p_depth,float p_cell_size);
public:
- DVector<real_t> get_heights() const;
+ PoolVector<real_t> get_heights() const;
int get_width() const;
int get_depth() const;
float get_cell_size() const;
diff --git a/servers/physics_2d/shape_2d_sw.cpp b/servers/physics_2d/shape_2d_sw.cpp
index 6506349ead..e9089e6173 100644
--- a/servers/physics_2d/shape_2d_sw.cpp
+++ b/servers/physics_2d/shape_2d_sw.cpp
@@ -693,11 +693,11 @@ void ConvexPolygonShape2DSW::set_data(const Variant& p_data) {
point_count=0;
if (p_data.get_type()==Variant::VECTOR2_ARRAY) {
- DVector<Vector2> arr=p_data;
+ PoolVector<Vector2> arr=p_data;
ERR_FAIL_COND(arr.size()==0);
point_count=arr.size();
points = memnew_arr(Point,point_count);
- DVector<Vector2>::Read r = arr.read();
+ PoolVector<Vector2>::Read r = arr.read();
for(int i=0;i<point_count;i++) {
points[i].pos=r[i];
@@ -711,12 +711,12 @@ void ConvexPolygonShape2DSW::set_data(const Variant& p_data) {
}
} else {
- DVector<real_t> dvr = p_data;
+ PoolVector<real_t> dvr = p_data;
point_count=dvr.size()/4;
ERR_FAIL_COND(point_count==0);
points = memnew_arr(Point,point_count);
- DVector<real_t>::Read r = dvr.read();
+ PoolVector<real_t>::Read r = dvr.read();
for(int i=0;i<point_count;i++) {
@@ -741,7 +741,7 @@ void ConvexPolygonShape2DSW::set_data(const Variant& p_data) {
Variant ConvexPolygonShape2DSW::get_data() const {
- DVector<Vector2> dvr;
+ PoolVector<Vector2> dvr;
dvr.resize(point_count);
@@ -970,7 +970,7 @@ void ConcavePolygonShape2DSW::set_data(const Variant& p_data) {
if (p_data.get_type()==Variant::VECTOR2_ARRAY) {
- DVector<Vector2> p2arr = p_data;
+ PoolVector<Vector2> p2arr = p_data;
int len = p2arr.size();
ERR_FAIL_COND(len%2);
@@ -984,7 +984,7 @@ void ConcavePolygonShape2DSW::set_data(const Variant& p_data) {
return;
}
- DVector<Vector2>::Read arr = p2arr.read();
+ PoolVector<Vector2>::Read arr = p2arr.read();
Map<Point2,int> pointmap;
for(int i=0;i<len;i+=2) {
@@ -1046,17 +1046,17 @@ void ConcavePolygonShape2DSW::set_data(const Variant& p_data) {
Variant ConcavePolygonShape2DSW::get_data() const {
- DVector<Vector2> rsegments;
+ PoolVector<Vector2> rsegments;
int len = segments.size();
rsegments.resize(len*2);
- DVector<Vector2>::Write w = rsegments.write();
+ PoolVector<Vector2>::Write w = rsegments.write();
for(int i=0;i<len;i++) {
w[(i<<1)+0]=points[segments[i].points[0]];
w[(i<<1)+1]=points[segments[i].points[1]];
}
- w=DVector<Vector2>::Write();
+ w=PoolVector<Vector2>::Write();
return rsegments;
}
diff --git a/servers/spatial_sound_2d/spatial_sound_2d_server_sw.cpp b/servers/spatial_sound_2d/spatial_sound_2d_server_sw.cpp
index 3ec19b60c1..a930daf729 100644
--- a/servers/spatial_sound_2d/spatial_sound_2d_server_sw.cpp
+++ b/servers/spatial_sound_2d/spatial_sound_2d_server_sw.cpp
@@ -181,7 +181,7 @@ RID SpatialSound2DServerSW::room_get_space(RID p_room) const {
-void SpatialSound2DServerSW::room_set_bounds(RID p_room, const DVector<Point2>& p_bounds) {
+void SpatialSound2DServerSW::room_set_bounds(RID p_room, const PoolVector<Point2>& p_bounds) {
Room *room = room_owner.get(p_room);
ERR_FAIL_COND(!room);
@@ -198,9 +198,9 @@ void SpatialSound2DServerSW::room_set_bounds(RID p_room, const DVector<Point2>&
// space->octree.move(room->octree_id,room->transform.xform(aabb));
}
-DVector<Point2> SpatialSound2DServerSW::room_get_bounds(RID p_room) const {
+PoolVector<Point2> SpatialSound2DServerSW::room_get_bounds(RID p_room) const {
Room *room = room_owner.get(p_room);
- ERR_FAIL_COND_V(!room,DVector<Point2>());
+ ERR_FAIL_COND_V(!room,PoolVector<Point2>());
return room->bounds;
}
diff --git a/servers/spatial_sound_2d/spatial_sound_2d_server_sw.h b/servers/spatial_sound_2d/spatial_sound_2d_server_sw.h
index a4e4b3a4a1..d6c09f50a8 100644
--- a/servers/spatial_sound_2d/spatial_sound_2d_server_sw.h
+++ b/servers/spatial_sound_2d/spatial_sound_2d_server_sw.h
@@ -82,7 +82,7 @@ class SpatialSound2DServerSW : public SpatialSound2DServer {
RID space;
Matrix32 transform;
Matrix32 inverse_transform;
- DVector<Point2> bounds;
+ PoolVector<Point2> bounds;
RoomReverb reverb;
float params[ROOM_PARAM_MAX];
bool override_other_sources;
@@ -198,8 +198,8 @@ public:
virtual void room_set_space(RID p_room,RID p_space);
virtual RID room_get_space(RID p_room) const;
- virtual void room_set_bounds(RID p_room, const DVector<Point2>& p_bounds);
- virtual DVector<Point2> room_get_bounds(RID p_room) const;
+ virtual void room_set_bounds(RID p_room, const PoolVector<Point2>& p_bounds);
+ virtual PoolVector<Point2> room_get_bounds(RID p_room) const;
virtual void room_set_transform(RID p_room, const Matrix32& p_transform);
virtual Matrix32 room_get_transform(RID p_room) const;
diff --git a/servers/spatial_sound_2d_server.h b/servers/spatial_sound_2d_server.h
index b54368fec5..c19da87c04 100644
--- a/servers/spatial_sound_2d_server.h
+++ b/servers/spatial_sound_2d_server.h
@@ -57,8 +57,8 @@ public:
virtual RID room_get_space(RID p_room) const=0;
- virtual void room_set_bounds(RID p_room, const DVector<Point2>& p_bounds)=0;
- virtual DVector<Point2> room_get_bounds(RID p_room) const=0;
+ virtual void room_set_bounds(RID p_room, const PoolVector<Point2>& p_bounds)=0;
+ virtual PoolVector<Point2> room_get_bounds(RID p_room) const=0;
virtual void room_set_transform(RID p_room, const Matrix32& p_transform)=0;
virtual Matrix32 room_get_transform(RID p_room) const=0;
diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h
index 27268dcabf..de570b7e4d 100644
--- a/servers/visual/rasterizer.h
+++ b/servers/visual/rasterizer.h
@@ -242,7 +242,7 @@ public:
virtual RID mesh_create()=0;
- virtual void mesh_add_surface(RID p_mesh,uint32_t p_format,VS::PrimitiveType p_primitive,const DVector<uint8_t>& p_array,int p_vertex_count,const DVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<DVector<uint8_t> >& p_blend_shapes=Vector<DVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>())=0;
+ virtual void mesh_add_surface(RID p_mesh,uint32_t p_format,VS::PrimitiveType p_primitive,const PoolVector<uint8_t>& p_array,int p_vertex_count,const PoolVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<PoolVector<uint8_t> >& p_blend_shapes=Vector<PoolVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>())=0;
virtual void mesh_set_morph_target_count(RID p_mesh,int p_amount)=0;
virtual int mesh_get_morph_target_count(RID p_mesh) const=0;
@@ -257,15 +257,15 @@ public:
virtual int mesh_surface_get_array_len(RID p_mesh, int p_surface) const=0;
virtual int mesh_surface_get_array_index_len(RID p_mesh, int p_surface) const=0;
- virtual DVector<uint8_t> mesh_surface_get_array(RID p_mesh, int p_surface) const=0;
- virtual DVector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const=0;
+ virtual PoolVector<uint8_t> mesh_surface_get_array(RID p_mesh, int p_surface) const=0;
+ virtual PoolVector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const=0;
virtual uint32_t mesh_surface_get_format(RID p_mesh, int p_surface) const=0;
virtual VS::PrimitiveType mesh_surface_get_primitive_type(RID p_mesh, int p_surface) const=0;
virtual AABB mesh_surface_get_aabb(RID p_mesh, int p_surface) const=0;
- virtual Vector<DVector<uint8_t> > mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const=0;
+ virtual Vector<PoolVector<uint8_t> > mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const=0;
virtual Vector<AABB> mesh_surface_get_skeleton_aabb(RID p_mesh, int p_surface) const=0;
virtual void mesh_remove_surface(RID p_mesh,int p_index)=0;
@@ -388,7 +388,7 @@ public:
/* ROOM API */
virtual RID room_create()=0;
- virtual void room_add_bounds(RID p_room, const DVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform)=0;
+ virtual void room_add_bounds(RID p_room, const PoolVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform)=0;
virtual void room_clear_bounds(RID p_room)=0;
/* PORTAL API */
@@ -421,8 +421,8 @@ public:
virtual void gi_probe_set_to_cell_xform(RID p_probe,const Transform& p_xform)=0;
virtual Transform gi_probe_get_to_cell_xform(RID p_probe) const=0;
- virtual void gi_probe_set_dynamic_data(RID p_probe,const DVector<int>& p_data)=0;
- virtual DVector<int> gi_probe_get_dynamic_data(RID p_probe) const=0;
+ virtual void gi_probe_set_dynamic_data(RID p_probe,const PoolVector<int>& p_data)=0;
+ virtual PoolVector<int> gi_probe_get_dynamic_data(RID p_probe) const=0;
virtual void gi_probe_set_dynamic_range(RID p_probe,int p_range)=0;
virtual int gi_probe_get_dynamic_range(RID p_probe) const=0;
@@ -467,7 +467,7 @@ public:
virtual void particles_set_emission_shape(RID p_particles,VS::ParticlesEmissionShape p_shape)=0;
virtual void particles_set_emission_sphere_radius(RID p_particles,float p_radius)=0;
virtual void particles_set_emission_box_extents(RID p_particles,const Vector3& p_extents)=0;
- virtual void particles_set_emission_points(RID p_particles,const DVector<Vector3>& p_points)=0;
+ virtual void particles_set_emission_points(RID p_particles,const PoolVector<Vector3>& p_points)=0;
virtual void particles_set_draw_order(RID p_particles,VS::ParticlesDrawOrder p_order)=0;
@@ -506,7 +506,7 @@ public:
/* LIGHT SHADOW MAPPING */
virtual RID canvas_light_occluder_create()=0;
- virtual void canvas_light_occluder_set_polylines(RID p_occluder, const DVector<Vector2>& p_lines)=0;
+ virtual void canvas_light_occluder_set_polylines(RID p_occluder, const PoolVector<Vector2>& p_lines)=0;
virtual VS::InstanceType get_base_type(RID p_rid) const=0;
@@ -1275,8 +1275,8 @@ public:
virtual void particles_set_emission_base_velocity(RID p_particles, const Vector3& p_base_velocity)=0;
virtual Vector3 particles_get_emission_base_velocity(RID p_particles) const=0;
- virtual void particles_set_emission_points(RID p_particles, const DVector<Vector3>& p_points)=0;
- virtual DVector<Vector3> particles_get_emission_points(RID p_particles) const=0;
+ virtual void particles_set_emission_points(RID p_particles, const PoolVector<Vector3>& p_points)=0;
+ virtual PoolVector<Vector3> particles_get_emission_points(RID p_particles) const=0;
virtual void particles_set_gravity_normal(RID p_particles, const Vector3& p_normal)=0;
virtual Vector3 particles_get_gravity_normal(RID p_particles) const=0;
@@ -1876,7 +1876,7 @@ public:
/* LIGHT SHADOW MAPPING */
virtual RID canvas_light_occluder_create()=0;
- virtual void canvas_light_occluder_set_polylines(RID p_occluder, const DVector<Vector2>& p_lines)=0;
+ virtual void canvas_light_occluder_set_polylines(RID p_occluder, const PoolVector<Vector2>& p_lines)=0;
virtual RID canvas_light_shadow_buffer_create(int p_width)=0;
diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp
index f70ce46a3d..8e6345960f 100644
--- a/servers/visual/visual_server_canvas.cpp
+++ b/servers/visual/visual_server_canvas.cpp
@@ -1058,20 +1058,20 @@ RID VisualServerCanvas::canvas_occluder_polygon_create() {
return canvas_light_occluder_polygon_owner.make_rid(occluder_poly);
}
-void VisualServerCanvas::canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const DVector<Vector2>& p_shape,bool p_closed) {
+void VisualServerCanvas::canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape,bool p_closed) {
if (p_shape.size()<3) {
canvas_occluder_polygon_set_shape_as_lines(p_occluder_polygon,p_shape);
return;
}
- DVector<Vector2> lines;
+ PoolVector<Vector2> lines;
int lc = p_shape.size()*2;
lines.resize(lc-(p_closed?0:2));
{
- DVector<Vector2>::Write w = lines.write();
- DVector<Vector2>::Read r = p_shape.read();
+ PoolVector<Vector2>::Write w = lines.write();
+ PoolVector<Vector2>::Read r = p_shape.read();
int max=lc/2;
if (!p_closed) {
@@ -1089,7 +1089,7 @@ void VisualServerCanvas::canvas_occluder_polygon_set_shape(RID p_occluder_polygo
canvas_occluder_polygon_set_shape_as_lines(p_occluder_polygon,lines);
}
-void VisualServerCanvas::canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const DVector<Vector2>& p_shape) {
+void VisualServerCanvas::canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape) {
LightOccluderPolygon * occluder_poly = canvas_light_occluder_polygon_owner.get(p_occluder_polygon);
ERR_FAIL_COND(!occluder_poly);
@@ -1098,7 +1098,7 @@ void VisualServerCanvas::canvas_occluder_polygon_set_shape_as_lines(RID p_occlud
int lc = p_shape.size();
occluder_poly->aabb=Rect2();
{
- DVector<Vector2>::Read r = p_shape.read();
+ PoolVector<Vector2>::Read r = p_shape.read();
for(int i=0;i<lc;i++) {
if (i==0)
occluder_poly->aabb.pos=r[i];
diff --git a/servers/visual/visual_server_canvas.h b/servers/visual/visual_server_canvas.h
index e1edc47f9f..4a5091e754 100644
--- a/servers/visual/visual_server_canvas.h
+++ b/servers/visual/visual_server_canvas.h
@@ -201,8 +201,8 @@ public:
void canvas_light_occluder_set_light_mask(RID p_occluder,int p_mask);
RID canvas_occluder_polygon_create();
- void canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const DVector<Vector2>& p_shape,bool p_closed);
- void canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const DVector<Vector2>& p_shape);
+ void canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape,bool p_closed);
+ void canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape);
void canvas_occluder_polygon_set_cull_mode(RID p_occluder_polygon,VS::CanvasOccluderPolygonCullMode p_mode);
diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp
index 58cfab3b97..3262479c43 100644
--- a/servers/visual/visual_server_raster.cpp
+++ b/servers/visual/visual_server_raster.cpp
@@ -819,13 +819,13 @@ Vector3 VisualServerRaster::particles_get_emission_base_velocity(RID p_particles
return rasterizer->particles_get_emission_base_velocity(p_particles);
}
-void VisualServerRaster::particles_set_emission_points(RID p_particles, const DVector<Vector3>& p_points) {
+void VisualServerRaster::particles_set_emission_points(RID p_particles, const PoolVector<Vector3>& p_points) {
VS_CHANGED;
rasterizer->particles_set_emission_points(p_particles,p_points);
}
-DVector<Vector3> VisualServerRaster::particles_get_emission_points(RID p_particles) const {
+PoolVector<Vector3> VisualServerRaster::particles_get_emission_points(RID p_particles) const {
return rasterizer->particles_get_emission_points(p_particles);
}
@@ -1279,7 +1279,7 @@ float VisualServerRaster::baked_light_get_lightmap_multiplier(RID p_baked_light)
}
-void VisualServerRaster::baked_light_set_octree(RID p_baked_light,const DVector<uint8_t> p_octree){
+void VisualServerRaster::baked_light_set_octree(RID p_baked_light,const PoolVector<uint8_t> p_octree){
VS_CHANGED;
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
@@ -1301,7 +1301,7 @@ void VisualServerRaster::baked_light_set_octree(RID p_baked_light,const DVector<
bool has_light_tex=false;
{
- DVector<uint8_t>::Read r=p_octree.read();
+ PoolVector<uint8_t>::Read r=p_octree.read();
tex_w = decode_uint32(&r[0]);
tex_h = decode_uint32(&r[4]);
print_line("TEX W: "+itos(tex_w)+" TEX H:"+itos(tex_h)+" LEN: "+itos(p_octree.size()));
@@ -1386,22 +1386,22 @@ void VisualServerRaster::baked_light_set_octree(RID p_baked_light,const DVector<
}
-DVector<uint8_t> VisualServerRaster::baked_light_get_octree(RID p_baked_light) const{
+PoolVector<uint8_t> VisualServerRaster::baked_light_get_octree(RID p_baked_light) const{
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
- ERR_FAIL_COND_V(!baked_light,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!baked_light,PoolVector<uint8_t>());
if (rasterizer->is_texture(baked_light->data.octree_texture)) {
Image img = rasterizer->texture_get_data(baked_light->data.octree_texture);
return img.get_data();
} else {
- return DVector<uint8_t>();
+ return PoolVector<uint8_t>();
}
}
-void VisualServerRaster::baked_light_set_light(RID p_baked_light,const DVector<uint8_t> p_light) {
+void VisualServerRaster::baked_light_set_light(RID p_baked_light,const PoolVector<uint8_t> p_light) {
VS_CHANGED;
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
@@ -1425,23 +1425,23 @@ void VisualServerRaster::baked_light_set_light(RID p_baked_light,const DVector<u
}
-DVector<uint8_t> VisualServerRaster::baked_light_get_light(RID p_baked_light) const{
+PoolVector<uint8_t> VisualServerRaster::baked_light_get_light(RID p_baked_light) const{
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
- ERR_FAIL_COND_V(!baked_light,DVector<uint8_t>());
+ ERR_FAIL_COND_V(!baked_light,PoolVector<uint8_t>());
if (rasterizer->is_texture(baked_light->data.light_texture)) {
Image img = rasterizer->texture_get_data(baked_light->data.light_texture);
return img.get_data();
} else {
- return DVector<uint8_t>();
+ return PoolVector<uint8_t>();
}
}
-void VisualServerRaster::baked_light_set_sampler_octree(RID p_baked_light, const DVector<int> &p_sampler) {
+void VisualServerRaster::baked_light_set_sampler_octree(RID p_baked_light, const PoolVector<int> &p_sampler) {
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
ERR_FAIL_COND(!baked_light);
@@ -1452,10 +1452,10 @@ void VisualServerRaster::baked_light_set_sampler_octree(RID p_baked_light, const
}
-DVector<int> VisualServerRaster::baked_light_get_sampler_octree(RID p_baked_light) const {
+PoolVector<int> VisualServerRaster::baked_light_get_sampler_octree(RID p_baked_light) const {
BakedLight *baked_light = baked_light_owner.get(p_baked_light);
- ERR_FAIL_COND_V(!baked_light,DVector<int>());
+ ERR_FAIL_COND_V(!baked_light,PoolVector<int>());
return baked_light->sampler;
@@ -4466,20 +4466,20 @@ RID VisualServerRaster::canvas_occluder_polygon_create() {
}
-void VisualServerRaster::canvas_occluder_polygon_set_shape(RID p_occluder_polygon, const DVector<Vector2>& p_shape, bool p_close){
+void VisualServerRaster::canvas_occluder_polygon_set_shape(RID p_occluder_polygon, const PoolVector<Vector2>& p_shape, bool p_close){
if (p_shape.size()<3) {
canvas_occluder_polygon_set_shape_as_lines(p_occluder_polygon,p_shape);
return;
}
- DVector<Vector2> lines;
+ PoolVector<Vector2> lines;
int lc = p_shape.size()*2;
lines.resize(lc-(p_close?0:2));
{
- DVector<Vector2>::Write w = lines.write();
- DVector<Vector2>::Read r = p_shape.read();
+ PoolVector<Vector2>::Write w = lines.write();
+ PoolVector<Vector2>::Read r = p_shape.read();
int max=lc/2;
if (!p_close) {
@@ -4498,7 +4498,7 @@ void VisualServerRaster::canvas_occluder_polygon_set_shape(RID p_occluder_polygo
canvas_occluder_polygon_set_shape_as_lines(p_occluder_polygon,lines);
}
-void VisualServerRaster::canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const DVector<Vector2>& p_shape) {
+void VisualServerRaster::canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape) {
CanvasLightOccluderPolygon * occluder_poly = canvas_light_occluder_polygon_owner.get(p_occluder_polygon);
ERR_FAIL_COND(!occluder_poly);
@@ -4507,7 +4507,7 @@ void VisualServerRaster::canvas_occluder_polygon_set_shape_as_lines(RID p_occlud
int lc = p_shape.size();
occluder_poly->aabb=Rect2();
{
- DVector<Vector2>::Read r = p_shape.read();
+ PoolVector<Vector2>::Read r = p_shape.read();
for(int i=0;i<lc;i++) {
if (i==0)
occluder_poly->aabb.pos=r[i];
@@ -6338,7 +6338,7 @@ void VisualServerRaster::_process_sampled_light(const Transform& p_camera,Instan
AABB sample_aabb= bl->data.transform.affine_inverse().xform(AABB(Vector3(-r,-r,-r)+p_sampled_light->data.transform.origin,Vector3(r*2,r*2,r*2)));
//ok got octree local AABB
- DVector<int>::Read rp = bl->baked_light_info->baked_light->sampler.read();
+ PoolVector<int>::Read rp = bl->baked_light_info->baked_light->sampler.read();
const int *rptr = rp.ptr();
int first = rptr[1];
diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h
index 0f75d7ab8b..5fb71aa0f5 100644
--- a/servers/visual/visual_server_raster.h
+++ b/servers/visual/visual_server_raster.h
@@ -103,7 +103,7 @@ class VisualServerRaster : public VisualServer {
struct BakedLight {
Rasterizer::BakedLightData data;
- DVector<int> sampler;
+ PoolVector<int> sampler;
AABB octree_aabb;
Size2i octree_tex_size;
Size2i light_tex_size;
@@ -671,7 +671,7 @@ public:
BIND0R(RID,mesh_create)
- BIND10(mesh_add_surface,RID,uint32_t,PrimitiveType,const DVector<uint8_t>&,int ,const DVector<uint8_t>& ,int ,const AABB&,const Vector<DVector<uint8_t> >&,const Vector<AABB>& )
+ BIND10(mesh_add_surface,RID,uint32_t,PrimitiveType,const PoolVector<uint8_t>&,int ,const PoolVector<uint8_t>& ,int ,const AABB&,const Vector<PoolVector<uint8_t> >&,const Vector<AABB>& )
BIND2(mesh_set_morph_target_count,RID,int)
BIND1RC(int,mesh_get_morph_target_count,RID)
@@ -686,14 +686,14 @@ public:
BIND2RC(int,mesh_surface_get_array_len,RID,int)
BIND2RC(int,mesh_surface_get_array_index_len,RID,int)
- BIND2RC(DVector<uint8_t>,mesh_surface_get_array,RID,int)
- BIND2RC(DVector<uint8_t>,mesh_surface_get_index_array,RID, int)
+ BIND2RC(PoolVector<uint8_t>,mesh_surface_get_array,RID,int)
+ BIND2RC(PoolVector<uint8_t>,mesh_surface_get_index_array,RID, int)
BIND2RC(uint32_t,mesh_surface_get_format,RID,int)
BIND2RC(PrimitiveType,mesh_surface_get_primitive_type,RID,int)
BIND2RC(AABB,mesh_surface_get_aabb,RID,int)
- BIND2RC(Vector<DVector<uint8_t> >,mesh_surface_get_blend_shapes,RID,int)
+ BIND2RC(Vector<PoolVector<uint8_t> >,mesh_surface_get_blend_shapes,RID,int)
BIND2RC(Vector<AABB>,mesh_surface_get_skeleton_aabb,RID,int)
BIND2(mesh_remove_surface,RID,int)
@@ -791,7 +791,7 @@ public:
/* ROOM API */
BIND0R(RID,room_create)
- BIND4(room_add_bounds,RID, const DVector<Vector2>& ,float ,const Transform& )
+ BIND4(room_add_bounds,RID, const PoolVector<Vector2>& ,float ,const Transform& )
BIND1(room_clear_bounds,RID)
/* PORTAL API */
@@ -830,8 +830,8 @@ public:
BIND2(gi_probe_set_compress,RID,bool)
BIND1RC(bool,gi_probe_is_compressed,RID)
- BIND2(gi_probe_set_dynamic_data,RID,const DVector<int>& )
- BIND1RC( DVector<int>,gi_probe_get_dynamic_data,RID)
+ BIND2(gi_probe_set_dynamic_data,RID,const PoolVector<int>& )
+ BIND1RC( PoolVector<int>,gi_probe_get_dynamic_data,RID)
/* PARTICLES */
@@ -851,7 +851,7 @@ public:
BIND2(particles_set_emission_shape,RID,VS::ParticlesEmissionShape )
BIND2(particles_set_emission_sphere_radius,RID,float )
BIND2(particles_set_emission_box_extents,RID,const Vector3& )
- BIND2(particles_set_emission_points,RID,const DVector<Vector3>& )
+ BIND2(particles_set_emission_points,RID,const PoolVector<Vector3>& )
BIND2(particles_set_draw_order,RID,VS::ParticlesDrawOrder )
@@ -1088,8 +1088,8 @@ public:
BIND0R(RID,canvas_occluder_polygon_create)
- BIND3(canvas_occluder_polygon_set_shape,RID,const DVector<Vector2>& ,bool)
- BIND2(canvas_occluder_polygon_set_shape_as_lines,RID ,const DVector<Vector2>&)
+ BIND3(canvas_occluder_polygon_set_shape,RID,const PoolVector<Vector2>& ,bool)
+ BIND2(canvas_occluder_polygon_set_shape_as_lines,RID ,const PoolVector<Vector2>&)
BIND2(canvas_occluder_polygon_set_cull_mode,RID,CanvasOccluderPolygonCullMode)
diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp
index 816d423034..0f789d9695 100644
--- a/servers/visual/visual_server_scene.cpp
+++ b/servers/visual/visual_server_scene.cpp
@@ -2423,14 +2423,14 @@ void VisualServerScene::_setup_gi_probe(Instance *p_instance) {
if (probe->dynamic.light_data.size()==0)
return;
//using dynamic data
- DVector<int>::Read r=probe->dynamic.light_data.read();
+ PoolVector<int>::Read r=probe->dynamic.light_data.read();
const GIProbeDataHeader *header = (GIProbeDataHeader *)r.ptr();
probe->dynamic.local_data.resize(header->cell_count);
int cell_count = probe->dynamic.local_data.size();
- DVector<InstanceGIProbeData::LocalData>::Write ldw = probe->dynamic.local_data.write();
+ PoolVector<InstanceGIProbeData::LocalData>::Write ldw = probe->dynamic.local_data.write();
const GIProbeDataCell *cells = (GIProbeDataCell*)&r[16];
probe->dynamic.level_cell_lists.resize(header->cell_subdiv);
@@ -2466,13 +2466,13 @@ void VisualServerScene::_setup_gi_probe(Instance *p_instance) {
uint32_t z = header->depth >> i;
//create and clear mipmap
- DVector<uint8_t> mipmap;
+ PoolVector<uint8_t> mipmap;
int size = x*y*z*4;
size/=size_divisor;
mipmap.resize(size);
- DVector<uint8_t>::Write w = mipmap.write();
+ PoolVector<uint8_t>::Write w = mipmap.write();
zeromem(w.ptr(),size);
- w = DVector<uint8_t>::Write();
+ w = PoolVector<uint8_t>::Write();
probe->dynamic.mipmaps_3d.push_back(mipmap);
@@ -2547,7 +2547,7 @@ void VisualServerScene::_setup_gi_probe(Instance *p_instance) {
for(int i=0;i<mipmap_count;i++) {
print_line("S3TC level: "+itos(i)+" blocks: "+itos(comp_blocks[i].size()));
probe->dynamic.mipmaps_s3tc[i].resize(comp_blocks[i].size());
- DVector<InstanceGIProbeData::CompBlockS3TC>::Write w = probe->dynamic.mipmaps_s3tc[i].write();
+ PoolVector<InstanceGIProbeData::CompBlockS3TC>::Write w = probe->dynamic.mipmaps_s3tc[i].write();
int block_idx=0;
for (Map<uint32_t,InstanceGIProbeData::CompBlockS3TC>::Element *E=comp_blocks[i].front();E;E=E->next()) {
@@ -2979,7 +2979,7 @@ void VisualServerScene::_bake_gi_probe(Instance *p_gi_probe) {
InstanceGIProbeData * probe_data = static_cast<InstanceGIProbeData*>(p_gi_probe->base_data);
- DVector<int>::Read r=probe_data->dynamic.light_data.read();
+ PoolVector<int>::Read r=probe_data->dynamic.light_data.read();
const GIProbeDataHeader *header = (const GIProbeDataHeader *)r.ptr();
const GIProbeDataCell *cells = (const GIProbeDataCell*)&r[16];
@@ -2987,7 +2987,7 @@ void VisualServerScene::_bake_gi_probe(Instance *p_gi_probe) {
int leaf_count = probe_data->dynamic.level_cell_lists[ header->cell_subdiv -1 ].size();
const uint32_t *leaves = probe_data->dynamic.level_cell_lists[ header->cell_subdiv -1 ].ptr();
- DVector<InstanceGIProbeData::LocalData>::Write ldw = probe_data->dynamic.local_data.write();
+ PoolVector<InstanceGIProbeData::LocalData>::Write ldw = probe_data->dynamic.local_data.write();
InstanceGIProbeData::LocalData *local_data = ldw.ptr();
@@ -3039,7 +3039,7 @@ void VisualServerScene::_bake_gi_probe(Instance *p_gi_probe) {
int level_cell_count = probe_data->dynamic.level_cell_lists[ i ].size();
const uint32_t *level_cells = probe_data->dynamic.level_cell_lists[ i ].ptr();
- DVector<uint8_t>::Write lw = probe_data->dynamic.mipmaps_3d[stage].write();
+ PoolVector<uint8_t>::Write lw = probe_data->dynamic.mipmaps_3d[stage].write();
uint8_t *mipmapw = lw.ptr();
uint32_t sizes[3]={header->width>>stage,header->height>>stage,header->depth>>stage};
@@ -3071,9 +3071,9 @@ void VisualServerScene::_bake_gi_probe(Instance *p_gi_probe) {
for(int mmi=0;mmi<mipmap_count;mmi++) {
- DVector<uint8_t>::Write mmw = probe_data->dynamic.mipmaps_3d[mmi].write();
+ PoolVector<uint8_t>::Write mmw = probe_data->dynamic.mipmaps_3d[mmi].write();
int block_count = probe_data->dynamic.mipmaps_s3tc[mmi].size();
- DVector<InstanceGIProbeData::CompBlockS3TC>::Read mmr = probe_data->dynamic.mipmaps_s3tc[mmi].read();
+ PoolVector<InstanceGIProbeData::CompBlockS3TC>::Read mmr = probe_data->dynamic.mipmaps_s3tc[mmi].read();
for(int i=0;i<block_count;i++) {
@@ -3368,7 +3368,7 @@ void VisualServerScene::render_probes() {
for(int i=0;i<(int)probe->dynamic.mipmaps_3d.size();i++) {
int mmsize = probe->dynamic.mipmaps_3d[i].size();
- DVector<uint8_t>::Read r = probe->dynamic.mipmaps_3d[i].read();
+ PoolVector<uint8_t>::Read r = probe->dynamic.mipmaps_3d[i].read();
VSG::storage->gi_probe_dynamic_data_update(probe->dynamic.probe_data,0,probe->dynamic.grid_size[2]>>i,i,r.ptr());
}
diff --git a/servers/visual/visual_server_scene.h b/servers/visual/visual_server_scene.h
index 300db1b41c..ac272467b4 100644
--- a/servers/visual/visual_server_scene.h
+++ b/servers/visual/visual_server_scene.h
@@ -45,7 +45,7 @@ public:
struct BakedLight {
Rasterizer::BakedLightData data;
- DVector<int> sampler;
+ PoolVector<int> sampler;
AABB octree_aabb;
Size2i octree_tex_size;
Size2i light_tex_size;
@@ -433,16 +433,16 @@ public:
Map<RID,LightCache> light_cache;
Map<RID,LightCache> light_cache_changes;
- DVector<int> light_data;
- DVector<LocalData> local_data;
+ PoolVector<int> light_data;
+ PoolVector<LocalData> local_data;
Vector<Vector<uint32_t> > level_cell_lists;
RID probe_data;
bool enabled;
int bake_dynamic_range;
RasterizerStorage::GIProbeCompression compression;
- Vector< DVector<uint8_t> > mipmaps_3d;
- Vector< DVector<CompBlockS3TC> > mipmaps_s3tc; //for s3tc
+ Vector< PoolVector<uint8_t> > mipmaps_3d;
+ Vector< PoolVector<CompBlockS3TC> > mipmaps_s3tc; //for s3tc
int updating_stage;
diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp
index 3e6c30d6f5..9de17dc431 100644
--- a/servers/visual_server.cpp
+++ b/servers/visual_server.cpp
@@ -40,11 +40,11 @@ VisualServer *VisualServer::get_singleton() {
-DVector<String> VisualServer::_shader_get_param_list(RID p_shader) const {
+PoolVector<String> VisualServer::_shader_get_param_list(RID p_shader) const {
//remove at some point
- DVector<String> pl;
+ PoolVector<String> pl;
#if 0
@@ -90,11 +90,11 @@ RID VisualServer::get_test_texture() {
#define TEST_TEXTURE_SIZE 256
- DVector<uint8_t> test_data;
+ PoolVector<uint8_t> test_data;
test_data.resize(TEST_TEXTURE_SIZE*TEST_TEXTURE_SIZE*3);
{
- DVector<uint8_t>::Write w=test_data.write();
+ PoolVector<uint8_t>::Write w=test_data.write();
for (int x=0;x<TEST_TEXTURE_SIZE;x++) {
@@ -150,10 +150,10 @@ void VisualServer::_free_internal_rids() {
RID VisualServer::_make_test_cube() {
- 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);\
@@ -211,7 +211,7 @@ RID VisualServer::_make_test_cube() {
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);
@@ -238,8 +238,8 @@ RID VisualServer::_make_test_cube() {
RID VisualServer::make_sphere_mesh(int p_lats,int p_lons,float p_radius) {
- DVector<Vector3> vertices;
- DVector<Vector3> normals;
+ PoolVector<Vector3> vertices;
+ PoolVector<Vector3> normals;
for(int i = 1; i <= p_lats; i++) {
double lat0 = Math_PI * (-0.5 + (double) (i - 1) / p_lats);
@@ -329,10 +329,10 @@ RID VisualServer::get_white_texture() {
if (white_texture.is_valid())
return white_texture;
- DVector<uint8_t> wt;
+ PoolVector<uint8_t> wt;
wt.resize(16*3);
{
- DVector<uint8_t>::Write w =wt.write();
+ PoolVector<uint8_t>::Write w =wt.write();
for(int i=0;i<16*3;i++)
w[i]=255;
}
@@ -345,13 +345,16 @@ RID VisualServer::get_white_texture() {
}
-Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t *p_offsets,uint32_t p_stride,DVector<uint8_t> &r_vertex_array,int p_vertex_array_len,DVector<uint8_t> &r_index_array,int p_index_array_len,AABB &r_aabb,Vector<AABB> r_bone_aabb) {
+Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t *p_offsets,uint32_t p_stride,PoolVector<uint8_t> &r_vertex_array,int p_vertex_array_len,PoolVector<uint8_t> &r_index_array,int p_index_array_len,AABB &r_aabb,Vector<AABB> r_bone_aabb) {
- DVector<uint8_t>::Write vw = r_vertex_array.write();
+ PoolVector<uint8_t>::Write vw = r_vertex_array.write();
- DVector<uint8_t>::Write iw;
+ PoolVector<uint8_t>::Write iw;
if (r_index_array.size()) {
+ print_line("elements: "+itos(r_index_array.size()));
+
iw=r_index_array.write();
+
}
int max_bone=0;
@@ -369,11 +372,11 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
if (p_format& VS::ARRAY_FLAG_USE_2D_VERTICES) {
- DVector<Vector2> array = p_arrays[ai];
+ PoolVector<Vector2> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len, ERR_INVALID_PARAMETER );
- DVector<Vector2>::Read read = array.read();
+ PoolVector<Vector2>::Read read = array.read();
const Vector2* src=read.ptr();
// setting vertices means regenerating the AABB
@@ -421,11 +424,11 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
} else {
- DVector<Vector3> array = p_arrays[ai];
+ PoolVector<Vector3> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len, ERR_INVALID_PARAMETER );
- DVector<Vector3>::Read read = array.read();
+ PoolVector<Vector3>::Read read = array.read();
const Vector3* src=read.ptr();
// setting vertices means regenerating the AABB
@@ -479,11 +482,11 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::VECTOR3_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Vector3> array = p_arrays[ai];
+ PoolVector<Vector3> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len, ERR_INVALID_PARAMETER );
- DVector<Vector3>::Read read = array.read();
+ PoolVector<Vector3>::Read read = array.read();
const Vector3* src=read.ptr();
// setting vertices means regenerating the AABB
@@ -519,12 +522,12 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::REAL_ARRAY, ERR_INVALID_PARAMETER );
- DVector<real_t> array = p_arrays[ai];
+ PoolVector<real_t> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len*4, ERR_INVALID_PARAMETER );
- DVector<real_t>::Read read = array.read();
+ PoolVector<real_t>::Read read = array.read();
const real_t* src = read.ptr();
if (p_format&ARRAY_COMPRESS_TANGENT) {
@@ -564,12 +567,12 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::COLOR_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Color> array = p_arrays[ai];
+ PoolVector<Color> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len, ERR_INVALID_PARAMETER );
- DVector<Color>::Read read = array.read();
+ PoolVector<Color>::Read read = array.read();
const Color* src = read.ptr();
if (p_format&ARRAY_COMPRESS_COLOR) {
@@ -603,11 +606,11 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::VECTOR3_ARRAY && p_arrays[ai].get_type() != Variant::VECTOR2_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Vector2> array = p_arrays[ai];
+ PoolVector<Vector2> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len , ERR_INVALID_PARAMETER);
- DVector<Vector2>::Read read = array.read();
+ PoolVector<Vector2>::Read read = array.read();
const Vector2 * src=read.ptr();
@@ -639,11 +642,11 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::VECTOR3_ARRAY && p_arrays[ai].get_type() != Variant::VECTOR2_ARRAY, ERR_INVALID_PARAMETER );
- DVector<Vector2> array = p_arrays[ai];
+ PoolVector<Vector2> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len , ERR_INVALID_PARAMETER);
- DVector<Vector2>::Read read = array.read();
+ PoolVector<Vector2>::Read read = array.read();
const Vector2 * src=read.ptr();
@@ -671,12 +674,12 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::REAL_ARRAY, ERR_INVALID_PARAMETER );
- DVector<real_t> array = p_arrays[ai];
+ PoolVector<real_t> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len*VS::ARRAY_WEIGHTS_SIZE, ERR_INVALID_PARAMETER );
- DVector<real_t>::Read read = array.read();
+ PoolVector<real_t>::Read read = array.read();
const real_t * src = read.ptr();
@@ -711,12 +714,12 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::INT_ARRAY, ERR_INVALID_PARAMETER );
- DVector<int> array = p_arrays[ai];
+ PoolVector<int> array = p_arrays[ai];
ERR_FAIL_COND_V( array.size() != p_vertex_array_len*VS::ARRAY_WEIGHTS_SIZE, ERR_INVALID_PARAMETER );
- DVector<int>::Read read = array.read();
+ PoolVector<int>::Read read = array.read();
const int * src = read.ptr();
@@ -761,13 +764,13 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
ERR_FAIL_COND_V( p_index_array_len<=0, ERR_INVALID_DATA );
ERR_FAIL_COND_V( p_arrays[ai].get_type() != Variant::INT_ARRAY, ERR_INVALID_PARAMETER );
- DVector<int> indices = p_arrays[ai];
+ PoolVector<int> indices = p_arrays[ai];
ERR_FAIL_COND_V( indices.size() == 0, ERR_INVALID_PARAMETER );
ERR_FAIL_COND_V( indices.size() != p_index_array_len, ERR_INVALID_PARAMETER );
/* determine wether using 16 or 32 bits indices */
- DVector<int>::Read read = indices.read();
+ PoolVector<int>::Read read = indices.read();
const int *src=read.ptr();
for (int i=0;i<p_index_array_len;i++) {
@@ -805,18 +808,18 @@ Error VisualServer::_surface_set_data(Array p_arrays,uint32_t p_format,uint32_t
}
}
- DVector<Vector3> vertices = p_arrays[VS::ARRAY_VERTEX];
- DVector<int> bones = p_arrays[VS::ARRAY_BONES];
- DVector<float> weights = p_arrays[VS::ARRAY_WEIGHTS];
+ PoolVector<Vector3> vertices = p_arrays[VS::ARRAY_VERTEX];
+ PoolVector<int> bones = p_arrays[VS::ARRAY_BONES];
+ PoolVector<float> weights = p_arrays[VS::ARRAY_WEIGHTS];
bool any_valid=false;
if (vertices.size() && bones.size()==vertices.size()*4 && weights.size()==bones.size()) {
int vs = vertices.size();
- DVector<Vector3>::Read rv =vertices.read();
- DVector<int>::Read rb=bones.read();
- DVector<float>::Read rw=weights.read();
+ PoolVector<Vector3>::Read rv =vertices.read();
+ PoolVector<int>::Read rb=bones.read();
+ PoolVector<float>::Read rw=weights.read();
AABB *bptr = r_bone_aabb.ptr();
@@ -875,11 +878,11 @@ void VisualServer::mesh_add_surface_from_arrays(RID p_mesh,PrimitiveType p_primi
Variant var = p_arrays[i];
switch(var.get_type()) {
case Variant::VECTOR2_ARRAY: {
- DVector<Vector2> v2 = var;
+ PoolVector<Vector2> v2 = var;
array_len=v2.size();
} break;
case Variant::VECTOR3_ARRAY: {
- DVector<Vector3> v3 = var;
+ PoolVector<Vector3> v3 = var;
array_len=v3.size();
} break;
default: {
@@ -1012,12 +1015,12 @@ void VisualServer::mesh_add_surface_from_arrays(RID p_mesh,PrimitiveType p_primi
} break;
case VS::ARRAY_BONES: {
- DVector<int> bones = p_arrays[VS::ARRAY_BONES];
+ PoolVector<int> bones = p_arrays[VS::ARRAY_BONES];
int max_bone=0;
{
int bc = bones.size();
- DVector<int>::Read r=bones.read();
+ PoolVector<int>::Read r=bones.read();
for(int j=0;j<bc;j++) {
max_bone=MAX(r[j],max_bone);
}
@@ -1067,12 +1070,12 @@ void VisualServer::mesh_add_surface_from_arrays(RID p_mesh,PrimitiveType p_primi
int array_size = total_elem_size * array_len;
- DVector<uint8_t> vertex_array;
+ PoolVector<uint8_t> vertex_array;
vertex_array.resize(array_size);
int index_array_size = offsets[VS::ARRAY_INDEX]*index_array_len;
- DVector<uint8_t> index_array;
+ PoolVector<uint8_t> index_array;
index_array.resize(index_array_size);
AABB aabb;
@@ -1085,13 +1088,13 @@ void VisualServer::mesh_add_surface_from_arrays(RID p_mesh,PrimitiveType p_primi
ERR_FAIL_COND(err!=OK);
}
- Vector<DVector<uint8_t> > blend_shape_data;
+ Vector<PoolVector<uint8_t> > blend_shape_data;
for(int i=0;i<p_blend_shapes.size();i++) {
- DVector<uint8_t> vertex_array_shape;
+ PoolVector<uint8_t> vertex_array_shape;
vertex_array_shape.resize(array_size);
- DVector<uint8_t> noindex;
+ PoolVector<uint8_t> noindex;
AABB laabb;
Error err = _surface_set_data(p_blend_shapes[i],format&~ARRAY_FORMAT_INDEX,offsets,total_elem_size,vertex_array_shape,array_len,noindex,0,laabb,bone_aabb);
@@ -1108,7 +1111,7 @@ void VisualServer::mesh_add_surface_from_arrays(RID p_mesh,PrimitiveType p_primi
}
-Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p_vertex_data,int p_vertex_len,DVector<uint8_t> p_index_data,int p_index_len) const {
+Array VisualServer::_get_array_from_surface(uint32_t p_format,PoolVector<uint8_t> p_vertex_data,int p_vertex_len,PoolVector<uint8_t> p_index_data,int p_index_len) const {
uint32_t offsets[ARRAY_MAX];
@@ -1240,7 +1243,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
Array ret;
ret.resize(VS::ARRAY_MAX);
- DVector<uint8_t>::Read r = p_vertex_data.read();
+ PoolVector<uint8_t>::Read r = p_vertex_data.read();
for(int i=0;i<VS::ARRAY_MAX;i++) {
@@ -1255,12 +1258,12 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
if (p_format&ARRAY_FLAG_USE_2D_VERTICES) {
- DVector<Vector2> arr_2d;
+ PoolVector<Vector2> arr_2d;
arr_2d.resize(p_vertex_len);
if (p_format&ARRAY_COMPRESS_VERTEX) {
- DVector<Vector2>::Write w = arr_2d.write();
+ PoolVector<Vector2>::Write w = arr_2d.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1269,7 +1272,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
}
} else {
- DVector<Vector2>::Write w = arr_2d.write();
+ PoolVector<Vector2>::Write w = arr_2d.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1281,12 +1284,12 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
ret[i]=arr_2d;
} else {
- DVector<Vector3> arr_3d;
+ PoolVector<Vector3> arr_3d;
arr_3d.resize(p_vertex_len);
if (p_format&ARRAY_COMPRESS_VERTEX) {
- DVector<Vector3>::Write w = arr_3d.write();
+ PoolVector<Vector3>::Write w = arr_3d.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1295,7 +1298,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
}
} else {
- DVector<Vector3>::Write w = arr_3d.write();
+ PoolVector<Vector3>::Write w = arr_3d.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1310,12 +1313,12 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
} break;
case VS::ARRAY_NORMAL: {
- DVector<Vector3> arr;
+ PoolVector<Vector3> arr;
arr.resize(p_vertex_len);
if (p_format&ARRAY_COMPRESS_NORMAL) {
- DVector<Vector3>::Write w = arr.write();
+ PoolVector<Vector3>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1323,7 +1326,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
w[j]=Vector3( float(v[0]/255.0)*2.0-1.0, float(v[1]/255.0)*2.0-1.0, float(v[2]/255.0)*2.0-1.0 );
}
} else {
- DVector<Vector3>::Write w = arr.write();
+ PoolVector<Vector3>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1337,10 +1340,10 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
} break;
case VS::ARRAY_TANGENT: {
- DVector<float> arr;
+ PoolVector<float> arr;
arr.resize(p_vertex_len*4);
if (p_format&ARRAY_COMPRESS_TANGENT) {
- DVector<float>::Write w = arr.write();
+ PoolVector<float>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1351,7 +1354,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
}
} else {
- DVector<float>::Write w = arr.write();
+ PoolVector<float>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
const float *v = (const float*)&r[j*total_elem_size+offsets[i]];
@@ -1367,12 +1370,12 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
} break;
case VS::ARRAY_COLOR: {
- DVector<Color> arr;
+ PoolVector<Color> arr;
arr.resize(p_vertex_len);
if (p_format&ARRAY_COMPRESS_COLOR) {
- DVector<Color>::Write w = arr.write();
+ PoolVector<Color>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1380,7 +1383,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
w[j]=Color( float(v[0]/255.0)*2.0-1.0, float(v[1]/255.0)*2.0-1.0, float(v[2]/255.0)*2.0-1.0, float(v[3]/255.0)*2.0-1.0 );
}
} else {
- DVector<Color>::Write w = arr.write();
+ PoolVector<Color>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1393,12 +1396,12 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
} break;
case VS::ARRAY_TEX_UV: {
- DVector<Vector2> arr;
+ PoolVector<Vector2> arr;
arr.resize(p_vertex_len);
if (p_format&ARRAY_COMPRESS_TEX_UV) {
- DVector<Vector2>::Write w = arr.write();
+ PoolVector<Vector2>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1407,7 +1410,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
}
} else {
- DVector<Vector2>::Write w = arr.write();
+ PoolVector<Vector2>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1420,12 +1423,12 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
} break;
case VS::ARRAY_TEX_UV2: {
- DVector<Vector2> arr;
+ PoolVector<Vector2> arr;
arr.resize(p_vertex_len);
if (p_format&ARRAY_COMPRESS_TEX_UV2) {
- DVector<Vector2>::Write w = arr.write();
+ PoolVector<Vector2>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1434,7 +1437,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
}
} else {
- DVector<Vector2>::Write w = arr.write();
+ PoolVector<Vector2>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1448,10 +1451,10 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
} break;
case VS::ARRAY_WEIGHTS: {
- DVector<float> arr;
+ PoolVector<float> arr;
arr.resize(p_vertex_len*4);
if (p_format&ARRAY_COMPRESS_WEIGHTS) {
- DVector<float>::Write w = arr.write();
+ PoolVector<float>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1462,7 +1465,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
}
} else {
- DVector<float>::Write w = arr.write();
+ PoolVector<float>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
const float *v = (const float*)&r[j*total_elem_size+offsets[i]];
@@ -1478,11 +1481,11 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
} break;
case VS::ARRAY_BONES: {
- DVector<int> arr;
+ PoolVector<int> arr;
arr.resize(p_vertex_len*4);
if (p_format&ARRAY_FLAG_USE_16_BIT_BONES) {
- DVector<int>::Write w = arr.write();
+ PoolVector<int>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
@@ -1493,7 +1496,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
}
} else {
- DVector<int>::Write w = arr.write();
+ PoolVector<int>::Write w = arr.write();
for(int j=0;j<p_vertex_len;j++) {
const uint8_t *v = (const uint8_t*)&r[j*total_elem_size+offsets[i]];
@@ -1510,13 +1513,13 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
case VS::ARRAY_INDEX: {
/* determine wether using 16 or 32 bits indices */
- DVector<uint8_t>::Read ir = p_index_data.read();
+ PoolVector<uint8_t>::Read ir = p_index_data.read();
- DVector<int> arr;
+ PoolVector<int> arr;
arr.resize(p_index_len);
if (p_vertex_len<(1<<16)) {
- DVector<int>::Write w = arr.write();
+ PoolVector<int>::Write w = arr.write();
for(int j=0;j<p_index_len;j++) {
@@ -1525,7 +1528,7 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
}
} else {
- DVector<int>::Write w = arr.write();
+ PoolVector<int>::Write w = arr.write();
for(int j=0;j<p_index_len;j++) {
const int *v = (const int*)&ir[j*4];
@@ -1546,11 +1549,11 @@ Array VisualServer::_get_array_from_surface(uint32_t p_format,DVector<uint8_t> p
Array VisualServer::mesh_surface_get_arrays(RID p_mesh,int p_surface) const {
- DVector<uint8_t> vertex_data = mesh_surface_get_array(p_mesh,p_surface);
+ PoolVector<uint8_t> vertex_data = mesh_surface_get_array(p_mesh,p_surface);
ERR_FAIL_COND_V(vertex_data.size()==0,Array());
int vertex_len = mesh_surface_get_array_len(p_mesh,p_surface);
- DVector<uint8_t> index_data = mesh_surface_get_index_array(p_mesh,p_surface);
+ PoolVector<uint8_t> index_data = mesh_surface_get_index_array(p_mesh,p_surface);
int index_len = mesh_surface_get_array_index_len(p_mesh,p_surface);
uint32_t format = mesh_surface_get_format(p_mesh,p_surface);
@@ -1598,8 +1601,8 @@ void VisualServer::_camera_set_orthogonal(RID p_camera,float p_size,float p_z_ne
void VisualServer::mesh_add_surface_from_mesh_data( RID p_mesh, const Geometry::MeshData& p_mesh_data) {
#if 1
- DVector<Vector3> vertices;
- DVector<Vector3> normals;
+ PoolVector<Vector3> vertices;
+ PoolVector<Vector3> normals;
for (int i=0;i<p_mesh_data.faces.size();i++) {
@@ -1626,7 +1629,7 @@ void VisualServer::mesh_add_surface_from_mesh_data( RID p_mesh, const Geometry::
#else
- DVector<Vector3> vertices;
+ PoolVector<Vector3> vertices;
@@ -1649,7 +1652,7 @@ void VisualServer::mesh_add_surface_from_mesh_data( RID p_mesh, const Geometry::
}
-void VisualServer::mesh_add_surface_from_planes( RID p_mesh, const DVector<Plane>& p_planes) {
+void VisualServer::mesh_add_surface_from_planes( RID p_mesh, const PoolVector<Plane>& p_planes) {
Geometry::MeshData mdata = Geometry::build_convex_mesh(p_planes);
diff --git a/servers/visual_server.h b/servers/visual_server.h
index 16f14655df..d1a20dd6ba 100644
--- a/servers/visual_server.h
+++ b/servers/visual_server.h
@@ -48,10 +48,10 @@ class VisualServer : public Object {
int mm_policy;
- DVector<String> _shader_get_param_list(RID p_shader) const;
+ PoolVector<String> _shader_get_param_list(RID p_shader) const;
void _camera_set_orthogonal(RID p_camera,float p_size,float p_z_near,float p_z_far);
void _canvas_item_add_style_box(RID p_item, const Rect2& p_rect, const Rect2& p_source, RID p_texture,const Vector<float>& p_margins, const Color& p_modulate=Color(1,1,1));
- Array _get_array_from_surface(uint32_t p_format,DVector<uint8_t> p_vertex_data,int p_vertex_len,DVector<uint8_t> p_index_data,int p_index_len) const;
+ Array _get_array_from_surface(uint32_t p_format,PoolVector<uint8_t> p_vertex_data,int p_vertex_len,PoolVector<uint8_t> p_index_data,int p_index_len) const;
protected:
RID _make_test_cube();
@@ -62,7 +62,7 @@ protected:
RID material_2d[16];
- Error _surface_set_data(Array p_arrays,uint32_t p_format,uint32_t *p_offsets,uint32_t p_stride,DVector<uint8_t> &r_vertex_array,int p_vertex_array_len,DVector<uint8_t> &r_index_array,int p_index_array_len,AABB &r_aabb,Vector<AABB> r_bone_aabb);
+ Error _surface_set_data(Array p_arrays,uint32_t p_format,uint32_t *p_offsets,uint32_t p_stride,PoolVector<uint8_t> &r_vertex_array,int p_vertex_array_len,PoolVector<uint8_t> &r_index_array,int p_index_array_len,AABB &r_aabb,Vector<AABB> r_bone_aabb);
static VisualServer* (*create_func)();
static void _bind_methods();
@@ -244,7 +244,7 @@ public:
virtual void mesh_add_surface_from_arrays(RID p_mesh,PrimitiveType p_primitive,const Array& p_arrays,const Array& p_blend_shapes=Array(),uint32_t p_compress_format=ARRAY_COMPRESS_DEFAULT);
- virtual void mesh_add_surface(RID p_mesh,uint32_t p_format,PrimitiveType p_primitive,const DVector<uint8_t>& p_array,int p_vertex_count,const DVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<DVector<uint8_t> >& p_blend_shapes=Vector<DVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>())=0;
+ virtual void mesh_add_surface(RID p_mesh,uint32_t p_format,PrimitiveType p_primitive,const PoolVector<uint8_t>& p_array,int p_vertex_count,const PoolVector<uint8_t>& p_index_array,int p_index_count,const AABB& p_aabb,const Vector<PoolVector<uint8_t> >& p_blend_shapes=Vector<PoolVector<uint8_t> >(),const Vector<AABB>& p_bone_aabbs=Vector<AABB>())=0;
virtual void mesh_set_morph_target_count(RID p_mesh,int p_amount)=0;
virtual int mesh_get_morph_target_count(RID p_mesh) const=0;
@@ -263,8 +263,8 @@ public:
virtual int mesh_surface_get_array_len(RID p_mesh, int p_surface) const=0;
virtual int mesh_surface_get_array_index_len(RID p_mesh, int p_surface) const=0;
- virtual DVector<uint8_t> mesh_surface_get_array(RID p_mesh, int p_surface) const=0;
- virtual DVector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const=0;
+ virtual PoolVector<uint8_t> mesh_surface_get_array(RID p_mesh, int p_surface) const=0;
+ virtual PoolVector<uint8_t> mesh_surface_get_index_array(RID p_mesh, int p_surface) const=0;
virtual Array mesh_surface_get_arrays(RID p_mesh,int p_surface) const;
@@ -272,7 +272,7 @@ public:
virtual PrimitiveType mesh_surface_get_primitive_type(RID p_mesh, int p_surface) const=0;
virtual AABB mesh_surface_get_aabb(RID p_mesh, int p_surface) const=0;
- virtual Vector<DVector<uint8_t> > mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const=0;
+ virtual Vector<PoolVector<uint8_t> > mesh_surface_get_blend_shapes(RID p_mesh, int p_surface) const=0;
virtual Vector<AABB> mesh_surface_get_skeleton_aabb(RID p_mesh, int p_surface) const=0;
virtual void mesh_remove_surface(RID p_mesh,int p_index)=0;
@@ -433,7 +433,7 @@ public:
/* ROOM API */
virtual RID room_create()=0;
- virtual void room_add_bounds(RID p_room, const DVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform)=0;
+ virtual void room_add_bounds(RID p_room, const PoolVector<Vector2>& p_convex_polygon,float p_height,const Transform& p_transform)=0;
virtual void room_clear_bounds(RID p_room)=0;
/* PORTAL API */
@@ -460,8 +460,8 @@ public:
virtual void gi_probe_set_to_cell_xform(RID p_probe,const Transform& p_xform)=0;
virtual Transform gi_probe_get_to_cell_xform(RID p_probe) const=0;
- virtual void gi_probe_set_dynamic_data(RID p_probe,const DVector<int>& p_data)=0;
- virtual DVector<int> gi_probe_get_dynamic_data(RID p_probe) const=0;
+ virtual void gi_probe_set_dynamic_data(RID p_probe,const PoolVector<int>& p_data)=0;
+ virtual PoolVector<int> gi_probe_get_dynamic_data(RID p_probe) const=0;
virtual void gi_probe_set_dynamic_range(RID p_probe,int p_range)=0;
virtual int gi_probe_get_dynamic_range(RID p_probe) const=0;
@@ -501,7 +501,7 @@ public:
virtual void particles_set_emission_shape(RID p_particles,ParticlesEmissionShape)=0;
virtual void particles_set_emission_sphere_radius(RID p_particles,float p_radius)=0;
virtual void particles_set_emission_box_extents(RID p_particles,const Vector3& p_extents)=0;
- virtual void particles_set_emission_points(RID p_particles,const DVector<Vector3>& p_points)=0;
+ virtual void particles_set_emission_points(RID p_particles,const PoolVector<Vector3>& p_points)=0;
enum ParticlesDrawOrder {
PARTICLES_DRAW_ORDER_INDEX,
@@ -856,8 +856,8 @@ public:
virtual void canvas_light_occluder_set_light_mask(RID p_occluder,int p_mask)=0;
virtual RID canvas_occluder_polygon_create()=0;
- virtual void canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const DVector<Vector2>& p_shape,bool p_closed)=0;
- virtual void canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const DVector<Vector2>& p_shape)=0;
+ virtual void canvas_occluder_polygon_set_shape(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape,bool p_closed)=0;
+ virtual void canvas_occluder_polygon_set_shape_as_lines(RID p_occluder_polygon,const PoolVector<Vector2>& p_shape)=0;
enum CanvasOccluderPolygonCullMode {
CANVAS_OCCLUDER_POLYGON_CULL_DISABLED,
@@ -926,7 +926,7 @@ public:
virtual RID make_sphere_mesh(int p_lats,int p_lons,float p_radius);
virtual void mesh_add_surface_from_mesh_data( RID p_mesh, const Geometry::MeshData& p_mesh_data);
- virtual void mesh_add_surface_from_planes( RID p_mesh, const DVector<Plane>& p_planes);
+ virtual void mesh_add_surface_from_planes( RID p_mesh, const PoolVector<Plane>& p_planes);
virtual void set_boot_image(const Image& p_image, const Color& p_color,bool p_scale)=0;
virtual void set_default_clear_color(const Color& p_color)=0;
diff --git a/thirdparty/README.md b/thirdparty/README.md
index 1619950d1c..ff13ef2370 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -150,7 +150,7 @@ TODO.
## opus
- Upstream: https://opus-codec.org
-- Version: 1.1.3 (opus) and 0.7 (opusfile)
+- Version: 1.1.3 (opus) and 0.8 (opusfile)
- License: BSD-3-Clause
Files extracted from upstream source:
diff --git a/thirdparty/opus/http.c b/thirdparty/opus/http.c
index cfd4e626a4..99fa8c08e0 100644
--- a/thirdparty/opus/http.c
+++ b/thirdparty/opus/http.c
@@ -231,7 +231,7 @@ typedef SOCKET op_sock;
# define POLLRDBAND (0x0200)
/*There is data to read.*/
# define POLLIN (POLLRDNORM|POLLRDBAND)
-/* There is urgent data to read.*/
+/*There is urgent data to read.*/
# define POLLPRI (0x0400)
/*Equivalent to POLLOUT.*/
# define POLLWRNORM (0x0010)
@@ -894,7 +894,7 @@ static void op_http_stream_init(OpusHTTPStream *_stream){
/*Close the connection and move it to the free list.
_stream: The stream containing the free list.
_conn: The connection to close.
- _penxt: The linked-list pointer currently pointing to this connection.
+ _pnext: The linked-list pointer currently pointing to this connection.
_gracefully: Whether or not to shut down cleanly.*/
static void op_http_conn_close(OpusHTTPStream *_stream,OpusHTTPConn *_conn,
OpusHTTPConn **_pnext,int _gracefully){
@@ -1517,10 +1517,17 @@ static long op_bio_retry_ctrl(BIO *_b,int _cmd,long _num,void *_ptr){
return ret;
}
+# if OPENSSL_VERSION_NUMBER<0x10100000L
+# define BIO_set_data(_b,_ptr) ((_b)->ptr=(_ptr))
+# define BIO_set_init(_b,_init) ((_b)->init=(_init))
+# endif
+
static int op_bio_retry_new(BIO *_b){
- _b->init=1;
+ BIO_set_init(_b,1);
+# if OPENSSL_VERSION_NUMBER<0x10100000L
_b->num=0;
- _b->ptr=NULL;
+# endif
+ BIO_set_data(_b,NULL);
return 1;
}
@@ -1528,6 +1535,7 @@ static int op_bio_retry_free(BIO *_b){
return _b!=NULL;
}
+# if OPENSSL_VERSION_NUMBER<0x10100000L
/*This is not const because OpenSSL doesn't allow it, even though it won't
write to it.*/
static BIO_METHOD op_bio_retry_method={
@@ -1542,11 +1550,15 @@ static BIO_METHOD op_bio_retry_method={
op_bio_retry_free,
NULL
};
+# endif
/*Establish a CONNECT tunnel and pipeline the start of the TLS handshake for
proxying https URL requests.*/
static int op_http_conn_establish_tunnel(OpusHTTPStream *_stream,
OpusHTTPConn *_conn,op_sock _fd,SSL *_ssl_conn,BIO *_ssl_bio){
+# if OPENSSL_VERSION_NUMBER>=0x10100000L
+ BIO_METHOD *bio_retry_method;
+# endif
BIO *retry_bio;
char *status_code;
char *next;
@@ -1557,13 +1569,32 @@ static int op_http_conn_establish_tunnel(OpusHTTPStream *_stream,
ret=op_http_conn_write_fully(_conn,
_stream->proxy_connect.buf,_stream->proxy_connect.nbuf);
if(OP_UNLIKELY(ret<0))return ret;
+# if OPENSSL_VERSION_NUMBER>=0x10100000L
+ bio_retry_method=BIO_meth_new(BIO_TYPE_NULL,"retry");
+ if(bio_retry_method==NULL)return OP_EFAULT;
+ BIO_meth_set_write(bio_retry_method,op_bio_retry_write);
+ BIO_meth_set_read(bio_retry_method,op_bio_retry_read);
+ BIO_meth_set_puts(bio_retry_method,op_bio_retry_puts);
+ BIO_meth_set_ctrl(bio_retry_method,op_bio_retry_ctrl);
+ BIO_meth_set_create(bio_retry_method,op_bio_retry_new);
+ BIO_meth_set_destroy(bio_retry_method,op_bio_retry_free);
+ retry_bio=BIO_new(bio_retry_method);
+ if(OP_UNLIKELY(retry_bio==NULL)){
+ BIO_meth_free(bio_retry_method);
+ return OP_EFAULT;
+ }
+# else
retry_bio=BIO_new(&op_bio_retry_method);
if(OP_UNLIKELY(retry_bio==NULL))return OP_EFAULT;
+# endif
SSL_set_bio(_ssl_conn,retry_bio,_ssl_bio);
SSL_set_connect_state(_ssl_conn);
/*This shouldn't succeed, since we can't read yet.*/
OP_ALWAYS_TRUE(SSL_connect(_ssl_conn)<0);
SSL_set_bio(_ssl_conn,_ssl_bio,_ssl_bio);
+# if OPENSSL_VERSION_NUMBER>=0x10100000L
+ BIO_meth_free(bio_retry_method);
+# endif
/*Only now do we disable write coalescing, to allow the CONNECT
request and the start of the TLS handshake to be combined.*/
op_sock_set_tcp_nodelay(_fd,1);
@@ -2200,7 +2231,8 @@ static int op_http_stream_open(OpusHTTPStream *_stream,const char *_url,
/*Initialize the SSL library if necessary.*/
if(OP_URL_IS_SSL(&_stream->url)&&_stream->ssl_ctx==NULL){
SSL_CTX *ssl_ctx;
-# if !defined(OPENSSL_NO_LOCKING)
+# if OPENSSL_VERSION_NUMBER<0x10100000L
+# if !defined(OPENSSL_NO_LOCKING)
/*The documentation says SSL_library_init() is not reentrant.
We don't want to add our own depenencies on a threading library, and it
appears that it's safe to call OpenSSL's locking functions before the
@@ -2210,12 +2242,16 @@ static int op_http_stream_open(OpusHTTPStream *_stream,const char *_url,
calling SSL_library_init() at the same time, but there's not much we
can do about that.*/
CRYPTO_w_lock(CRYPTO_LOCK_SSL);
-# endif
+# endif
SSL_library_init();
/*Needed to get SHA2 algorithms with old OpenSSL versions.*/
OpenSSL_add_ssl_algorithms();
-# if !defined(OPENSSL_NO_LOCKING)
+# if !defined(OPENSSL_NO_LOCKING)
CRYPTO_w_unlock(CRYPTO_LOCK_SSL);
+# endif
+# else
+ /*Finally, OpenSSL does this for us, but as penance, it can now fail.*/
+ if(!OPENSSL_init_ssl(0,NULL))return OP_EFAULT;
# endif
ssl_ctx=SSL_CTX_new(SSLv23_client_method());
if(ssl_ctx==NULL)return OP_EFAULT;
@@ -2779,7 +2815,7 @@ static int op_http_conn_read_body(OpusHTTPStream *_stream,
Otherwise, we'd need a _pnext pointer if we needed to close the connection,
and re-opening it would re-organize the lists.*/
OP_ASSERT(_stream->lru_head==_conn);
- /*We should have filterd out empty reads by this point.*/
+ /*We should have filtered out empty reads by this point.*/
OP_ASSERT(_buf_size>0);
pos=_conn->pos;
end_pos=_conn->end_pos;
diff --git a/thirdparty/opus/info.c b/thirdparty/opus/info.c
index 55e2906d5f..c36f9a9ee1 100644
--- a/thirdparty/opus/info.c
+++ b/thirdparty/opus/info.c
@@ -199,16 +199,21 @@ static int opus_tags_parse_impl(OpusTags *_tags,
if(_tags->user_comments[ci]==NULL)return OP_EFAULT;
_tags->comment_lengths[ci]=(int)count;
_tags->comments=ci+1;
+ /*Needed by opus_tags_clear() if we fail before parsing the (optional)
+ binary metadata.*/
+ _tags->user_comments[ci+1]=NULL;
}
_data+=count;
len-=count;
}
if(len>0&&(_data[0]&1)){
if(len>(opus_uint32)INT_MAX)return OP_EFAULT;
- _tags->user_comments[ncomments]=(char *)_ogg_malloc(len);
- if(OP_UNLIKELY(_tags->user_comments[ncomments]==NULL))return OP_EFAULT;
- memcpy(_tags->user_comments[ncomments],_data,len);
- _tags->comment_lengths[ncomments]=(int)len;
+ if(_tags!=NULL){
+ _tags->user_comments[ncomments]=(char *)_ogg_malloc(len);
+ if(OP_UNLIKELY(_tags->user_comments[ncomments]==NULL))return OP_EFAULT;
+ memcpy(_tags->user_comments[ncomments],_data,len);
+ _tags->comment_lengths[ncomments]=(int)len;
+ }
}
return 0;
}
@@ -306,7 +311,7 @@ int opus_tags_add_comment(OpusTags *_tags,const char *_comment){
if(OP_UNLIKELY(ret<0))return ret;
comment_len=(int)strlen(_comment);
comment=op_strdup_with_len(_comment,comment_len);
- if(OP_UNLIKELY(_tags->user_comments[ncomments]==NULL))return OP_EFAULT;
+ if(OP_UNLIKELY(comment==NULL))return OP_EFAULT;
_tags->user_comments[ncomments]=comment;
_tags->comment_lengths[ncomments]=comment_len;
_tags->comments=ncomments+1;
diff --git a/thirdparty/opus/opus/opusfile.h b/thirdparty/opus/opus/opusfile.h
index 3604115c31..4bf2fba926 100644
--- a/thirdparty/opus/opus/opusfile.h
+++ b/thirdparty/opus/opus/opusfile.h
@@ -1713,11 +1713,11 @@ int op_pcm_seek(OggOpusFile *_of,ogg_int64_t _pcm_offset) OP_ARG_NONNULL(1);
These downmix multichannel files to two channels, so they can always return
samples in the same format for every link in a chained file.
- If the rest of your audio processing chain can handle floating point, those
- routines should be preferred, as floating point output avoids introducing
- clipping and other issues which might be avoided entirely if, e.g., you
- scale down the volume at some other stage.
- However, if you intend to direct consume 16-bit samples, the conversion in
+ If the rest of your audio processing chain can handle floating point, the
+ floating-point routines should be preferred, as they prevent clipping and
+ other issues which might be avoided entirely if, e.g., you scale down the
+ volume at some other stage.
+ However, if you intend to consume 16-bit samples directly, the conversion in
<tt>libopusfile</tt> provides noise-shaping dithering and, if compiled
against <tt>libopus</tt>&nbsp;1.1 or later, soft-clipping prevention.
@@ -1770,26 +1770,35 @@ int op_pcm_seek(OggOpusFile *_of,ogg_int64_t _pcm_offset) OP_ARG_NONNULL(1);
#OP_DEC_FORMAT_FLOAT.
\param _li The index of the link from which this packet was decoded.
\return A non-negative value on success, or a negative value on error.
- The error codes should be the same as those returned by
+ Any error codes should be the same as those returned by
opus_multistream_decode() or opus_multistream_decode_float().
+ Success codes are as follows:
\retval 0 Decoding was successful.
The application has filled the buffer with
exactly <code>\a _nsamples*\a
_nchannels</code> samples in the requested
format.
\retval #OP_DEC_USE_DEFAULT No decoding was done.
- <tt>libopusfile</tt> should decode normally
- instead.*/
+ <tt>libopusfile</tt> should do the decoding
+ by itself instead.*/
typedef int (*op_decode_cb_func)(void *_ctx,OpusMSDecoder *_decoder,void *_pcm,
const ogg_packet *_op,int _nsamples,int _nchannels,int _format,int _li);
/**Sets the packet decode callback function.
- This is called once for each packet that needs to be decoded.
+ If set, this is called once for each packet that needs to be decoded.
+ This can be used by advanced applications to do additional processing on the
+ compressed or uncompressed data.
+ For example, an application might save the final entropy coder state for
+ debugging and testing purposes, or it might apply additional filters
+ before the downmixing, dithering, or soft-clipping performed by
+ <tt>libopusfile</tt>, so long as these filters do not introduce any
+ latency.
+
A call to this function is no guarantee that the audio will eventually be
delivered to the application.
- Some or all of the data from the packet may be discarded (i.e., at the
- beginning or end of a link, or after a seek), however the callback is
- required to provide all of it.
+ <tt>libopusfile</tt> may discard some or all of the decoded audio data
+ (i.e., at the beginning or end of a link, or after a seek), however the
+ callback is still required to provide all of it.
\param _of The \c OggOpusFile on which to set the decode callback.
\param _decode_cb The callback function to call.
This may be <code>NULL</code> to disable calling the
diff --git a/thirdparty/opus/opusfile.c b/thirdparty/opus/opusfile.c
index 9c9b684ca4..b8b3a354cf 100644
--- a/thirdparty/opus/opusfile.c
+++ b/thirdparty/opus/opusfile.c
@@ -505,6 +505,7 @@ static int op_fetch_headers_impl(OggOpusFile *_of,OpusHead *_head,
Everything else is fatal.*/
else if(ret!=OP_ENOTFORMAT)return ret;
}
+ /*TODO: Should a BOS page with no packets be an error?*/
}
/*Get the next page.
No need to clamp the boundary offset against _of->end, as all errors
@@ -1823,14 +1824,11 @@ opus_int32 op_bitrate_instant(OggOpusFile *_of){
This handles the case where we're at a bitstream boundary and dumps the
decoding machine.
If the decoding machine is unloaded, it loads it.
- It also keeps prev_packet_gp up to date (seek and read both use this; seek
- uses a special hack with _readp).
+ It also keeps prev_packet_gp up to date (seek and read both use this).
Return: <0) Error, OP_HOLE (lost packet), or OP_EOF.
- 0) Need more data (only if _readp==0).
- 1) Got at least one audio data packet.*/
+ 0) Got at least one audio data packet.*/
static int op_fetch_and_process_page(OggOpusFile *_of,
- ogg_page *_og,opus_int64 _page_offset,
- int _readp,int _spanp,int _ignore_holes){
+ ogg_page *_og,opus_int64 _page_offset,int _spanp,int _ignore_holes){
OggOpusLink *links;
ogg_uint32_t cur_serialno;
int seekable;
@@ -1838,7 +1836,6 @@ static int op_fetch_and_process_page(OggOpusFile *_of,
int ret;
/*We shouldn't get here if we have unprocessed packets.*/
OP_ASSERT(_of->ready_state<OP_INITSET||_of->op_pos>=_of->op_count);
- if(!_readp)return 0;
seekable=_of->seekable;
links=_of->links;
cur_link=seekable?_of->cur_link:0;
@@ -1847,36 +1844,27 @@ static int op_fetch_and_process_page(OggOpusFile *_of,
for(;;){
ogg_page og;
OP_ASSERT(_of->ready_state>=OP_OPENED);
- /*This loop is not strictly necessary, but there's no sense in doing the
- extra checks of the larger loop for the common case in a multiplexed
- bistream where the page is simply part of a different logical
- bitstream.*/
- do{
- /*If we were given a page to use, use it.*/
- if(_og!=NULL){
- *&og=*_og;
- _og=NULL;
- }
- /*Keep reading until we get a page with the correct serialno.*/
- else _page_offset=op_get_next_page(_of,&og,_of->end);
- /*EOF: Leave uninitialized.*/
- if(_page_offset<0)return _page_offset<OP_FALSE?(int)_page_offset:OP_EOF;
- if(OP_LIKELY(_of->ready_state>=OP_STREAMSET)){
- if(cur_serialno!=(ogg_uint32_t)ogg_page_serialno(&og)){
- /*Two possibilities:
- 1) Another stream is multiplexed into this logical section, or*/
- if(OP_LIKELY(!ogg_page_bos(&og)))continue;
- /* 2) Our decoding just traversed a bitstream boundary.*/
- if(!_spanp)return OP_EOF;
- if(OP_LIKELY(_of->ready_state>=OP_INITSET))op_decode_clear(_of);
- break;
- }
- }
- /*Bitrate tracking: add the header's bytes here.
- The body bytes are counted when we consume the packets.*/
- _of->bytes_tracked+=og.header_len;
+ /*If we were given a page to use, use it.*/
+ if(_og!=NULL){
+ *&og=*_og;
+ _og=NULL;
+ }
+ /*Keep reading until we get a page with the correct serialno.*/
+ else _page_offset=op_get_next_page(_of,&og,_of->end);
+ /*EOF: Leave uninitialized.*/
+ if(_page_offset<0)return _page_offset<OP_FALSE?(int)_page_offset:OP_EOF;
+ if(OP_LIKELY(_of->ready_state>=OP_STREAMSET)
+ &&cur_serialno!=(ogg_uint32_t)ogg_page_serialno(&og)){
+ /*Two possibilities:
+ 1) Another stream is multiplexed into this logical section, or*/
+ if(OP_LIKELY(!ogg_page_bos(&og)))continue;
+ /* 2) Our decoding just traversed a bitstream boundary.*/
+ if(!_spanp)return OP_EOF;
+ if(OP_LIKELY(_of->ready_state>=OP_INITSET))op_decode_clear(_of);
}
- while(0);
+ /*Bitrate tracking: add the header's bytes here.
+ The body bytes are counted when we consume the packets.*/
+ else _of->bytes_tracked+=og.header_len;
/*Do we need to load a new machine before submitting the page?
This is different in the seekable and non-seekable cases.
In the seekable case, we already have all the header information loaded
@@ -1934,10 +1922,12 @@ static int op_fetch_and_process_page(OggOpusFile *_of,
/*If we didn't get any packets out of op_find_initial_pcm_offset(),
keep going (this is possible if end-trimming trimmed them all).*/
if(_of->op_count<=0)continue;
- /*Otherwise, we're done.*/
+ /*Otherwise, we're done.
+ TODO: This resets bytes_tracked, which misses the header bytes
+ already processed by op_find_initial_pcm_offset().*/
ret=op_make_decode_ready(_of);
if(OP_UNLIKELY(ret<0))return ret;
- return 1;
+ return 0;
}
}
/*The buffered page is the data we want, and we're ready for it.
@@ -2088,7 +2078,7 @@ static int op_fetch_and_process_page(OggOpusFile *_of,
_of->prev_page_offset=_page_offset;
_of->op_count=pi;
/*If end-trimming didn't trim all the packets, we're done.*/
- if(OP_LIKELY(pi>0))return 1;
+ if(OP_LIKELY(pi>0))return 0;
}
}
}
@@ -2106,7 +2096,7 @@ int op_raw_seek(OggOpusFile *_of,opus_int64 _pos){
_of->samples_tracked=0;
ret=op_seek_helper(_of,_pos);
if(OP_UNLIKELY(ret<0))return OP_EREAD;
- ret=op_fetch_and_process_page(_of,NULL,-1,1,1,1);
+ ret=op_fetch_and_process_page(_of,NULL,-1,1,1);
/*If we hit EOF, op_fetch_and_process_page() leaves us uninitialized.
Instead, jump to the end.*/
if(ret==OP_EOF){
@@ -2118,7 +2108,6 @@ int op_raw_seek(OggOpusFile *_of,opus_int64 _pos){
_of->cur_discard_count=0;
ret=0;
}
- else if(ret>0)ret=0;
return ret;
}
@@ -2506,8 +2495,8 @@ static int op_pcm_seek_page(OggOpusFile *_of,
/*Update prev_packet_gp to allow per-packet granule position assignment.*/
_of->prev_packet_gp=best_gp;
_of->prev_page_offset=best_start;
- ret=op_fetch_and_process_page(_of,page_offset<0?NULL:&og,page_offset,1,0,1);
- if(OP_UNLIKELY(ret<=0))return OP_EBADLINK;
+ ret=op_fetch_and_process_page(_of,page_offset<0?NULL:&og,page_offset,0,1);
+ if(OP_UNLIKELY(ret<0))return OP_EBADLINK;
/*Verify result.*/
if(OP_UNLIKELY(op_granpos_cmp(_of->prev_packet_gp,_target_gp)>0)){
return OP_EBADLINK;
@@ -2589,8 +2578,8 @@ int op_pcm_seek(OggOpusFile *_of,ogg_int64_t _pcm_offset){
if(op_pos<op_count)break;
/*We skipped all the packets on this page.
Fetch another.*/
- ret=op_fetch_and_process_page(_of,NULL,-1,1,0,1);
- if(OP_UNLIKELY(ret<=0))return OP_EBADLINK;
+ ret=op_fetch_and_process_page(_of,NULL,-1,0,1);
+ if(OP_UNLIKELY(ret<0))return OP_EBADLINK;
}
OP_ALWAYS_TRUE(!op_granpos_diff(&diff,prev_packet_gp,pcm_start));
/*We skipped too far.
@@ -2854,7 +2843,7 @@ static int op_read_native(OggOpusFile *_of,
}
}
/*Suck in another page.*/
- ret=op_fetch_and_process_page(_of,NULL,-1,1,1,0);
+ ret=op_fetch_and_process_page(_of,NULL,-1,1,0);
if(OP_UNLIKELY(ret==OP_EOF)){
if(_li!=NULL)*_li=_of->cur_link;
return 0;
diff --git a/tools/doc/doc_data.cpp b/tools/doc/doc_data.cpp
index f66a8aff22..c6953c82be 100644
--- a/tools/doc/doc_data.cpp
+++ b/tools/doc/doc_data.cpp
@@ -503,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];
}
diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp
index 084b4edc7e..ba18d382ce 100644
--- a/tools/editor/animation_editor.cpp
+++ b/tools/editor/animation_editor.cpp
@@ -157,7 +157,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)
@@ -199,7 +199,7 @@ public:
static void _bind_methods() {
// ClassDB::bind_method("_update_obj",&AnimationKeyEdit::_update_obj);
- ClassDB::bind_method("_input_event",&AnimationCurveEdit::_input_event);
+ ClassDB::bind_method("_gui_input",&AnimationCurveEdit::_gui_input);
ADD_SIGNAL(MethodInfo("transition_changed"));
}
@@ -1090,7 +1090,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 +1156,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 +1186,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;
@@ -1421,6 +1426,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 +1452,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,10 +1474,14 @@ 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);
@@ -1621,6 +1646,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 +1844,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 +1866,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 +1885,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;
@@ -2054,6 +2091,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
interp_editing=-1;
cont_editing=-1;
+ wrap_editing=-1;
track_menu->popup();
}
@@ -2277,7 +2315,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 +2350,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 +2374,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 +2389,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);
@@ -2940,7 +3001,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 +3081,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,8 +3137,13 @@ 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;
}
@@ -3859,7 +3933,7 @@ void AnimationKeyEditor::_bind_methods() {
ClassDB::bind_method(_MD("_animation_changed"),&AnimationKeyEditor::_animation_changed);
ClassDB::bind_method(_MD("_scroll_changed"),&AnimationKeyEditor::_scroll_changed);
- ClassDB::bind_method(_MD("_track_editor_input_event"),&AnimationKeyEditor::_track_editor_input_event);
+ 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);
@@ -3986,7 +4060,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 +4088,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,7 +4104,7 @@ 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);
@@ -4071,7 +4145,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
l->set_pos(Point2(0,3));
// 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 +4156,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 +4164,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");
@@ -4127,7 +4201,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 +4240,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 +4272,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 +4289,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 +4311,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 8113853920..0c9b0b5ac6 100644
--- a/tools/editor/animation_editor.h
+++ b/tools/editor/animation_editor.h
@@ -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;
@@ -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();
diff --git a/tools/editor/asset_library_editor_plugin.cpp b/tools/editor/asset_library_editor_plugin.cpp
index 11eef69638..422bc0db58 100644
--- a/tools/editor/asset_library_editor_plugin.cpp
+++ b/tools/editor/asset_library_editor_plugin.cpp
@@ -29,7 +29,7 @@
#include "asset_library_editor_plugin.h"
#include "editor_node.h"
#include "editor_settings.h"
-
+#include "io/json.h"
@@ -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);
}
//////////////////////////////////////////////////////////////////////////////
@@ -270,7 +270,7 @@ EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() {
VBoxContainer *vbox = memnew( VBoxContainer );
add_child(vbox);
- set_child_rect(vbox);
+
HBoxContainer *hbox = memnew( HBoxContainer);
@@ -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());
@@ -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);
diff --git a/tools/editor/call_dialog.cpp b/tools/editor/call_dialog.cpp
index 7e8ce1a37a..054a5098f0 100644
--- a/tools/editor/call_dialog.cpp
+++ b/tools/editor/call_dialog.cpp
@@ -28,6 +28,7 @@
/*************************************************************************/
#include "call_dialog.h"
+#if 0
#include "scene/gui/label.h"
#include "object_type_db.h"
#include "print_string.h"
@@ -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 928ee74567..b0ebe68d86 100644
--- a/tools/editor/call_dialog.h
+++ b/tools/editor/call_dialog.h
@@ -39,6 +39,7 @@
@author Juan Linietsky <reduzio@gmail.com>
*/
+#if 0
class CallDialogParams;
@@ -81,3 +82,4 @@ public:
};
#endif
+#endif
diff --git a/tools/editor/code_editor.cpp b/tools/editor/code_editor.cpp
index 284d589ba7..0d7dc558ac 100644
--- a/tools/editor/code_editor.cpp
+++ b/tools/editor/code_editor.cpp
@@ -899,7 +899,7 @@ FindReplaceDialog::FindReplaceDialog() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+
search_text = memnew( LineEdit );
@@ -995,7 +995,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) {
@@ -1195,7 +1195,7 @@ void CodeTextEditor::_notification(int p_what) {
void CodeTextEditor::_bind_methods() {
- ClassDB::bind_method("_text_editor_input_event",&CodeTextEditor::_text_editor_input_event);
+ 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);
@@ -1297,7 +1297,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 +1305,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 75bad24483..a000f02010 100644
--- a/tools/editor/code_editor.h
+++ b/tools/editor/code_editor.h
@@ -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 ba1298eebc..33612293d0 100644
--- a/tools/editor/connections_dialog.cpp
+++ b/tools/editor/connections_dialog.cpp
@@ -305,7 +305,7 @@ ConnectDialog::ConnectDialog() {
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+
HBoxContainer *main_hb = memnew( HBoxContainer );
vbc->add_child(main_hb);
@@ -421,7 +421,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);
diff --git a/tools/editor/create_dialog.cpp b/tools/editor/create_dialog.cpp
index 87f043783f..3e057ecf90 100644
--- a/tools/editor/create_dialog.cpp
+++ b/tools/editor/create_dialog.cpp
@@ -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();
}
@@ -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)) {
@@ -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"));
@@ -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/dependency_editor.cpp b/tools/editor/dependency_editor.cpp
index 39a7a3620a..20e185104b 100644
--- a/tools/editor/dependency_editor.cpp
+++ b/tools/editor/dependency_editor.cpp
@@ -261,7 +261,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 +354,7 @@ DependencyEditorOwners::DependencyEditorOwners() {
owners = memnew( ItemList );
add_child(owners);
- set_child_rect(owners);
+
}
@@ -459,7 +459,7 @@ DependencyRemoveDialog::DependencyRemoveDialog() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+
text = memnew( Label );
vb->add_child(text);
@@ -522,7 +522,7 @@ DependencyErrorDialog::DependencyErrorDialog() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+
files = memnew( Tree );
@@ -699,7 +699,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/editor_asset_installer.cpp b/tools/editor/editor_asset_installer.cpp
index 553fa6b600..54099ddce5 100644
--- a/tools/editor/editor_asset_installer.cpp
+++ b/tools/editor/editor_asset_installer.cpp
@@ -339,7 +339,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_data.cpp b/tools/editor/editor_data.cpp
index 11ba30f4f0..f27fe79a85 100644
--- a/tools/editor/editor_data.cpp
+++ b/tools/editor/editor_data.cpp
@@ -584,7 +584,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
diff --git a/tools/editor/editor_dir_dialog.cpp b/tools/editor/editor_dir_dialog.cpp
index c246506858..56f9a0fb0b 100644
--- a/tools/editor/editor_dir_dialog.cpp
+++ b/tools/editor/editor_dir_dialog.cpp
@@ -243,7 +243,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 +255,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_file_dialog.cpp b/tools/editor/editor_file_dialog.cpp
index dfdd14673c..99165c6ed6 100644
--- a/tools/editor/editor_file_dialog.cpp
+++ b/tools/editor/editor_file_dialog.cpp
@@ -313,7 +313,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) ));
@@ -1289,7 +1289,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"));
@@ -1446,7 +1445,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);
diff --git a/tools/editor/editor_help.cpp b/tools/editor/editor_help.cpp
index 5af6b154a8..11eeaffdb6 100644
--- a/tools/editor/editor_help.cpp
+++ b/tools/editor/editor_help.cpp
@@ -71,7 +71,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();
}
@@ -314,7 +314,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 +324,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"));
@@ -488,7 +488,7 @@ 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();
}
}
@@ -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);
@@ -1824,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");
@@ -1839,7 +1838,7 @@ 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);
diff --git a/tools/editor/editor_import_export.cpp b/tools/editor/editor_import_export.cpp
index 1245efafa1..1804016f47 100644
--- a/tools/editor/editor_import_export.cpp
+++ b/tools/editor/editor_import_export.cpp
@@ -783,7 +783,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 +794,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
if (!atlas_valid)
print_line("JSON INVALID");
-
+*/
}
@@ -921,7 +921,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);
}
@@ -2174,9 +2174,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 +2185,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());
diff --git a/tools/editor/editor_import_export.h b/tools/editor/editor_import_export.h
index 9109e9ae9f..fb75373f17 100644
--- a/tools/editor/editor_import_export.h
+++ b/tools/editor/editor_import_export.h
@@ -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_name_dialog.cpp b/tools/editor/editor_name_dialog.cpp
index 49e44a55c2..e7dcea4d40 100644
--- a/tools/editor/editor_name_dialog.cpp
+++ b/tools/editor/editor_name_dialog.cpp
@@ -31,7 +31,7 @@
#include "object_type_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() {
- ClassDB::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 f4bac7f1d9..d6bc7eca94 100644
--- a/tools/editor/editor_name_dialog.h
+++ b/tools/editor/editor_name_dialog.h
@@ -39,7 +39,7 @@ class EditorNameDialog : public 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 bcdc2cbbf0..5fd8f244f7 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -2638,12 +2638,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();
@@ -3751,7 +3745,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) {
@@ -5371,8 +5365,15 @@ void EditorNode::_bind_methods() {
}
+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
@@ -5618,14 +5619,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->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;
@@ -5771,7 +5772,7 @@ 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_shortcut(ED_SHORTCUT("editor/undo", TTR("Undo"),KEY_MASK_CMD+KEY_Z),EDIT_UNDO,true);
@@ -5793,7 +5794,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 );
@@ -5850,7 +5851,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."));
@@ -5860,7 +5861,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 );
@@ -5879,7 +5880,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);
@@ -5930,7 +5931,7 @@ 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 );
@@ -5979,7 +5980,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 );
@@ -6053,7 +6054,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);
@@ -6165,7 +6166,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);
@@ -6193,7 +6194,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...
@@ -6346,9 +6347,7 @@ EditorNode::EditorNode() {
- call_dialog = memnew( CallDialog );
- call_dialog->hide();
- gui_base->add_child( call_dialog );
+
@@ -6504,11 +6503,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");
@@ -6691,7 +6690,7 @@ EditorNode::EditorNode() {
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);
@@ -6785,12 +6784,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 Matrix32& 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;
}
}
@@ -6798,11 +6797,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;
}
}
diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h
index 8eebaf3d5c..fcfd5ca389 100644
--- a/tools/editor/editor_node.h
+++ b/tools/editor/editor_node.h
@@ -159,7 +159,6 @@ private:
OBJECT_COPY_PARAMS,
OBJECT_PASTE_PARAMS,
OBJECT_UNIQUE_RESOURCES,
- OBJECT_CALL_METHOD,
OBJECT_REQUEST_HELP,
RUN_PLAY,
@@ -287,7 +286,7 @@ private:
CreateDialog *create_dialog;
- CallDialog *call_dialog;
+// CallDialog *call_dialog;
ConfirmationDialog *confirmation;
ConfirmationDialog *import_confirmation;
ConfirmationDialog *open_recent_confirmation;
@@ -793,8 +792,8 @@ 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);
+ bool forward_gui_input(const Matrix32& 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 Matrix32& 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 9053d9bde0..b359522e4f 100644
--- a/tools/editor/editor_path.cpp
+++ b/tools/editor/editor_path.cpp
@@ -67,7 +67,7 @@ void EditorPath::_add_children_to_popup(Object* p_obj,int p_depth) {
}
}
-void EditorPath::_input_event(const InputEvent& p_event) {
+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) {
@@ -198,7 +198,7 @@ void EditorPath::_popup_select(int p_idx) {
void EditorPath::_bind_methods() {
- ClassDB::bind_method("_input_event",&EditorPath::_input_event);
+ ClassDB::bind_method("_gui_input",&EditorPath::_gui_input);
ClassDB::bind_method("_popup_select",&EditorPath::_popup_select);
}
@@ -207,7 +207,7 @@ EditorPath::EditorPath(EditorHistory *p_history) {
history=p_history;
mouse_over=false;
popup = memnew( PopupMenu );
- popup->connect("item_pressed",this,"_popup_select");
+ 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 47ba4ea3de..fd5b469d07 100644
--- a/tools/editor/editor_path.h
+++ b/tools/editor/editor_path.h
@@ -46,7 +46,7 @@ class EditorPath : public Control {
EditorPath();
void _popup_select(int p_idx);
- void _input_event(const InputEvent& p_event);
+ void _gui_input(const InputEvent& p_event);
void _add_children_to_popup(Object* p_obj,int p_depth=0);
protected:
diff --git a/tools/editor/editor_plugin.cpp b/tools/editor/editor_plugin.cpp
index a19e520c1a..5722fc556a 100644
--- a/tools/editor/editor_plugin.cpp
+++ b/tools/editor/editor_plugin.cpp
@@ -141,10 +141,10 @@ 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 Matrix32& 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;
}
@@ -160,10 +160,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;
@@ -377,9 +377,9 @@ void EditorPlugin::_bind_methods() {
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_input_event",PropertyInfo(Variant::MATRIX32,"canvas_xform"),PropertyInfo(Variant::INPUT_EVENT,"event")));
+ ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"forward_canvas_gui_input",PropertyInfo(Variant::MATRIX32,"canvas_xform"),PropertyInfo(Variant::INPUT_EVENT,"event")));
ClassDB::add_virtual_method(get_class_static(),MethodInfo("forward_draw_over_canvas",PropertyInfo(Variant::MATRIX32,"canvas_xform"),PropertyInfo(Variant::OBJECT,"canvas:Control")));
- ClassDB::add_virtual_method(get_class_static(),MethodInfo(Variant::BOOL,"forward_spatial_input_event",PropertyInfo(Variant::OBJECT,"camera",PROPERTY_HINT_RESOURCE_TYPE,"Camera"),PropertyInfo(Variant::INPUT_EVENT,"event")));
+ 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";
diff --git a/tools/editor/editor_plugin.h b/tools/editor/editor_plugin.h
index c8fd1c2256..cfa309be11 100644
--- a/tools/editor/editor_plugin.h
+++ b/tools/editor/editor_plugin.h
@@ -104,9 +104,9 @@ public:
void edit_resource(const Ref<Resource>& p_resource);
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 bool forward_canvas_gui_input(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_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_profiler.cpp b/tools/editor/editor_profiler.cpp
index 5c7b7407b4..162e1d05f5 100644
--- a/tools/editor/editor_profiler.cpp
+++ b/tools/editor/editor_profiler.cpp
@@ -154,7 +154,7 @@ void EditorProfiler::_update_plot() {
}
- DVector<uint8_t>::Write wr = graph_image.write();
+ PoolVector<uint8_t>::Write wr = graph_image.write();
@@ -336,7 +336,7 @@ void EditorProfiler::_update_plot() {
}
- wr = DVector<uint8_t>::Write();
+ wr = PoolVector<uint8_t>::Write();
Image img(w,h,0,Image::FORMAT_RGBA8,graph_image);
@@ -710,10 +710,10 @@ EditorProfiler::EditorProfiler()
graph = memnew( TextureFrame );
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("gui_input",this,"_graph_tex_input");
graph->connect("mouse_exit",this,"_graph_tex_mouse_exit");
h_split->add_child(graph);
diff --git a/tools/editor/editor_profiler.h b/tools/editor/editor_profiler.h
index 4e18f2e29a..233bc2e0fd 100644
--- a/tools/editor/editor_profiler.h
+++ b/tools/editor/editor_profiler.h
@@ -73,7 +73,7 @@ private:
Button *activate;
TextureFrame *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 7cb4e76729..c6a8f13dc7 100644
--- a/tools/editor/editor_reimport_dialog.cpp
+++ b/tools/editor/editor_reimport_dialog.cpp
@@ -135,7 +135,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_run_native.cpp b/tools/editor/editor_run_native.cpp
index f41db62787..caa1bf5db7 100644
--- a/tools/editor/editor_run_native.cpp
+++ b/tools/editor/editor_run_native.cpp
@@ -54,7 +54,7 @@ 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);
diff --git a/tools/editor/editor_sub_scene.cpp b/tools/editor/editor_sub_scene.cpp
index f60e0ff11a..8f1f24f769 100644
--- a/tools/editor/editor_sub_scene.cpp
+++ b/tools/editor/editor_sub_scene.cpp
@@ -203,7 +203,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/filesystem_dock.cpp b/tools/editor/filesystem_dock.cpp
index cea7a6ec83..021de9aa90 100644
--- a/tools/editor/filesystem_dock.cpp
+++ b/tools/editor/filesystem_dock.cpp
@@ -160,7 +160,7 @@ 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");
button_back->connect("pressed",this,"_go_to_tree",varray(),CONNECT_DEFERRED);
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_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_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_fixed_spatial_material.png b/tools/editor/icons/2x/icon_fixed_spatial_material.png
new file mode 100644
index 0000000000..b95e78d6cc
--- /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_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_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_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_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_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_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
index 67f80e8760..f1e25efe1c 100644
--- a/tools/editor/icons/2x/icon_script_create.png
+++ b/tools/editor/icons/2x/icon_script_create.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_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_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_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_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_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/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_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_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_fixed_spatial_material.png b/tools/editor/icons/icon_fixed_spatial_material.png
new file mode 100644
index 0000000000..2e52c45a46
--- /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_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_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_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_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_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_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
index f5d8b0cfd6..86c19f748b 100644
--- a/tools/editor/icons/icon_script_create.png
+++ b/tools/editor/icons/icon_script_create.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_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_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_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_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_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_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_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_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_fixed_spatial_material.svg b/tools/editor/icons/source/icon_fixed_spatial_material.svg
new file mode 100644
index 0000000000..575b0d06c6
--- /dev/null
+++ b/tools/editor/icons/source/icon_fixed_spatial_material.svg
@@ -0,0 +1,147 @@
+<?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"
+ 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">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4257">
+ <stop
+ style="stop-color:#ff70ac;stop-opacity:1"
+ offset="0"
+ id="stop4259" />
+ <stop
+ id="stop4273"
+ offset="0.17862372"
+ style="stop-color:#9f70ff;stop-opacity:1" />
+ <stop
+ id="stop4271"
+ offset="0.3572498"
+ style="stop-color:#70deff;stop-opacity:1" />
+ <stop
+ id="stop4269"
+ offset="0.53587586"
+ style="stop-color:#70ffb9;stop-opacity:1" />
+ <stop
+ id="stop4267"
+ offset="0.71450192"
+ style="stop-color:#9dff70;stop-opacity:1" />
+ <stop
+ id="stop4265"
+ offset="0.89312798"
+ style="stop-color:#ffeb70;stop-opacity:1" />
+ <stop
+ style="stop-color:#ff7070;stop-opacity:1"
+ offset="1"
+ id="stop4261" />
+ </linearGradient>
+ <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>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4257"
+ id="radialGradient4263"
+ cx="13.333239"
+ cy="1043.3622"
+ fx="13.333239"
+ fy="1043.3622"
+ r="7"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.93305925,0.79975529,-0.85714494,-0.99999821,914.75331,2076.0592)" />
+ </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="12.314693"
+ inkscape:cy="10.250946"
+ 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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#radialGradient4263);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 8,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z"
+ id="path4151" />
+ <path
+ style="fill:#ffffff;fill-opacity:0.72222221;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1,1040.3622 7,3 7,-3 -7,-3 z"
+ id="path4149"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4145"
+ d="m 8,1051.3622 7,-3 0,-8 -7,3 z"
+ style="fill:#000000;fill-opacity:0.46969697;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ </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_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_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_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_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_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
index c3f69c4601..0cf16a9c3b 100644
--- a/tools/editor/icons/source/icon_script_create.svg
+++ b/tools/editor/icons/source/icon_script_create.svg
@@ -28,9 +28,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="29.966667"
- inkscape:cx="5.495872"
- inkscape:cy="2.1206692"
+ inkscape:zoom="21.189633"
+ inkscape:cx="7.8202901"
+ inkscape:cy="11.917121"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -43,11 +43,13 @@
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"
- showguides="false">
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid3336"
@@ -61,7 +63,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,14 +74,14 @@
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 A 1 1 0 0 0 5 3 L 5 13 L 4 13 L 4 11 L 2 11 L 2 13 A 1 1 0 0 0 2.5 13.865234 A 1 1 0 0 0 3 14 L 3 15 L 10 15 L 10 14 L 7 14 L 7 10 L 10 10 L 10 7 L 12 7 L 12 5 L 15 5 L 15 3 A 2 2 0 0 0 13 1 L 6 1 z M 11 8 L 11 11 L 8 11 L 8 13 L 11 13 L 11 14.730469 A 2 2 0 0 0 12 13 L 12 8 L 11 8 z "
+ 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 "
- transform="translate(0,1036.3622)"
- id="path4265" />
+ id="path4265"
+ transform="translate(0,1036.3622)" />
<circle
cy="1048.3622"
cx="3"
@@ -88,9 +90,10 @@
ry="1.0000174"
rx="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 13,1049.3622 3,0 0,-2 -3,0 0,-3 -2,0 0,3 -3,0 0,2 3,0 0,3 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"
+ 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" />
+ 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..ba12b007ad 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,17 +30,6 @@
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">
@@ -83,9 +47,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="6.7591143"
+ inkscape:cy="9.6862321"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -183,93 +147,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_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_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_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_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_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_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/io_plugins/editor_bitmask_import_plugin.cpp b/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
index dd36ce6dbd..b4e0c4b82a 100644
--- a/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
@@ -179,7 +179,7 @@ public:
VBoxContainer *vbc = memnew(VBoxContainer);
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
HBoxContainer *hbc = memnew(HBoxContainer);
diff --git a/tools/editor/io_plugins/editor_font_import_plugin.cpp b/tools/editor/io_plugins/editor_font_import_plugin.cpp
index 2bc29039ea..388ca4ca89 100644
--- a/tools/editor/io_plugins/editor_font_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_font_import_plugin.cpp
@@ -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 );
@@ -1380,10 +1380,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++) {
@@ -1512,7 +1512,7 @@ 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_RGBA8,pixels);
@@ -1552,10 +1552,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) {
diff --git a/tools/editor/io_plugins/editor_import_collada.cpp b/tools/editor/io_plugins/editor_import_collada.cpp
index c1830bf118..5720e15caa 100644
--- a/tools/editor/io_plugins/editor_import_collada.cpp
+++ b/tools/editor/io_plugins/editor_import_collada.cpp
@@ -485,15 +485,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++) {
@@ -519,7 +519,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();
@@ -531,10 +531,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++) {
@@ -588,7 +588,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];
@@ -1031,9 +1031,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()) {
@@ -1041,7 +1041,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();
/*****************/
@@ -1075,14 +1075,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<int> 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;
@@ -1117,61 +1117,61 @@ 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;
+ //PoolVector<Vector3> altnaray;
//_generate_normals(index_array,final_vertex_array,altnaray);
//for(int i=0;i<altnaray.size();i++)
@@ -1189,9 +1189,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++) {
@@ -1202,7 +1202,7 @@ 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()))){
@@ -1217,27 +1217,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<int> 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<int>::Write bonearrayw = bonearray.write();
+ PoolVector<int>::Write bonearrayw = bonearray.write();
for(int k=0;k<vlen;k++) {
float sum=0;
@@ -1262,8 +1262,8 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize,Ref<Mesh>& p_mesh,con
}
- weightarrayw = DVector<float>::Write();
- bonearrayw = DVector<int>::Write();
+ weightarrayw = PoolVector<float>::Write();
+ bonearrayw = PoolVector<int>::Write();
final_weight_array = weightarray;
final_bone_array = bonearray;
@@ -1326,7 +1326,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);
@@ -1345,7 +1345,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++) {
@@ -1381,9 +1381,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
@@ -1402,7 +1402,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++) {
diff --git a/tools/editor/io_plugins/editor_mesh_import_plugin.cpp b/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
index 819984e210..f33693c304 100644
--- a/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
@@ -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);
diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.cpp b/tools/editor/io_plugins/editor_sample_import_plugin.cpp
index b776fdeec0..da4e24dc84 100644
--- a/tools/editor/io_plugins/editor_sample_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_sample_import_plugin.cpp
@@ -335,7 +335,7 @@ public:
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
HBoxContainer *hbc = memnew( HBoxContainer );
@@ -443,8 +443,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++) {
@@ -602,7 +602,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 +629,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 +638,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];
@@ -655,7 +655,7 @@ Error EditorSampleImportPlugin::import(const String& p_path, const Ref<ResourceI
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 +700,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 +730,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;
diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.h b/tools/editor/io_plugins/editor_sample_import_plugin.h
index 915ca3883c..6d781756b2 100644
--- a/tools/editor/io_plugins/editor_sample_import_plugin.h
+++ b/tools/editor/io_plugins/editor_sample_import_plugin.h
@@ -40,7 +40,7 @@ class EditorSampleImportPlugin : public 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;
diff --git a/tools/editor/io_plugins/editor_scene_import_plugin.cpp b/tools/editor/io_plugins/editor_scene_import_plugin.cpp
index c387e503e6..4a1270c1ca 100644
--- a/tools/editor/io_plugins/editor_scene_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -1115,7 +1115,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);
@@ -1302,7 +1302,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"));
@@ -1897,7 +1897,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);
BSP_Tree bsptree(faces);
@@ -1940,7 +1940,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
diff --git a/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp b/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
index 1cb16843c5..e1b0719941 100644
--- a/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
+++ b/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
@@ -336,7 +336,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 +361,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));
@@ -680,11 +680,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 +701,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 +736,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 +756,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 +775,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 +801,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 +838,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]);
}
diff --git a/tools/editor/io_plugins/editor_texture_import_plugin.cpp b/tools/editor/io_plugins/editor_texture_import_plugin.cpp
index 28462438fc..fd18dc6cb8 100644
--- a/tools/editor/io_plugins/editor_texture_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_texture_import_plugin.cpp
@@ -657,14 +657,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++) {
@@ -1199,9 +1199,9 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
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++) {
diff --git a/tools/editor/io_plugins/editor_translation_import_plugin.cpp b/tools/editor/io_plugins/editor_translation_import_plugin.cpp
index d05bab968d..73d9e989ac 100644
--- a/tools/editor/io_plugins/editor_translation_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_translation_import_plugin.cpp
@@ -299,7 +299,7 @@ public:
VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc);
- set_child_rect(vbc);
+ //set_child_rect(vbc);
diff --git a/tools/editor/pane_drag.cpp b/tools/editor/pane_drag.cpp
index f328f88b6f..122abd37b9 100644
--- a/tools/editor/pane_drag.cpp
+++ b/tools/editor/pane_drag.cpp
@@ -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() {
- ClassDB::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 83b145e2e6..8796fc2594 100644
--- a/tools/editor/pane_drag.h
+++ b/tools/editor/pane_drag.h
@@ -40,7 +40,7 @@ class PaneDrag : public Control {
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/animation_player_editor_plugin.cpp b/tools/editor/plugins/animation_player_editor_plugin.cpp
index 4cc396a57b..3201db1116 100644
--- a/tools/editor/plugins/animation_player_editor_plugin.cpp
+++ b/tools/editor/plugins/animation_player_editor_plugin.cpp
@@ -50,7 +50,7 @@ void AnimationPlayerEditor::_node_removed(Node *p_node) {
}
}
-void AnimationPlayerEditor::_input_event(InputEvent p_event) {
+void AnimationPlayerEditor::_gui_input(InputEvent p_event) {
}
@@ -101,7 +101,7 @@ void AnimationPlayerEditor::_notification(int p_what) {
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 +115,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");
@@ -1245,7 +1245,7 @@ void AnimationPlayerEditor::_unhandled_key_input(const InputEvent& p_ev) {
void AnimationPlayerEditor::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&AnimationPlayerEditor::_input_event);
+ 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);
@@ -1477,7 +1477,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);
diff --git a/tools/editor/plugins/animation_player_editor_plugin.h b/tools/editor/plugins/animation_player_editor_plugin.h
index dc37c77701..9074eb127b 100644
--- a/tools/editor/plugins/animation_player_editor_plugin.h
+++ b/tools/editor/plugins/animation_player_editor_plugin.h
@@ -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:
diff --git a/tools/editor/plugins/animation_tree_editor_plugin.cpp b/tools/editor/plugins/animation_tree_editor_plugin.cpp
index 27976a6f16..3b28e8610b 100644
--- a/tools/editor/plugins/animation_tree_editor_plugin.cpp
+++ b/tools/editor/plugins/animation_tree_editor_plugin.cpp
@@ -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) {
@@ -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()) {
@@ -1325,7 +1324,7 @@ void AnimationTreeEditor::_bind_methods() {
ClassDB::bind_method( "_add_menu_item", &AnimationTreeEditor::_add_menu_item );
ClassDB::bind_method( "_node_menu_item", &AnimationTreeEditor::_node_menu_item );
- ClassDB::bind_method( "_input_event", &AnimationTreeEditor::_input_event );
+ 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 );
@@ -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,10 +1406,10 @@ 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;
@@ -1474,7 +1473,7 @@ 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 );
@@ -1485,6 +1484,7 @@ AnimationTreeEditor::AnimationTreeEditor() {
filter_button->set_text(TTR("Filters.."));
filter_button->connect("pressed", this,"_edit_filters");
+ set_clip_contents(true);
}
diff --git a/tools/editor/plugins/animation_tree_editor_plugin.h b/tools/editor/plugins/animation_tree_editor_plugin.h
index 36c64bfcd5..253ad1878d 100644
--- a/tools/editor/plugins/animation_tree_editor_plugin.h
+++ b/tools/editor/plugins/animation_tree_editor_plugin.h
@@ -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:
diff --git a/tools/editor/plugins/baked_light_baker.cpp b/tools/editor/plugins/baked_light_baker.cpp
index 2b660c4f94..2d91524ef9 100644
--- a/tools/editor/plugins/baked_light_baker.cpp
+++ b/tools/editor/plugins/baked_light_baker.cpp
@@ -108,8 +108,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();
@@ -194,14 +194,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 +236,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];
@@ -1788,7 +1788,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 +1845,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 +1859,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 +1900,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 +1910,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();
@@ -2612,10 +2612,10 @@ 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());
}
diff --git a/tools/editor/plugins/baked_light_baker.h b/tools/editor/plugins/baked_light_baker.h
index 5616183cb1..6fcf78dd0a 100644
--- a/tools/editor/plugins/baked_light_baker.h
+++ b/tools/editor/plugins/baked_light_baker.h
@@ -364,8 +364,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; }
diff --git a/tools/editor/plugins/baked_light_editor_plugin.cpp b/tools/editor/plugins/baked_light_editor_plugin.cpp
index e6d969c399..8f564a3247 100644
--- a/tools/editor/plugins/baked_light_editor_plugin.cpp
+++ b/tools/editor/plugins/baked_light_editor_plugin.cpp
@@ -88,7 +88,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;
diff --git a/tools/editor/plugins/baked_light_editor_plugin.h b/tools/editor/plugins/baked_light_editor_plugin.h
index 82310dc07e..e311fe9f17 100644
--- a/tools/editor/plugins/baked_light_editor_plugin.h
+++ b/tools/editor/plugins/baked_light_editor_plugin.h
@@ -50,9 +50,9 @@ class BakedLightEditor : public 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;
diff --git a/tools/editor/plugins/canvas_item_editor_plugin.cpp b/tools/editor/plugins/canvas_item_editor_plugin.cpp
index 5fa0d88ca5..531be2d195 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -79,7 +79,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);
@@ -1064,7 +1064,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) {
{
@@ -1072,7 +1072,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;
@@ -1962,7 +1962,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;
@@ -3209,7 +3208,7 @@ void CanvasItemEditor::_bind_methods() {
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_input_event",&CanvasItemEditor::_viewport_input_event);
+ 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);
@@ -3344,6 +3343,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 );
@@ -3351,7 +3351,7 @@ 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);
@@ -3436,7 +3436,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();
@@ -3461,7 +3461,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");
/*
@@ -3473,7 +3473,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();
@@ -3488,7 +3488,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();
@@ -3534,7 +3534,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();
@@ -3571,7 +3571,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;
@@ -3671,7 +3671,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();
@@ -3771,7 +3774,7 @@ void CanvasItemEditorViewport::_create_nodes(Node* parent, Node* child, String&
if (default_type=="Patch9Frame") {
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));
@@ -3798,7 +3801,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;
}
@@ -3899,7 +3902,7 @@ bool CanvasItemEditorViewport::can_drop_data(const Point2& p_point,const Variant
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;
}
@@ -3957,7 +3960,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);
@@ -4016,7 +4020,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");
@@ -4024,6 +4030,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 de6d0c088f..ee36554477 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.h
+++ b/tools/editor/plugins/canvas_item_editor_plugin.h
@@ -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);
@@ -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 e6e8d94d78..710b9a80c0 100644
--- a/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
@@ -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)
@@ -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;
diff --git a/tools/editor/plugins/collision_polygon_2d_editor_plugin.h b/tools/editor/plugins/collision_polygon_2d_editor_plugin.h
index 5230867515..89f5ed9f06 100644
--- a/tools/editor/plugins/collision_polygon_2d_editor_plugin.h
+++ b/tools/editor/plugins/collision_polygon_2d_editor_plugin.h
@@ -81,7 +81,7 @@ 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);
};
@@ -95,7 +95,7 @@ class CollisionPolygon2DEditorPlugin : public EditorPlugin {
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 Matrix32& 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 5ac4023177..010d6f1a47 100644
--- a/tools/editor/plugins/collision_polygon_editor_plugin.cpp
+++ b/tools/editor/plugins/collision_polygon_editor_plugin.cpp
@@ -109,7 +109,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;
@@ -478,11 +478,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++) {
@@ -561,7 +561,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;
diff --git a/tools/editor/plugins/collision_polygon_editor_plugin.h b/tools/editor/plugins/collision_polygon_editor_plugin.h
index 2434a24cc8..cd722048db 100644
--- a/tools/editor/plugins/collision_polygon_editor_plugin.h
+++ b/tools/editor/plugins/collision_polygon_editor_plugin.h
@@ -92,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();
@@ -107,7 +107,7 @@ class CollisionPolygonEditorPlugin : public EditorPlugin {
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; }
diff --git a/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp b/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
index 3761ab6185..a7b8e1d704 100644
--- a/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
@@ -303,7 +303,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;
diff --git a/tools/editor/plugins/collision_shape_2d_editor_plugin.h b/tools/editor/plugins/collision_shape_2d_editor_plugin.h
index 2ea7ae9535..589f7ae9f8 100644
--- a/tools/editor/plugins/collision_shape_2d_editor_plugin.h
+++ b/tools/editor/plugins/collision_shape_2d_editor_plugin.h
@@ -73,7 +73,7 @@ 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);
@@ -86,7 +86,7 @@ class CollisionShape2DEditorPlugin : public EditorPlugin {
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 Matrix32& 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 09bed1c2d0..90ec1e9f4e 100644
--- a/tools/editor/plugins/color_ramp_editor_plugin.cpp
+++ b/tools/editor/plugins/color_ramp_editor_plugin.cpp
@@ -75,7 +75,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();
diff --git a/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp b/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
index a981089cc5..da5c07221e 100644
--- a/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+++ b/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
@@ -310,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);
diff --git a/tools/editor/plugins/editor_preview_plugins.cpp b/tools/editor/plugins/editor_preview_plugins.cpp
index 5a41f7e9e8..9dcfc2fa94 100644
--- a/tools/editor/plugins/editor_preview_plugins.cpp
+++ b/tools/editor/plugins/editor_preview_plugins.cpp
@@ -118,12 +118,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++) {
@@ -193,14 +193,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())
@@ -311,10 +311,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++) {
@@ -535,15 +535,15 @@ Ref<Texture> EditorSamplePreviewPlugin::generate(const RES& p_from) {
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();
@@ -776,7 +776,7 @@ 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_RGB8,img),0);
diff --git a/tools/editor/plugins/item_list_editor_plugin.cpp b/tools/editor/plugins/item_list_editor_plugin.cpp
index d519ce43ca..f31074a9dc 100644
--- a/tools/editor/plugins/item_list_editor_plugin.cpp
+++ b/tools/editor/plugins/item_list_editor_plugin.cpp
@@ -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/light_occluder_2d_editor_plugin.cpp b/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
index 9d49cccac4..c468404f0f 100644
--- a/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
@@ -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)
@@ -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;
diff --git a/tools/editor/plugins/light_occluder_2d_editor_plugin.h b/tools/editor/plugins/light_occluder_2d_editor_plugin.h
index c5c692dbc7..8f96e44df5 100644
--- a/tools/editor/plugins/light_occluder_2d_editor_plugin.h
+++ b/tools/editor/plugins/light_occluder_2d_editor_plugin.h
@@ -85,7 +85,7 @@ 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);
};
@@ -99,7 +99,7 @@ class LightOccluder2DEditorPlugin : public EditorPlugin {
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 Matrix32& 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 3ef1818135..d5ddd3804b 100644
--- a/tools/editor/plugins/material_editor_plugin.cpp
+++ b/tools/editor/plugins/material_editor_plugin.cpp
@@ -3,7 +3,7 @@
#if 0
-void MaterialEditor::_input_event(InputEvent p_event) {
+void MaterialEditor::_gui_input(InputEvent p_event) {
}
@@ -93,7 +93,7 @@ void MaterialEditor::_button_pressed(Node* p_button) {
void MaterialEditor::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&MaterialEditor::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&MaterialEditor::_gui_input);
ClassDB::bind_method(_MD("_button_pressed"),&MaterialEditor::_button_pressed);
}
@@ -143,10 +143,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++) {
@@ -221,10 +221,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);\
@@ -282,7 +282,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);
diff --git a/tools/editor/plugins/material_editor_plugin.h b/tools/editor/plugins/material_editor_plugin.h
index ebdbda9683..556e56e66b 100644
--- a/tools/editor/plugins/material_editor_plugin.h
+++ b/tools/editor/plugins/material_editor_plugin.h
@@ -39,7 +39,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:
diff --git a/tools/editor/plugins/mesh_editor_plugin.cpp b/tools/editor/plugins/mesh_editor_plugin.cpp
index 13f3204a05..db96a60808 100644
--- a/tools/editor/plugins/mesh_editor_plugin.cpp
+++ b/tools/editor/plugins/mesh_editor_plugin.cpp
@@ -29,7 +29,7 @@
#include "mesh_editor_plugin.h"
#if 0
-void MeshEditor::_input_event(InputEvent p_event) {
+void MeshEditor::_gui_input(InputEvent p_event) {
if (p_event.type==InputEvent::MOUSE_MOTION && p_event.mouse_motion.button_mask&BUTTON_MASK_LEFT) {
@@ -136,7 +136,7 @@ void MeshEditor::_button_pressed(Node* p_button) {
void MeshEditor::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&MeshEditor::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&MeshEditor::_gui_input);
ClassDB::bind_method(_MD("_button_pressed"),&MeshEditor::_button_pressed);
}
diff --git a/tools/editor/plugins/mesh_editor_plugin.h b/tools/editor/plugins/mesh_editor_plugin.h
index dc1ae98245..136290ffd4 100644
--- a/tools/editor/plugins/mesh_editor_plugin.h
+++ b/tools/editor/plugins/mesh_editor_plugin.h
@@ -65,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:
diff --git a/tools/editor/plugins/mesh_instance_editor_plugin.cpp b/tools/editor/plugins/mesh_instance_editor_plugin.cpp
index 037dcf22fd..de29991057 100644
--- a/tools/editor/plugins/mesh_instance_editor_plugin.cpp
+++ b/tools/editor/plugins/mesh_instance_editor_plugin.cpp
@@ -241,7 +241,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,7 +249,7 @@ 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);
diff --git a/tools/editor/plugins/multimesh_editor_plugin.cpp b/tools/editor/plugins/multimesh_editor_plugin.cpp
index 9b19542268..b27a66c5f5 100644
--- a/tools/editor/plugins/multimesh_editor_plugin.cpp
+++ b/tools/editor/plugins/multimesh_editor_plugin.cpp
@@ -125,7 +125,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 +137,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 +147,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 +164,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();
@@ -333,7 +333,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"));
@@ -341,7 +341,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 );
diff --git a/tools/editor/plugins/navigation_polygon_editor_plugin.cpp b/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
index d08c89c1ef..cefab98e6d 100644
--- a/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+++ b/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -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)
@@ -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)"));
@@ -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;
diff --git a/tools/editor/plugins/navigation_polygon_editor_plugin.h b/tools/editor/plugins/navigation_polygon_editor_plugin.h
index 50ba0cfedb..d3e56de042 100644
--- a/tools/editor/plugins/navigation_polygon_editor_plugin.h
+++ b/tools/editor/plugins/navigation_polygon_editor_plugin.h
@@ -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,7 +87,7 @@ 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);
};
@@ -101,7 +101,7 @@ class NavigationPolygonEditorPlugin : public EditorPlugin {
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 Matrix32& 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 0eda9d3c1a..331a958518 100644
--- a/tools/editor/plugins/particles_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/particles_2d_editor_plugin.cpp
@@ -74,8 +74,8 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) {
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");
}
diff --git a/tools/editor/plugins/particles_editor_plugin.cpp b/tools/editor/plugins/particles_editor_plugin.cpp
index 4f4477070b..382dc29c61 100644
--- a/tools/editor/plugins/particles_editor_plugin.cpp
+++ b/tools/editor/plugins/particles_editor_plugin.cpp
@@ -77,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++) {
@@ -87,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));
}
@@ -202,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) {
@@ -256,7 +256,7 @@ void ParticlesEditor::_generate_emission_points() {
return;
}
- DVector<Face3>::Read r = geometry.read();
+ PoolVector<Face3>::Read r = geometry.read();
AABB aabb;
@@ -356,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"));
diff --git a/tools/editor/plugins/particles_editor_plugin.h b/tools/editor/plugins/particles_editor_plugin.h
index fa4ca3b9ec..c32fbe5ada 100644
--- a/tools/editor/plugins/particles_editor_plugin.h
+++ b/tools/editor/plugins/particles_editor_plugin.h
@@ -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);
diff --git a/tools/editor/plugins/path_2d_editor_plugin.cpp b/tools/editor/plugins/path_2d_editor_plugin.cpp
index 85bd751d23..4e3a0ab720 100644
--- a/tools/editor/plugins/path_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/path_2d_editor_plugin.cpp
@@ -62,7 +62,7 @@ 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;
@@ -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 );
diff --git a/tools/editor/plugins/path_2d_editor_plugin.h b/tools/editor/plugins/path_2d_editor_plugin.h
index d17ecd77db..407d07905f 100644
--- a/tools/editor/plugins/path_2d_editor_plugin.h
+++ b/tools/editor/plugins/path_2d_editor_plugin.h
@@ -94,7 +94,7 @@ 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);
};
@@ -108,7 +108,7 @@ class Path2DEditorPlugin : public EditorPlugin {
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 Matrix32& 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 4d52549533..a69de2e78d 100644
--- a/tools/editor/plugins/path_editor_plugin.cpp
+++ b/tools/editor/plugins/path_editor_plugin.cpp
@@ -285,7 +285,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;
diff --git a/tools/editor/plugins/path_editor_plugin.h b/tools/editor/plugins/path_editor_plugin.h
index 14c1bf0df7..e446dfa7c7 100644
--- a/tools/editor/plugins/path_editor_plugin.h
+++ b/tools/editor/plugins/path_editor_plugin.h
@@ -81,9 +81,9 @@ public:
static PathEditorPlugin* singleton;
Ref<FixedSpatialMaterial> path_material;
Ref<FixedSpatialMaterial> path_thin_material;
- 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);
-// 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; }
diff --git a/tools/editor/plugins/polygon_2d_editor_plugin.cpp b/tools/editor/plugins/polygon_2d_editor_plugin.cpp
index 7900f032c0..ebff3f3130 100644
--- a/tools/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -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;
@@ -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];
@@ -684,7 +684,6 @@ void Polygon2DEditor::_uv_draw() {
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());
@@ -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()));
@@ -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;
@@ -854,7 +853,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
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 ));
@@ -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);
+
}
diff --git a/tools/editor/plugins/polygon_2d_editor_plugin.h b/tools/editor/plugins/polygon_2d_editor_plugin.h
index a2fd3dc4d0..c3051ca88d 100644
--- a/tools/editor/plugins/polygon_2d_editor_plugin.h
+++ b/tools/editor/plugins/polygon_2d_editor_plugin.h
@@ -81,7 +81,7 @@ class Polygon2DEditor : public HBoxContainer {
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,7 +137,7 @@ 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);
};
@@ -151,7 +151,7 @@ class Polygon2DEditorPlugin : public EditorPlugin {
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 Matrix32& 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 f664fccbc8..fc6a548595 100644
--- a/tools/editor/plugins/resource_preloader_editor_plugin.cpp
+++ b/tools/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -34,7 +34,7 @@
-void ResourcePreloaderEditor::_input_event(InputEvent p_event) {
+void ResourcePreloaderEditor::_gui_input(InputEvent p_event) {
}
@@ -381,7 +381,7 @@ void ResourcePreloaderEditor::drop_data_fw(const Point2& p_point,const Variant&
void ResourcePreloaderEditor::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&ResourcePreloaderEditor::_input_event);
+ 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);
diff --git a/tools/editor/plugins/resource_preloader_editor_plugin.h b/tools/editor/plugins/resource_preloader_editor_plugin.h
index e7d883d20a..6990301ded 100644
--- a/tools/editor/plugins/resource_preloader_editor_plugin.h
+++ b/tools/editor/plugins/resource_preloader_editor_plugin.h
@@ -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:
diff --git a/tools/editor/plugins/rich_text_editor_plugin.cpp b/tools/editor/plugins/rich_text_editor_plugin.cpp
index 0817279068..f91af2fa60 100644
--- a/tools/editor/plugins/rich_text_editor_plugin.cpp
+++ b/tools/editor/plugins/rich_text_editor_plugin.cpp
@@ -110,7 +110,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");
diff --git a/tools/editor/plugins/sample_editor_plugin.cpp b/tools/editor/plugins/sample_editor_plugin.cpp
index a8fb5743b0..12ec7c8260 100644
--- a/tools/editor/plugins/sample_editor_plugin.cpp
+++ b/tools/editor/plugins/sample_editor_plugin.cpp
@@ -35,7 +35,7 @@
-void SampleEditor::_input_event(InputEvent p_event) {
+void SampleEditor::_gui_input(InputEvent p_event) {
}
@@ -77,15 +77,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,7 +308,7 @@ 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_RGB8,img));
@@ -348,7 +348,7 @@ void SampleEditor::edit(Ref<Sample> p_sample) {
void SampleEditor::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&SampleEditor::_input_event);
+ 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);
diff --git a/tools/editor/plugins/sample_editor_plugin.h b/tools/editor/plugins/sample_editor_plugin.h
index ad6fffc3ef..59cdb10304 100644
--- a/tools/editor/plugins/sample_editor_plugin.h
+++ b/tools/editor/plugins/sample_editor_plugin.h
@@ -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:
diff --git a/tools/editor/plugins/sample_library_editor_plugin.cpp b/tools/editor/plugins/sample_library_editor_plugin.cpp
index 730c3b69a2..a7ccfb6978 100644
--- a/tools/editor/plugins/sample_library_editor_plugin.cpp
+++ b/tools/editor/plugins/sample_library_editor_plugin.cpp
@@ -35,7 +35,7 @@
#include "sample_editor_plugin.h"
-void SampleLibraryEditor::_input_event(InputEvent p_event) {
+void SampleLibraryEditor::_gui_input(InputEvent p_event) {
}
@@ -66,7 +66,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++) {
@@ -400,7 +400,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,7 +411,7 @@ void SampleLibraryEditor::drop_data_fw(const Point2& p_point,const Variant& p_da
void SampleLibraryEditor::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&SampleLibraryEditor::_input_event);
+ 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);
diff --git a/tools/editor/plugins/sample_library_editor_plugin.h b/tools/editor/plugins/sample_library_editor_plugin.h
index 46b216af82..1856d338ed 100644
--- a/tools/editor/plugins/sample_library_editor_plugin.h
+++ b/tools/editor/plugins/sample_library_editor_plugin.h
@@ -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:
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp
index b3d86817c7..e167ba2d56 100644
--- a/tools/editor/plugins/script_editor_plugin.cpp
+++ b/tools/editor/plugins/script_editor_plugin.cpp
@@ -183,7 +183,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();
}
@@ -254,11 +254,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"));
@@ -2128,7 +2128,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");
@@ -2137,7 +2137,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();
@@ -2153,7 +2153,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 );
@@ -2170,7 +2170,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
@@ -2247,7 +2247,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?:"));
diff --git a/tools/editor/plugins/script_text_editor.cpp b/tools/editor/plugins/script_text_editor.cpp
index 3921c05fd1..391578817a 100644
--- a/tools/editor/plugins/script_text_editor.cpp
+++ b/tools/editor/plugins/script_text_editor.cpp
@@ -979,7 +979,7 @@ void ScriptTextEditor::_bind_methods() {
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_input_event", &ScriptTextEditor::_text_edit_input_event);
+ ClassDB::bind_method("_text_edit_gui_input", &ScriptTextEditor::_text_edit_gui_input);
ClassDB::bind_method("_color_changed", &ScriptTextEditor::_color_changed);
@@ -1159,7 +1159,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) {
@@ -1226,20 +1226,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();
@@ -1269,17 +1270,17 @@ ScriptTextEditor::ScriptTextEditor() {
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);
@@ -1309,7 +1310,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);
@@ -1329,7 +1330,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);
diff --git a/tools/editor/plugins/script_text_editor.h b/tools/editor/plugins/script_text_editor.h
index 064e8552b8..215d0626f0 100644
--- a/tools/editor/plugins/script_text_editor.h
+++ b/tools/editor/plugins/script_text_editor.h
@@ -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); }
diff --git a/tools/editor/plugins/shader_editor_plugin.cpp b/tools/editor/plugins/shader_editor_plugin.cpp
index 1760191349..17b10ecd70 100644
--- a/tools/editor/plugins/shader_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_editor_plugin.cpp
@@ -469,7 +469,7 @@ 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 );
@@ -483,7 +483,7 @@ ShaderEditor::ShaderEditor() {
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_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");
+ search_menu->get_popup()->connect("id_pressed", this,"_menu_option");
goto_line_dialog = memnew(GotoLineDialog);
diff --git a/tools/editor/plugins/shader_graph_editor_plugin.cpp b/tools/editor/plugins/shader_graph_editor_plugin.cpp
index 15906563c7..2ff9f94d99 100644
--- a/tools/editor/plugins/shader_graph_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_graph_editor_plugin.cpp
@@ -37,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) {
@@ -296,7 +296,7 @@ Vector<Color> GraphColorRampEdit::get_colors() const{
void GraphColorRampEdit::_bind_methods(){
- ClassDB::bind_method(_MD("_input_event"),&GraphColorRampEdit::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&GraphColorRampEdit::_gui_input);
ClassDB::bind_method(_MD("_color_changed"),&GraphColorRampEdit::_color_changed);
ADD_SIGNAL(MethodInfo("ramp_changed"));
}
@@ -310,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) {
@@ -658,7 +658,7 @@ Vector<Vector2> GraphCurveMapEdit::get_points() const {
void GraphCurveMapEdit::_bind_methods(){
- ClassDB::bind_method(_MD("_input_event"),&GraphCurveMapEdit::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&GraphCurveMapEdit::_gui_input);
ADD_SIGNAL(MethodInfo("curve_changed"));
}
@@ -986,13 +986,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];
@@ -1001,8 +1001,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"));
@@ -1027,10 +1027,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];
}
@@ -1038,7 +1038,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"));
@@ -2131,14 +2131,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;
@@ -2184,12 +2184,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;
@@ -2320,7 +2320,7 @@ void ShaderGraphView::_create_node(int p_id) {
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..");
@@ -2807,7 +2807,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");
}
diff --git a/tools/editor/plugins/shader_graph_editor_plugin.h b/tools/editor/plugins/shader_graph_editor_plugin.h
index c9887718f8..477a45bd1f 100644
--- a/tools/editor/plugins/shader_graph_editor_plugin.h
+++ b/tools/editor/plugins/shader_graph_editor_plugin.h
@@ -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:
@@ -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:
diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp
index 439b884937..5b60e4fe05 100644
--- a/tools/editor/plugins/spatial_editor_plugin.cpp
+++ b/tools/editor/plugins/spatial_editor_plugin.cpp
@@ -824,7 +824,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;
}
@@ -898,10 +898,10 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
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++) {
@@ -1852,7 +1852,7 @@ void SpatialEditorViewport::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) {
surface->connect("draw",this,"_draw");
- surface->connect("input_event",this,"_sinput");
+ surface->connect("gui_input",this,"_sinput");
surface->connect("mouse_enter",this,"_smouseenter");
preview_camera->set_icon(get_icon("Camera","EditorIcons"));
_init_gizmo_instance(index);
@@ -2423,7 +2423,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);
@@ -2440,7 +2440,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) {
@@ -2963,9 +2963,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 );
@@ -2987,9 +2987,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 );
@@ -3009,13 +3009,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 );
@@ -3035,13 +3035,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 );
@@ -3058,17 +3058,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 );
@@ -3179,8 +3179,8 @@ void SpatialEditor::_init_indicators() {
indicator_mat->set_feature(FixedSpatialMaterial::FEATURE_TRANSPARENT,true);
- DVector<Color> grid_colors[3];
- DVector<Vector3> grid_points[3];
+ PoolVector<Color> grid_colors[3];
+ PoolVector<Vector3> grid_points[3];
Vector<Color> origin_colors;
Vector<Vector3> origin_points;
@@ -3262,7 +3262,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));
@@ -3505,7 +3505,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
}
@@ -3702,7 +3702,7 @@ void SpatialEditor::_node_removed(Node* p_node) {
void SpatialEditor::_bind_methods() {
-// ClassDB::bind_method("_input_event",&SpatialEditor::_input_event);
+// 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);
@@ -3907,7 +3907,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"));
@@ -3945,7 +3945,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 */
@@ -3979,7 +3979,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");
@@ -4001,13 +4001,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( 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);
diff --git a/tools/editor/plugins/spatial_editor_plugin.h b/tools/editor/plugins/spatial_editor_plugin.h
index f177dcab45..e09a29d4f8 100644
--- a/tools/editor/plugins/spatial_editor_plugin.h
+++ b/tools/editor/plugins/spatial_editor_plugin.h
@@ -481,7 +481,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();
diff --git a/tools/editor/plugins/sprite_frames_editor_plugin.cpp b/tools/editor/plugins/sprite_frames_editor_plugin.cpp
index 7c6e2f6532..67948b0302 100644
--- a/tools/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/tools/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -35,7 +35,7 @@
-void SpriteFramesEditor::_input_event(InputEvent p_event) {
+void SpriteFramesEditor::_gui_input(InputEvent p_event) {
}
@@ -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));
@@ -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,7 +754,7 @@ void SpriteFramesEditor::drop_data_fw(const Point2& p_point,const Variant& p_dat
void SpriteFramesEditor::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&SpriteFramesEditor::_input_event);
+ 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);
diff --git a/tools/editor/plugins/sprite_frames_editor_plugin.h b/tools/editor/plugins/sprite_frames_editor_plugin.h
index a6fc53d344..36a022b7e4 100644
--- a/tools/editor/plugins/sprite_frames_editor_plugin.h
+++ b/tools/editor/plugins/sprite_frames_editor_plugin.h
@@ -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:
diff --git a/tools/editor/plugins/texture_editor_plugin.cpp b/tools/editor/plugins/texture_editor_plugin.cpp
index c8cf3d9701..7ff7d0f2f7 100644
--- a/tools/editor/plugins/texture_editor_plugin.cpp
+++ b/tools/editor/plugins/texture_editor_plugin.cpp
@@ -4,7 +4,7 @@
#include "globals.h"
#include "tools/editor/editor_settings.h"
-void TextureEditor::_input_event(InputEvent p_event) {
+void TextureEditor::_gui_input(InputEvent p_event) {
}
@@ -84,7 +84,7 @@ void TextureEditor::edit(Ref<Texture> p_texture) {
void TextureEditor::_bind_methods() {
- ClassDB::bind_method(_MD("_input_event"),&TextureEditor::_input_event);
+ ClassDB::bind_method(_MD("_gui_input"),&TextureEditor::_gui_input);
}
diff --git a/tools/editor/plugins/texture_editor_plugin.h b/tools/editor/plugins/texture_editor_plugin.h
index 5695e18f4f..4b05f7f7ab 100644
--- a/tools/editor/plugins/texture_editor_plugin.h
+++ b/tools/editor/plugins/texture_editor_plugin.h
@@ -17,7 +17,7 @@ class TextureEditor : 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:
diff --git a/tools/editor/plugins/texture_region_editor_plugin.cpp b/tools/editor/plugins/texture_region_editor_plugin.cpp
index 4a25e636aa..fd3e8fb0f3 100644
--- a/tools/editor/plugins/texture_region_editor_plugin.cpp
+++ b/tools/editor/plugins/texture_region_editor_plugin.cpp
@@ -61,7 +61,6 @@ void TextureRegionEditor::_region_draw()
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());
@@ -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 ));
@@ -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)
diff --git a/tools/editor/plugins/theme_editor_plugin.cpp b/tools/editor/plugins/theme_editor_plugin.cpp
index 2950a3485f..a700ddce7a 100644
--- a/tools/editor/plugins/theme_editor_plugin.cpp
+++ b/tools/editor/plugins/theme_editor_plugin.cpp
@@ -679,7 +679,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 );
@@ -711,7 +711,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);
@@ -898,7 +898,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 +918,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 );
diff --git a/tools/editor/plugins/tile_map_editor_plugin.cpp b/tools/editor/plugins/tile_map_editor_plugin.cpp
index c4bde13352..1b3bcb7d2c 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_map_editor_plugin.cpp
@@ -189,7 +189,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();
}
}
@@ -289,7 +289,7 @@ void TileMapEditor::_pick_tile(const Point2& p_pos) {
canvas_item_editor->update();
}
-DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase, bool preview) {
+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,7 +297,7 @@ 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>();
}
Rect2i r = node->get_item_rect();
@@ -324,7 +324,7 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase,
if(invalidate_cache) {
for(int i = 0; i < area; ++i)
bucket_cache_visited[i] = false;
- bucket_cache = DVector<Vector2>();
+ bucket_cache = PoolVector<Vector2>();
bucket_cache_tile = prev_id;
bucket_cache_rect = r;
}
@@ -333,7 +333,7 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase,
}
}
- DVector<Vector2> points;
+ PoolVector<Vector2> points;
List<Point2i> queue;
queue.push_back(p_start);
@@ -370,10 +370,10 @@ DVector<Vector2> TileMapEditor::_bucket_fill(const Point2i& p_start, bool erase,
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"];
@@ -386,10 +386,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++) {
@@ -507,8 +507,8 @@ void TileMapEditor::_draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h
void TileMapEditor::_draw_fill_preview(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Matrix32& p_xform) {
- DVector<Vector2> points = _bucket_fill(p_point, false, true);
- DVector<Vector2>::Read pr = points.read();
+ 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();
@@ -595,7 +595,7 @@ 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())
return false;
@@ -748,7 +748,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;
@@ -854,7 +854,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;
@@ -1441,7 +1441,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 );
@@ -1489,7 +1489,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);
diff --git a/tools/editor/plugins/tile_map_editor_plugin.h b/tools/editor/plugins/tile_map_editor_plugin.h
index 612593c56a..79c2dcd0bd 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.h
+++ b/tools/editor/plugins/tile_map_editor_plugin.h
@@ -109,7 +109,7 @@ class TileMapEditor : public VBoxContainer {
bool * bucket_cache_visited;
Rect2i bucket_cache_rect;
int bucket_cache_tile;
- DVector<Vector2> bucket_cache;
+ PoolVector<Vector2> bucket_cache;
struct CellOp {
int idx;
@@ -134,10 +134,10 @@ class TileMapEditor : public VBoxContainer {
void _pick_tile(const Point2& p_pos);
- DVector<Vector2> _bucket_fill(const Point2i& p_start, bool erase=false, bool preview=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);
@@ -175,7 +175,7 @@ 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);
@@ -190,7 +190,7 @@ class TileMapEditorPlugin : public EditorPlugin {
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 Matrix32& 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 aae2f5c9bc..34002ee863 100644
--- a/tools/editor/plugins/tile_set_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_set_editor_plugin.cpp
@@ -240,7 +240,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);
diff --git a/tools/editor/project_export.cpp b/tools/editor/project_export.cpp
index b183de7c7b..27f2f7dbc9 100644
--- a/tools/editor/project_export.cpp
+++ b/tools/editor/project_export.cpp
@@ -674,7 +674,7 @@ void ProjectExportDialog::_create_android_keystore_window() {
vb->add_child(hb);
keystore_create_dialog->add_child(vb);
- keystore_create_dialog->set_child_rect(vb);
+ //keystore_create_dialog->set_child_rect(vb);
add_child(keystore_create_dialog);
keystore_create_dialog->connect("confirmed", this, "_create_android_keystore");
@@ -1345,7 +1345,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);
@@ -1577,7 +1577,7 @@ 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_dialog->set_child_rect(scroll);
atlas_preview_frame = memnew( TextureFrame );
scroll->add_child(atlas_preview_frame);
add_child(atlas_preview_dialog);
@@ -1732,7 +1732,7 @@ Error ProjectExport::export_project(const String& p_preset) {
String selected=p_preset;
- DVector<String> preset_settings = GlobalConfig::get_singleton()->get("export_presets/"+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=="") {
@@ -2084,7 +2084,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());
@@ -2111,7 +2111,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_manager.cpp b/tools/editor/project_manager.cpp
index 2af95516fa..74ae66d727 100644
--- a/tools/editor/project_manager.cpp
+++ b/tools/editor/project_manager.cpp
@@ -404,7 +404,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:"));
@@ -856,7 +856,7 @@ 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 );
diff --git a/tools/editor/project_settings.cpp b/tools/editor/project_settings.cpp
index 0f267f2fbb..6e9ea5e873 100644
--- a/tools/editor/project_settings.cpp
+++ b/tools/editor/project_settings.cpp
@@ -82,8 +82,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;
@@ -198,7 +198,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;
@@ -207,20 +207,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;
}
}
@@ -361,10 +361,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_value(0);
- device_index_label->set_text(TTR("Joystick Axis Index:"));
+ device_index_label->set_text(TTR("Joypad Axis Index:"));
device_index->clear();
for(int i=0;i<JOY_AXIS_MAX*2;i++) {
@@ -374,10 +374,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_value(3);
- device_index_label->set_text(TTR("Joystick Button Index:"));
+ device_index_label->set_text(TTR("Joypad Button Index:"));
device_index->clear();
for(int i=0;i<JOY_BUTTON_MAX;i++) {
@@ -526,7 +526,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)
@@ -552,7 +552,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);
@@ -1223,7 +1223,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 );
@@ -1351,7 +1351,7 @@ 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);
@@ -1399,7 +1399,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);
@@ -1413,7 +1413,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");
@@ -1424,7 +1424,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);
diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp
index 294a71aa50..4c69412b3b 100644
--- a/tools/editor/property_editor.cpp
+++ b/tools/editor/property_editor.cpp
@@ -226,8 +226,19 @@ void CustomPropertyEditor::_menu_option(int p_which) {
ERR_FAIL_COND( inheritors_array.empty() );
+
+
String intype=inheritors_array[p_which-TYPE_BASE_ID];
+ 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>();
@@ -1126,6 +1137,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()) {
@@ -1262,7 +1289,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) {
@@ -2017,7 +2045,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 );
@@ -2033,13 +2061,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;
@@ -3807,6 +3835,8 @@ void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) {
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);
@@ -3816,6 +3846,17 @@ void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) {
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");
+ }
+ }
}
undo_redo->add_do_method(this,"emit_signal",_prop_edited,p_name);
undo_redo->add_undo_method(this,"emit_signal",_prop_edited,p_name);
diff --git a/tools/editor/property_editor.h b/tools/editor/property_editor.h
index df180cab18..af7d01f935 100644
--- a/tools/editor/property_editor.h
+++ b/tools/editor/property_editor.h
@@ -99,6 +99,7 @@ class CustomPropertyEditor : public Popup {
ColorPicker *color_picker;
TextEdit *text_edit;
bool read_only;
+ bool picking_viewport;
CheckBox *checks20[20];
SpinBox *spinbox;
HSlider *slider;
diff --git a/tools/editor/property_selector.cpp b/tools/editor/property_selector.cpp
index a5b3b9324d..3d9695ac2a 100644
--- a/tools/editor/property_selector.cpp
+++ b/tools/editor/property_selector.cpp
@@ -18,7 +18,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();
@@ -321,8 +321,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;
@@ -574,11 +574,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/quick_open.cpp b/tools/editor/quick_open.cpp
index f129a365ce..ff5ecdf01b 100644
--- a/tools/editor/quick_open.cpp
+++ b/tools/editor/quick_open.cpp
@@ -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();
@@ -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/reparent_dialog.cpp b/tools/editor/reparent_dialog.cpp
index c15bc2f482..a8909b0772 100644
--- a/tools/editor/reparent_dialog.cpp
+++ b/tools/editor/reparent_dialog.cpp
@@ -88,7 +88,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);
diff --git a/tools/editor/resources_dock.cpp b/tools/editor/resources_dock.cpp
index 40876f08b7..c8fa1eda77 100644
--- a/tools/editor/resources_dock.cpp
+++ b/tools/editor/resources_dock.cpp
@@ -366,7 +366,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 +377,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/run_settings_dialog.cpp b/tools/editor/run_settings_dialog.cpp
index 68fab09bf1..4d69c7ad84 100644
--- a/tools/editor/run_settings_dialog.cpp
+++ b/tools/editor/run_settings_dialog.cpp
@@ -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/scene_tree_dock.cpp b/tools/editor/scene_tree_dock.cpp
index d9d5e82cfd..c171c49c7b 100644
--- a/tools/editor/scene_tree_dock.cpp
+++ b/tools/editor/scene_tree_dock.cpp
@@ -174,7 +174,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();
@@ -250,7 +250,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));
@@ -744,7 +744,7 @@ 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 {
@@ -2013,7 +2013,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_editor.cpp b/tools/editor/scene_tree_editor.cpp
index b4c8761fa3..4052c0d468 100644
--- a/tools/editor/scene_tree_editor.cpp
+++ b/tools/editor/scene_tree_editor.cpp
@@ -1210,14 +1210,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);
@@ -1302,7 +1302,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/script_create_dialog.cpp b/tools/editor/script_create_dialog.cpp
index 76f941ef7f..d1095271fc 100644
--- a/tools/editor/script_create_dialog.cpp
+++ b/tools/editor/script_create_dialog.cpp
@@ -353,7 +353,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
VBoxContainer *vb = memnew( VBoxContainer );
add_child(vb);
- set_child_rect(vb);
+ //set_child_rect(vb);
class_name = memnew( LineEdit );
diff --git a/tools/editor/settings_config_dialog.cpp b/tools/editor/settings_config_dialog.cpp
index 112dee291f..c72f2641b7 100644
--- a/tools/editor/settings_config_dialog.cpp
+++ b/tools/editor/settings_config_dialog.cpp
@@ -307,7 +307,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 +380,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/spatial_editor_gizmos.cpp b/tools/editor/spatial_editor_gizmos.cpp
index 809c824d91..ed96fe9e3f 100644
--- a/tools/editor/spatial_editor_gizmos.cpp
+++ b/tools/editor/spatial_editor_gizmos.cpp
@@ -117,10 +117,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);
@@ -246,10 +246,10 @@ void EditorSpatialGizmo::add_handles(const Vector<Vector3> &p_handles, bool p_bi
a.resize(VS::ARRAY_MAX);
a[VS::ARRAY_VERTEX]=p_handles;
print_line("handles?: "+itos(p_handles.size()));
- DVector<Color> colors;
+ 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);
@@ -1425,11 +1425,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;
@@ -2056,7 +2056,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) {
@@ -2562,8 +2562,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);
@@ -2582,11 +2582,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;
@@ -3391,8 +3391,8 @@ SpatialEditorGizmos::SpatialEditorGizmos() {
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));
@@ -3424,8 +3424,8 @@ SpatialEditorGizmos::SpatialEditorGizmos() {
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));
@@ -3491,7 +3491,7 @@ SpatialEditorGizmos::SpatialEditorGizmos() {
{
- DVector<Vector3> vertices;
+ PoolVector<Vector3> vertices;
#undef ADD_VTX
#define ADD_VTX(m_idx);\
diff --git a/tools/translations/ar.po b/tools/translations/ar.po
index 8186d8a3ee..0bfef1cfe1 100644
--- a/tools/translations/ar.po
+++ b/tools/translations/ar.po
@@ -556,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 "
@@ -1763,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 ""
@@ -2739,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 ""
@@ -4777,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 ""
@@ -5551,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 ""
@@ -6010,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 ""
@@ -6190,10 +6234,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6417,12 +6457,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6718,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 03ac820c9c..9197a6e702 100644
--- a/tools/translations/bg.po
+++ b/tools/translations/bg.po
@@ -595,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 "
@@ -1806,6 +1802,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2783,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 ""
@@ -4822,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 ""
@@ -5596,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 ""
@@ -6055,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 ""
@@ -6236,10 +6281,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6467,12 +6508,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6770,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 3ef7c22cd2..a3a3a072fc 100644
--- a/tools/translations/bn.po
+++ b/tools/translations/bn.po
@@ -2,13 +2,13 @@
# 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,7 +30,7 @@ msgstr "বিন্যাস জানার জন্য যথেষ্ট
#: modules/gdscript/gd_functions.cpp
msgid "step argument is zero!"
-msgstr "ধাপ মান শূন্য!"
+msgstr "ধাপ মান/আর্গুমেন্ট শূন্য!"
#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
@@ -161,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"
@@ -172,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
@@ -258,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
@@ -287,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"
@@ -308,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"
@@ -328,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/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
msgstr ""
+"সার্টিফিকেট ফাইলটি পড়া সম্ভব হচ্ছে না। ফাইলের পথ এবং পাসওয়ার্ড দুটোই কি সঠিক দেয়া "
+"হয়েছে?"
#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr ""
+msgstr "স্বাক্ষরিত বস্তু (signature object) তৈরিতে সমস্যা হয়েছে।"
#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "প্যাকেজের স্বাক্ষর (package signature) তৈরিতে সমস্যা হয়েছে।"
#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"এক্সপোর্ট এর জন্য প্রয়োজণীয় টেমপ্লেট পাওয়া যায়নি।\n"
+"এক্সপোর্ট টেমপ্লেট-সমূহ ডাউনলোড করে ইন্সটল করুন।"
#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "স্বনির্মিত ডিবাগ (debug) প্যাকেজ খুঁজে পাওয়া যায়নি।"
#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "স্বনির্মিত রিলিস (release) প্যাকেজ খুঁজে পাওয়া যায়নি।"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid unique name."
-msgstr "ফন্টের আকার অগ্র্যহনযোগ্য।"
+msgstr "একক (অনন্য) নামটি অগ্রহনযোগ্য।"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid product GUID."
-msgstr "ফন্টের আকার অগ্র্যহনযোগ্য।"
+msgstr "পণ্যের অগ্রহনযোগ্য GUID।"
#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr ""
+msgstr "প্রকাশকের অগ্রহনযোগ্য GUID।"
#: platform/uwp/export/export.cpp
msgid "Invalid background color."
-msgstr ""
+msgstr "পটভূমির (background) অগ্রহনযোগ্য রঙ।"
#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "স্টোর লোগোর (Store Logo) ছবির অগ্রহনযোগ্য মাত্রা (৫০x৫০ হতে হবে)।"
#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "৪৪x৪৪ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৪৪x৪৪ হতে হবে)।"
#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "৭১x৭১ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৭১x৭১ হতে হবে)।"
#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "১৫০x১৫০ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (১৫০x১৫০ হতে হবে)।"
#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "৩১০x৩১০ বর্গ লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৩১০x৩১০ হতে হবে)।"
#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "৩১০x১৫০ প্রশস্ত লোগোর (logo) ছবির অগ্রহনযোগ্য মাত্রা (৩১০x১৫০ হতে হবে)।"
#: 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 ""
@@ -474,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 ""
@@ -592,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 "
@@ -643,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 ""
@@ -907,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"
@@ -1166,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
@@ -1250,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
@@ -1351,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
@@ -1431,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 ""
@@ -1578,434 +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/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 ""
@@ -2013,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 ""
@@ -2020,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 ""
@@ -2027,246 +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/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
@@ -2278,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 ""
@@ -2365,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 ""
@@ -2397,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 ""
@@ -2409,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:"
@@ -2692,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
@@ -2804,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
@@ -2814,680 +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 ""
+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
@@ -3495,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"
@@ -3773,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"
@@ -3793,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
@@ -3801,188 +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 ""
+msgstr "স্ন্যাপ (পিক্সেলসমূহ):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
-msgstr ""
+msgstr "%s সংযুক্ত করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "%s সংযুক্ত হচ্ছে..."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr ""
+msgstr "নোড তৈরি করুন"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "Error instancing scene from %s"
-msgstr ""
+msgstr "%s হতে দৃশ্য ইনস্ট্যান্স করাতে সমস্যা হয়েছে"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "OK :("
-msgstr ""
+msgstr "ঠিক আছে :("
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
-msgstr ""
+msgstr "ইনস্ট্যান্স করার জন্য প্রয়োজনীয় ধারক উপস্থিত নেই।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "এই কাজটি করার জন্য একটি একক নির্বাচিত নোড প্রয়োজন।"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change default type"
-msgstr ""
+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
@@ -3991,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
@@ -4000,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/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"
@@ -6272,191 +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 ""
+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 ""
+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 ""
+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 ""
+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 "Attach Script"
-msgstr ""
+msgstr "স্ক্রিপ্ট সংযুক্ত করুন"
#: tools/editor/scene_tree_dock.cpp
msgid "Clear Script"
-msgstr ""
+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)"
@@ -6464,289 +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 "Attach a new or existing script for the selected node."
-msgstr ""
+msgstr "একটি নতুন বা বিদ্যমান স্ক্রিপ্ট নির্বাচিত নোডে সংযুক্ত করুন।"
#: tools/editor/scene_tree_dock.cpp
msgid "Clear a 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 ""
+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
-#, fuzzy
msgid "Error loading script from %s"
-msgstr "ফন্ট তুলতে/লোডে সমস্যা হয়েছে।"
+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 "Invalid extension"
-msgstr ""
+msgstr "অগ্রহণযোগ্য এক্সটেনশন"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Create new script"
-msgstr "ফোল্ডার তৈরি করুন"
+msgstr "নতুন স্ক্রিপ্ট তৈরি করুন"
#: tools/editor/script_create_dialog.cpp
msgid "Load existing script"
-msgstr ""
+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 "Attach Node Script"
-msgstr ""
+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"
@@ -6783,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 c44f4f9722..266551ee60 100644
--- a/tools/translations/ca.po
+++ b/tools/translations/ca.po
@@ -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 "
@@ -1865,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:"
@@ -2884,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ó:"
@@ -4932,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 ""
@@ -5706,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 ""
@@ -6165,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ó."
@@ -6346,10 +6395,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6576,12 +6621,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6881,6 +6920,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 no conté cap recurs BakedLight."
+
#~ msgid ""
#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
#~ "'user://', or 'local://'"
diff --git a/tools/translations/cs.po b/tools/translations/cs.po
index e328361460..4020725d74 100644
--- a/tools/translations/cs.po
+++ b/tools/translations/cs.po
@@ -589,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 "
@@ -1832,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 ""
@@ -2808,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 ""
@@ -4848,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 ""
@@ -5622,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 ""
@@ -6081,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 ""
@@ -6261,10 +6308,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6491,12 +6534,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6793,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 f001adc48f..e0d4d9bd98 100644
--- a/tools/translations/da.po
+++ b/tools/translations/da.po
@@ -597,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 "
@@ -1834,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 ""
@@ -2810,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 ""
@@ -4849,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 ""
@@ -5623,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 ""
@@ -6082,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 ""
@@ -6262,10 +6308,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6491,12 +6533,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6794,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 69e50cc15c..68ce048b5b 100644
--- a/tools/translations/de.po
+++ b/tools/translations/de.po
@@ -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
@@ -182,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"
@@ -235,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
@@ -411,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/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/uwp/export/export.cpp
-#, fuzzy
msgid "Error creating the signature object."
-msgstr "Fehler beim Schreiben des Projekt-PCK!"
+msgstr "Fehler beim erstellen des Signaturobjekts."
#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Fehler beim erstellen der Paketsignatur."
#: 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/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "Selbst konfiguriertes Debug-Paket nicht gefunden."
#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "Selbst konfiguriertes Release-Paket nicht gefunden."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid unique name."
-msgstr "Ungültiger Name."
+msgstr "Ungültiger einzigartiger Name."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid product GUID."
-msgstr "Ungültige Schriftgröße."
+msgstr "Ungültige Produkt-GUID."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid publisher GUID."
-msgstr "Ungültiger Pfad"
+msgstr "Ungültige Verleger-GUID."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid background color."
-msgstr "Eigene Schriftart-Quelle ist ungültig."
+msgstr "Ungültige Hintergrundfarbe."
#: 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/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/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/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/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/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/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 ""
@@ -637,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 "
@@ -688,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 ""
@@ -1468,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:"
@@ -1886,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:"
@@ -2520,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"
@@ -2550,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"
@@ -2904,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:"
@@ -3135,9 +3132,8 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Root Node Name:"
-msgstr "Node-Name:"
+msgstr "Name des Root-Node:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
@@ -3984,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"
@@ -4050,13 +4045,12 @@ msgid "Snap (Pixels):"
msgstr "Einrasten (Pixel):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add %s"
-msgstr "Alle hinzufügen"
+msgstr "%s hinzufügen"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "%s hinzufügen…"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
@@ -4084,15 +4078,17 @@ 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
-#, fuzzy
msgid "Change default type"
-msgstr "Ändere Standardwert"
+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
@@ -4773,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
@@ -4890,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"
@@ -4965,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"
@@ -5270,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"
@@ -5540,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"
@@ -5741,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"
@@ -6207,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."
@@ -6363,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!"
@@ -6388,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:"
@@ -6583,14 +6619,12 @@ msgid "Change Type"
msgstr "Typ ändern"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach Script"
msgstr "Skript hinzufügen"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear Script"
-msgstr "Erstelle Skript"
+msgstr "Skript leeren"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6617,22 +6651,12 @@ msgstr ""
"keine Root-Node existiert."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script for the selected node."
-msgstr "Erzeuge ein neues Skript für das ausgewählte Node."
+msgstr "Ein neues oder existierendes Skript zum ausgewählten Node hinzufügen."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear a script for the selected node."
-msgstr "Erzeuge ein neues Skript für das ausgewählte Node."
-
-#: 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."
+msgstr "Leere ein Skript für das ausgewählte Node."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6728,9 +6752,8 @@ msgid "Could not create script in filesystem."
msgstr "Skript konnte nicht im Dateisystem erstellt werden."
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Error loading script from %s"
-msgstr "Fehler beim Laden der Szene von %s"
+msgstr "Fehler beim Laden des Skripts von %s"
#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
@@ -6749,14 +6772,12 @@ msgid "Invalid extension"
msgstr "Ungültige Erweiterung"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Create new script"
-msgstr "Erstelle Skript"
+msgstr "Neues Skript erstellen"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Load existing script"
-msgstr "Nächstes Skript"
+msgstr "Lade bestehendes Skript"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6767,9 +6788,8 @@ msgid "Built-In Script"
msgstr "Built-In-Skript"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Attach Node Script"
-msgstr "Erstelle Node-Skript"
+msgstr "Node-Skript hinzufügen"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6935,6 +6955,36 @@ 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"
diff --git a/tools/translations/de_CH.po b/tools/translations/de_CH.po
index ead82cb971..e6e0efdb23 100644
--- a/tools/translations/de_CH.po
+++ b/tools/translations/de_CH.po
@@ -586,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 "
@@ -1799,6 +1795,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2780,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 ""
@@ -4832,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 ""
@@ -5607,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 ""
@@ -6067,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 ""
@@ -6248,10 +6291,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6478,12 +6517,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6782,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 2ad4c2baa3..cec4730148 100644
--- a/tools/translations/es.po
+++ b/tools/translations/es.po
@@ -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
@@ -235,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
@@ -245,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
@@ -409,16 +410,19 @@ 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/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/uwp/export/export.cpp
#, fuzzy
@@ -426,22 +430,27 @@ msgid "Error creating the signature object."
msgstr "¡Error al escribir el PCK de proyecto!"
#: platform/uwp/export/export.cpp
+#, fuzzy
msgid "Error creating the package signature."
-msgstr ""
+msgstr "Se produjo un error al firmar el paquete."
#: 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/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/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "No se ha encontrado ningún paquete final personalizado."
#: platform/uwp/export/export.cpp
#, fuzzy
@@ -464,32 +473,45 @@ msgid "Invalid background color."
msgstr "El origen personalizado de tipografía no es correcto."
#: 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/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/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/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/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/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/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 ""
@@ -627,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 "
@@ -1455,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:"
@@ -1880,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:"
@@ -2542,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"
@@ -2900,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:"
@@ -4055,8 +4083,9 @@ msgid "Add %s"
msgstr "Añadir todos"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Adding %s..."
-msgstr ""
+msgstr "Añadiendo %s..."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
@@ -4089,10 +4118,13 @@ 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
@@ -4972,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"
@@ -5750,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"
@@ -6217,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."
@@ -6398,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:"
@@ -6637,14 +6714,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr "Act/Desact. Espacial Visible"
@@ -6945,6 +7014,36 @@ 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"
diff --git a/tools/translations/es_AR.po b/tools/translations/es_AR.po
index 8a621116bd..08376f39c5 100644
--- a/tools/translations/es_AR.po
+++ b/tools/translations/es_AR.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-10-10 04:20+0000\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"
@@ -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.9-dev\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -620,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 "
@@ -1827,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:"
@@ -1867,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:"
@@ -2882,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:"
@@ -3113,9 +3115,8 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Root Node Name:"
-msgstr "Nombre de Nodo:"
+msgstr "Nombre del Nodo Raíz:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
@@ -4029,13 +4030,12 @@ msgid "Snap (Pixels):"
msgstr "Snap (Pixeles):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add %s"
-msgstr "Agregar Todos"
+msgstr "Agregar %s"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "Agregando %s..."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
@@ -4063,15 +4063,16 @@ 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"
+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
@@ -4942,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"
@@ -5716,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"
@@ -6183,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."
@@ -6363,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:"
@@ -6557,14 +6603,12 @@ msgid "Change Type"
msgstr "Cambiar Tipo"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach Script"
-msgstr "Agregar Script"
+msgstr "Adjuntar Script"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear Script"
-msgstr "Crear Script"
+msgstr "Reestablecer Script"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6591,22 +6635,12 @@ msgstr ""
"existe ningún nodo raíz."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script for the selected node."
-msgstr "Crear un nuevo script para el nodo seleccionado."
+msgstr "Adjuntar un script nuevo o existente para el nodo seleccionado."
#: 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 ""
-"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."
+msgstr "Reestablecer un script para el nodo seleccionado."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6701,9 +6735,8 @@ 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"
+msgstr "Error al cargar el script desde %s"
#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
@@ -6722,14 +6755,12 @@ msgid "Invalid extension"
msgstr "Extensión invalida"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Create new script"
-msgstr "Crear Script"
+msgstr "Crear script nuevo"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Load existing script"
-msgstr "Script siguiente"
+msgstr "Cargar script existente"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6740,9 +6771,8 @@ msgid "Built-In Script"
msgstr "Script Integrado (Built-In)"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Attach Node Script"
-msgstr "Crear Script de Nodo"
+msgstr "Adjuntar Script de Nodo"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6908,6 +6938,36 @@ 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://'"
diff --git a/tools/translations/fa.po b/tools/translations/fa.po
index 714fa726f5..8e29cda45f 100644
--- a/tools/translations/fa.po
+++ b/tools/translations/fa.po
@@ -613,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 "
@@ -1858,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 ""
@@ -2835,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 ""
@@ -4876,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 ""
@@ -5650,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 ""
@@ -6111,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 ""
@@ -6292,10 +6341,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6522,12 +6567,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6826,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 12e9061ce1..10f82e2840 100644
--- a/tools/translations/fr.po
+++ b/tools/translations/fr.po
@@ -8,6 +8,7 @@
# 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.
@@ -19,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-10-18 10:46+0000\n"
-"Last-Translator: Omicron <tritonic.dev@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"
@@ -28,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.9-dev\n"
+"X-Generator: Weblate 2.10\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -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 "
@@ -1882,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 :"
@@ -2912,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 :"
@@ -4743,7 +4746,7 @@ 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.."
@@ -4991,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"
@@ -5766,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"
@@ -6240,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."
@@ -6420,10 +6472,6 @@ msgid "Properties:"
msgstr "Propriétés :"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Global"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Sections :"
@@ -6657,14 +6705,6 @@ 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 ""
-"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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr "Afficher/cacher le Spatial"
@@ -6964,6 +7004,36 @@ 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://'"
diff --git a/tools/translations/hu.po b/tools/translations/hu.po
index 3d60e6fab7..ef78f27138 100644
--- a/tools/translations/hu.po
+++ b/tools/translations/hu.po
@@ -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 "
@@ -1757,6 +1753,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2733,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 ""
@@ -4770,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 ""
@@ -5544,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 ""
@@ -6003,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 ""
@@ -6183,10 +6226,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6409,12 +6448,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6709,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 f855f4d024..917bd21e82 100644
--- a/tools/translations/id.po
+++ b/tools/translations/id.po
@@ -615,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 "
@@ -1900,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:"
@@ -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 ""
@@ -4936,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 ""
@@ -5710,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 ""
@@ -6169,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 ""
@@ -6350,10 +6397,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6580,12 +6623,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6887,6 +6924,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 tidak berisi resource BakedLight."
+
#, fuzzy
#~ msgid ""
#~ "Paths cannot start with '/', absolute paths must start with 'res://', "
diff --git a/tools/translations/is.po b/tools/translations/is.po
deleted file mode 100644
index c7ec24e10a..0000000000
--- a/tools/translations/is.po
+++ /dev/null
@@ -1,6705 +0,0 @@
-# LANGUAGE 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.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Godot Engine editor\n"
-"Language: is\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
-
-#: modules/gdscript/gd_functions.cpp
-#: modules/visual_script/visual_script_builtin_funcs.cpp
-msgid "Invalid type argument to convert(), use TYPE_* constants."
-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 ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "step argument is zero!"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Not a script with an instance"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Not based on a script"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Not based on a resource file"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"A node yielded without working memory, please read the docs on how to yield "
-"properly!"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"Node yielded, but did not return a function state in the first working "
-"memory."
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"Return value must be assigned to first element of node working memory! Fix "
-"your node please."
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Node returned an invalid sequence output: "
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Found sequence bit but not the node in the stack, report bug!"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Stack overflow with stack depth: "
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Functions:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Variables:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp
-msgid "Signals:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Name is not a valid identifier:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Name already in use by another func/var/signal:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Variable"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Signal"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Variable"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Signal"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Remove Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Remove Variable"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Editing Variable:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Remove Signal"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Editing Signal:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Change Expression"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Meta to drop a simple reference to the node."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Meta to drop a Variable Setter."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Preload Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node(s) From Tree"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Getter Property"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Setter Property"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Condition"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Sequence"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Switch"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Iterator"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "While"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Return"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
-msgid "Call"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Get"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#: tools/editor/property_editor.cpp
-msgid "Set"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/project_manager.cpp
-msgid "Edit"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Base Type:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp
-msgid "Members:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Available Nodes:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Select or create a function to edit graph"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
-#: tools/editor/connections_dialog.cpp
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-#: 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 ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Edit Signal Arguments:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Edit Variable:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Change"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Delete Selected"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Toggle Breakpoint"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Find Node Type"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Copy Nodes"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Cut Nodes"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Paste Nodes"
-msgstr ""
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Input type not iterable: "
-msgstr ""
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Iterator became invalid"
-msgstr ""
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Iterator became invalid: "
-msgstr ""
-
-#: modules/visual_script/visual_script_func_nodes.cpp
-msgid "Invalid index property name."
-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
-msgid "Path does not lead Node!"
-msgstr ""
-
-#: modules/visual_script/visual_script_func_nodes.cpp
-msgid "Invalid index property name '%s' in node %s."
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ": Invalid argument of type: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ": Invalid arguments: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "VariableGet not found in script: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "VariableSet not found in script: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "Custom node has no _step() method, can't process graph."
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ""
-"Invalid return value from _step(), must be integer (seq out), or string "
-"(error)."
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "just pressed"
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "just released"
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid ""
-"Couldn't read the certficate file. Are the path and password both correct?"
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Error creating the signature object."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Error creating the package signature."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid ""
-"No export templates found.\n"
-"Download and install export templates."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Custom debug package not found."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Custom release package not found."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid unique name."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid product GUID."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid publisher GUID."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid background color."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: scene/2d/collision_polygon_2d.cpp
-msgid ""
-"CollisionPolygon2D only serves to provide a collision shape to a "
-"CollisionObject2D derived node. Please only use it as a child of Area2D, "
-"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
-msgstr ""
-
-#: scene/2d/collision_polygon_2d.cpp
-msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr ""
-
-#: scene/2d/collision_shape_2d.cpp
-msgid ""
-"CollisionShape2D only serves to provide a collision shape to a "
-"CollisionObject2D derived node. Please only use it as a child of Area2D, "
-"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
-msgstr ""
-
-#: scene/2d/collision_shape_2d.cpp
-msgid ""
-"A shape must be provided for CollisionShape2D to function. Please create a "
-"shape resource for it!"
-msgstr ""
-
-#: scene/2d/light_2d.cpp
-msgid ""
-"A texture with the shape of the light must be supplied to the 'texture' "
-"property."
-msgstr ""
-
-#: scene/2d/light_occluder_2d.cpp
-msgid ""
-"An occluder polygon must be set (or drawn) for this occluder to take effect."
-msgstr ""
-
-#: scene/2d/light_occluder_2d.cpp
-msgid "The occluder polygon for this occluder is empty. Please draw a polygon!"
-msgstr ""
-
-#: 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 ""
-
-#: scene/2d/navigation_polygon.cpp
-msgid ""
-"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
-"node. It only provides navigation data."
-msgstr ""
-
-#: scene/2d/parallax_layer.cpp
-msgid ""
-"ParallaxLayer node only works when set as child of a ParallaxBackground node."
-msgstr ""
-
-#: scene/2d/particles_2d.cpp
-msgid "Path property must point to a valid Particles2D node to work."
-msgstr ""
-
-#: scene/2d/path_2d.cpp
-msgid "PathFollow2D only works when set as a child of a Path2D node."
-msgstr ""
-
-#: scene/2d/remote_transform_2d.cpp
-msgid "Path property must point to a valid Node2D node to work."
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: scene/3d/body_shape.cpp
-msgid ""
-"CollisionShape only serves to provide a collision shape to a CollisionObject "
-"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
-"KinematicBody, etc. to give them a shape."
-msgstr ""
-
-#: scene/3d/body_shape.cpp
-msgid ""
-"A shape must be provided for CollisionShape to function. Please create a "
-"shape resource for it!"
-msgstr ""
-
-#: scene/3d/collision_polygon.cpp
-msgid ""
-"CollisionPolygon only serves to provide a collision shape to a "
-"CollisionObject derived node. Please only use it as a child of Area, "
-"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
-msgstr ""
-
-#: scene/3d/collision_polygon.cpp
-msgid "An empty CollisionPolygon has no effect on collision."
-msgstr ""
-
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr ""
-
-#: scene/3d/navigation_mesh.cpp
-msgid ""
-"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
-"It only provides navigation data."
-msgstr ""
-
-#: scene/3d/remote_transform.cpp
-msgid "Path property must point to a valid Spatial node to work."
-msgstr ""
-
-#: scene/3d/scenario_fx.cpp
-msgid ""
-"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: scene/gui/dialogs.cpp tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/scene_tree_dock.cpp
-msgid "OK"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
-msgid "Alert!"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
-msgid "Please Confirm..."
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "File Exists, Overwrite?"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "All Recognized"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "All Files (*)"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
-#: tools/editor/filesystem_dock.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/property_selector.cpp tools/editor/quick_open.cpp
-msgid "Open"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp
-msgid "Open a File"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp
-msgid "Open File(s)"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp
-msgid "Open a Directory"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp
-msgid "Open a File or Directory"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Save a File"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
-#: tools/editor/editor_file_dialog.cpp
-msgid "Create Folder"
-msgstr ""
-
-#: 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 ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Directories & Files:"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "File:"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Filter:"
-msgstr ""
-
-#: 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 ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
-#: tools/editor/editor_file_dialog.cpp
-msgid "Could not create folder."
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Must use a valid extension."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-#: tools/editor/settings_config_dialog.cpp
-msgid "Shift+"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-#: tools/editor/settings_config_dialog.cpp
-msgid "Alt+"
-msgstr ""
-
-#: scene/gui/input_action.cpp
-msgid "Ctrl+"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-#: tools/editor/settings_config_dialog.cpp
-msgid "Meta+"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Device"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Button"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Left Button."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Right Button."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Middle Button."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Wheel Up."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Wheel Down."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Axis"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Cut"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
-msgid "Copy"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
-msgid "Paste"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/project_export.cpp
-msgid "Select All"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp tools/editor/editor_log.cpp
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-#: tools/editor/plugins/rich_text_editor_plugin.cpp
-#: tools/editor/property_editor.cpp tools/editor/script_editor_debugger.cpp
-msgid "Clear"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp tools/editor/editor_node.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Undo"
-msgstr ""
-
-#: scene/gui/popup.cpp
-msgid ""
-"Popups will hide by default unless you call popup() or any of the popup*() "
-"functions. Making them visible for editing is fine though, but they will "
-"hide upon running."
-msgstr ""
-
-#: scene/main/viewport.cpp
-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 "
-"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
-"texture to some node for display."
-msgstr ""
-
-#: scene/resources/dynamic_font.cpp
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Error initializing FreeType."
-msgstr ""
-
-#: scene/resources/dynamic_font.cpp
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Unknown font format."
-msgstr ""
-
-#: scene/resources/dynamic_font.cpp
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Error loading font."
-msgstr ""
-
-#: scene/resources/dynamic_font.cpp
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Invalid font size."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Disabled"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "All Selection"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Change Transition"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Change Transform"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Change Value"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Change Call"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Add Track"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Duplicate Keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move Anim Track Up"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move Anim Track Down"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove Anim Track"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Set Transitions to:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Track Rename"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Track Change Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Track Change Value Mode"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Edit Node Curve"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Edit Selection Curve"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Delete Keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Duplicate Selection"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Duplicate Transposed"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove Selection"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Continuous"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Discrete"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Trigger"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Add Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Move Keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Scale Selection"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Scale From Cursor"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Goto Next Step"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Goto Prev Step"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp tools/editor/property_editor.cpp
-msgid "Linear"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Constant"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "In"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Out"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "In-Out"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Out-In"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Transitions"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Optimize Animation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Clean-Up Animation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Create NEW track for %s and insert key?"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Create %d NEW tracks and insert keys?"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp tools/editor/create_dialog.cpp
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-#: tools/editor/plugins/particles_editor_plugin.cpp
-#: tools/editor/project_manager.cpp tools/editor/script_create_dialog.cpp
-msgid "Create"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Create & Insert"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Insert Track & Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Insert Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Change Anim Len"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Create Typed Value Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Insert"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Scale Keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Add Call Track"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Animation zoom."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Length (s):"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Animation length (in seconds)."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Step (s):"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Cursor step snap (in seconds)."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable looping in animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Add new tracks."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move current track up."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move current track down."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove selected track."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Track tools"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Enable editing of individual keys by clicking them."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim. Optimizer"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Max. Linear Error:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Max. Angular Error:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Max Optimizable Angle:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Optimize"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Transition"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Scale Ratio:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Call Functions in Which Node?"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove invalid keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove unresolved and empty tracks"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Clean-up all animations"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Clean-Up"
-msgstr ""
-
-#: tools/editor/array_property_edit.cpp
-msgid "Resize Array"
-msgstr ""
-
-#: tools/editor/array_property_edit.cpp
-msgid "Change Array Value Type"
-msgstr ""
-
-#: tools/editor/array_property_edit.cpp
-msgid "Change Array Value"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp tools/editor/create_dialog.cpp
-#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/property_selector.cpp tools/editor/quick_open.cpp
-#: tools/editor/settings_config_dialog.cpp
-msgid "Search:"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Sort:"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Reverse"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-#: tools/editor/project_settings.cpp
-msgid "Category:"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "All"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Site:"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Support.."
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Official"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Community"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Testing"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Assets ZIP File"
-msgstr ""
-
-#: tools/editor/call_dialog.cpp
-msgid "Method List For '%s':"
-msgstr ""
-
-#: tools/editor/call_dialog.cpp
-msgid "Method List:"
-msgstr ""
-
-#: tools/editor/call_dialog.cpp
-msgid "Arguments:"
-msgstr ""
-
-#: tools/editor/call_dialog.cpp
-msgid "Return:"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Go to Line"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Line Number:"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "No Matches"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replaced %d Ocurrence(s)."
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replace"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replace All"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Match Case"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Whole Words"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Selection Only"
-msgstr ""
-
-#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/project_settings.cpp
-msgid "Search"
-msgstr ""
-
-#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
-msgid "Find"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Next"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replaced %d ocurrence(s)."
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Not found!"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replace By"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Case Sensitive"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Backwards"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Prompt On Replace"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Skip"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom In"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom Out"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Reset Zoom"
-msgstr ""
-
-#: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp
-msgid "Line:"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Col:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Method in target Node must be specified!"
-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 ""
-
-#: tools/editor/connections_dialog.cpp
-#: tools/editor/editor_autoload_settings.cpp tools/editor/groups_editor.cpp
-#: tools/editor/plugins/item_list_editor_plugin.cpp
-#: tools/editor/plugins/theme_editor_plugin.cpp
-#: tools/editor/project_settings.cpp
-msgid "Add"
-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 ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Add Extra Call Argument:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Extra Call Arguments:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Path to Node:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Make Function"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Deferred"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Oneshot"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Connect"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Connect '%s' to '%s'"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Connecting Signal:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Connect.."
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Disconnect"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp
-msgid "Signals"
-msgstr ""
-
-#: tools/editor/create_dialog.cpp
-msgid "Create New"
-msgstr ""
-
-#: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp
-#: tools/editor/filesystem_dock.cpp
-msgid "Favorites:"
-msgstr ""
-
-#: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Recent:"
-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 ""
-
-#: tools/editor/create_dialog.cpp tools/editor/editor_help.cpp
-#: tools/editor/property_selector.cpp tools/editor/script_editor_debugger.cpp
-msgid "Description:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Search Replacement For:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Dependencies For:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid ""
-"Scene '%s' is currently being edited.\n"
-"Changes will not take effect unless reloaded."
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid ""
-"Resource '%s' is in use.\n"
-"Changes will take effect when reloaded."
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Dependencies"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Resource"
-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 ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Dependencies:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Fix Broken"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Dependency Editor"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Search Replacement Resource:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Owners Of:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid ""
-"The files being removed are required by other resources in order for them to "
-"work.\n"
-"Remove them anyway? (no undo)"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Remove selected files from the project? (no undo)"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Error loading:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Scene failed to load due to missing dependencies:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Open Anyway"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Which action should be taken?"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Fix Dependencies"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Errors loading!"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Owns"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Resources Without Explicit Ownership:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
-msgid "Orphan Resource Explorer"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Delete selected files?"
-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 ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Invalid name."
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Valid characters:"
-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 ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "File does not exist."
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Add AutoLoad"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Autoload '%s' already exists!"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Rename Autoload"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Toggle AutoLoad Globals"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Move Autoload"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Remove Autoload"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Enable"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Rearrange Autoloads"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Node Name:"
-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 ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Singleton"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
-#: tools/editor/editor_data.cpp
-msgid "Updating Scene"
-msgstr ""
-
-#: tools/editor/editor_data.cpp
-msgid "Storing local changes.."
-msgstr ""
-
-#: tools/editor/editor_data.cpp
-msgid "Updating scene.."
-msgstr ""
-
-#: tools/editor/editor_dir_dialog.cpp
-msgid "Choose a Directory"
-msgstr ""
-
-#: tools/editor/editor_dir_dialog.cpp
-msgid "Choose"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Go Back"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Go Forward"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Go Up"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Toggle Hidden Files"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Toggle Favorite"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Toggle Mode"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Focus Path"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Move Favorite Up"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Move Favorite Down"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Preview:"
-msgstr ""
-
-#: tools/editor/editor_file_system.cpp
-msgid "ScanSources"
-msgstr ""
-
-#: tools/editor/editor_help.cpp tools/editor/plugins/script_editor_plugin.cpp
-msgid "Search Help"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Class List:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Search Classes"
-msgstr ""
-
-#: tools/editor/editor_help.cpp tools/editor/property_editor.cpp
-msgid "Class:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp
-#: tools/editor/script_create_dialog.cpp
-msgid "Inherits:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Inherited by:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Brief Description:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Public Methods:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "GUI Theme Items:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Constants:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Method Description:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Search Text"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Added:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Removed:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp tools/editor/project_export.cpp
-msgid "Error saving atlas:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Could not save atlas subtexture:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Storing File:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Packing"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Exporting for %s"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Setting Up.."
-msgstr ""
-
-#: tools/editor/editor_log.cpp
-msgid " Output:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
-msgid "Re-Importing"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Importing:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Node From Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/resources_dock.cpp
-msgid "Error saving resource!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/resources_dock.cpp
-msgid "Save Resource As.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/scene_tree_dock.cpp
-msgid "I see.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't open file for writing:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Requested file format unknown:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error while saving."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Saving Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Analyzing"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Creating Thumbnail"
-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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't load MeshLibrary for merging!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error saving MeshLibrary!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't load TileSet for merging!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error saving TileSet!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't open export templates zip."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Loading Export Templates"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error trying to save layout!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Default editor layout overridden."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Layout name not found!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Restored default layout to base settings."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Copy Params"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Paste Params"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Paste Resource"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Copy Resource"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Make Built-In"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Make Sub-Resources Unique"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open in Help"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "There is no defined scene to run."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"No main scene has ever been defined, select one?\n"
-"You can change it later in later in \"Project Settings\" under the "
-"'application' category."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"Selected scene '%s' does not exist, select a valid one?\n"
-"You can change it later in \"Project Settings\" under the 'application' "
-"category."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"Selected scene '%s' is not a scene file, select a valid one?\n"
-"You can change it later in \"Project Settings\" under the 'application' "
-"category."
-msgstr ""
-
-#: 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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open Base Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quick Open Scene.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quick Open Script.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Yes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Close scene? (Unsaved changes will be lost)"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save Scene As.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "This scene has never been saved. Save before running?"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Please save the scene first."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save Translatable Strings"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Export Mesh Library"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Export Tile Set"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quit"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Exit the editor?"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Current scene not saved. Open anyway?"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't reload a scene that was never saved."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quick Run Scene.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"Open Project Manager? \n"
-"(Unsaved changes will be lost)"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Pick a Main Scene"
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error loading scene."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Scene '%s' has broken dependencies:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
-msgid "Default"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Switch Scene Tab"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "%d more file(s)"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "%d more file(s) or folder(s)"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Go to previously opened scene."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Next tab"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Previous tab"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Operations with scene files."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "New Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "New Inherited Scene.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open Scene.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save all Scenes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Close Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Close Goto Prev. Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open Recent"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quick Filter Files.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Convert To.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Translatable Strings.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "MeshLibrary.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "TileSet.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Redo"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Run Script"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Project Settings"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quit to Project List"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Distraction Free Mode"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Import assets to the project."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-#: 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
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-#: tools/editor/project_manager.cpp
-msgid "Import"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Miscellaneous project or scene-wide tools."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Tools"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Export the project to many platforms."
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
-msgid "Export"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play the project."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Play"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Pause the scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Pause Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Stop the scene."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Stop"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play the edited scene."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play custom scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play Custom Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Debug options"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Deploy with Remote Debug"
-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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
-"The filesystem will be provided from the project by the editor over the "
-"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Visible Collision Shapes"
-msgstr ""
-
-#: 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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Visible Navigation"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Sync Scene Changes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Sync Script Changes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Settings"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/settings_config_dialog.cpp
-msgid "Editor Settings"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Editor Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Toggle Fullscreen"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Install Export Templates"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "About"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Alerts when an external resource has changed."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Spins when the editor window repaints!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Update Always"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Update Changes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Disable Update Spinner"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Inspector"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Create a new resource in memory and edit it."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Load an existing resource from disk and edit it."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save the currently edited resource."
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save As.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Go to the previous edited object in history."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Go to the next edited object in history."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "History of recently edited objects."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Object properties."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "FileSystem"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/node_dock.cpp
-msgid "Node"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Output"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
-msgid "Re-Import"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/editor_plugin_settings.cpp
-msgid "Update"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Thanks from the Godot community!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Thanks!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Import Templates From ZIP File"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
-msgid "Export Project"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Export Library"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Merge With Existing"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
-msgid "Password:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open & Run a Script"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Load Errors"
-msgstr ""
-
-#: tools/editor/editor_plugin_settings.cpp
-msgid "Installed Plugins:"
-msgstr ""
-
-#: tools/editor/editor_plugin_settings.cpp
-msgid "Version:"
-msgstr ""
-
-#: tools/editor/editor_plugin_settings.cpp
-msgid "Author:"
-msgstr ""
-
-#: tools/editor/editor_plugin_settings.cpp
-msgid "Status:"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Stop Profiling"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Start Profiling"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Measure:"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Frame Time (sec)"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Average Time (sec)"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Frame %"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Fixed Frame %"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp tools/editor/script_editor_debugger.cpp
-msgid "Time:"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Inclusive"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Self"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Frame #:"
-msgstr ""
-
-#: tools/editor/editor_reimport_dialog.cpp
-msgid "Please wait for scan to complete."
-msgstr ""
-
-#: tools/editor/editor_reimport_dialog.cpp
-msgid "Current scene must be saved to re-import."
-msgstr ""
-
-#: tools/editor/editor_reimport_dialog.cpp
-msgid "Save & Re-Import"
-msgstr ""
-
-#: tools/editor/editor_reimport_dialog.cpp
-msgid "Re-Import Changed Resources"
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Write your logic in the _run() method."
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "There is an edited scene already."
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Couldn't instance script:"
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Did you forget the 'tool' keyword?"
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Couldn't run script:"
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Did you forget the '_run' method?"
-msgstr ""
-
-#: tools/editor/editor_settings.cpp
-msgid "Default (Same as Editor)"
-msgstr ""
-
-#: tools/editor/editor_sub_scene.cpp
-msgid "Select Node(s) to Import"
-msgstr ""
-
-#: tools/editor/editor_sub_scene.cpp
-msgid "Scene Path:"
-msgstr ""
-
-#: tools/editor/editor_sub_scene.cpp
-msgid "Import From Node:"
-msgstr ""
-
-#: tools/editor/file_type_cache.cpp
-msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Same source and destination files, doing nothing."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Same source and destination paths, doing nothing."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Can't move directories to within themselves."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Can't operate on '..'"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Pick New Name and Location For:"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "No files selected!"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Instance"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Edit Dependencies.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "View Owners.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Rename or Move.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Move To.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Info"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Re-Import.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Previous Directory"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Next Directory"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Re-Scan Filesystem"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Toggle folder status as Favorite"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Instance the selected scene(s) as child of the selected node."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Move"
-msgstr ""
-
-#: tools/editor/groups_editor.cpp
-msgid "Add to Group"
-msgstr ""
-
-#: tools/editor/groups_editor.cpp
-msgid "Remove from Group"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-msgid "No bit masks to import!"
-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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-msgid "Import BitMasks"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Source Texture(s):"
-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
-#: 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
-msgid "Target Path:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-#: tools/editor/io_plugins/editor_font_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
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Accept"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-msgid "Bit Mask"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "No source font file!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "No target font resource!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid ""
-"Invalid file extension.\n"
-"Please use .fnt."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Can't load/process source font."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Couldn't save font."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Source Font:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Source Font Size:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Dest Resource:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "The quick brown fox jumps over the lazy dog."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Test:"
-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 ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Font Import"
-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 ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Failed opening as BMFont file."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Invalid font custom source."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Font"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-msgid "No meshes to import!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-msgid "Single Mesh Import"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-msgid "Source Mesh(es):"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-msgid "Surface %d"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
-msgid "No samples to import!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
-msgid "Import Audio Samples"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
-msgid "Source Sample(s):"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
-msgid "Audio Sample"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "New Clip"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Animation Options"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Flags"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Bake FPS:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Optimizer"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Max Linear Error"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Max Angular Error"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Max Angle"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Clips"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Start(s)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "End(s)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Loop"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Filters"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Source path is empty."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Couldn't load post-import script."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Error importing scene."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Import 3D Scene"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Source Scene:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Same as Target Scene"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Shared"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Target Texture Folder:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Post-Process Script:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Custom Root Node Type:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-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 ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Import Anyway"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Import & Open"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Edited scene has not been saved, open imported scene anyway?"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Import Scene"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Importing Scene.."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Running Custom Script.."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Couldn't load post-import script:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Error running post-import script:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Import Image:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Can't import a file over itself:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Couldn't localize path: %s (already local)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Saving.."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "3D Scene Animation"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Uncompressed"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Compress Lossless (PNG)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Compress Lossy (WebP)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Compress (VRAM)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Texture Format"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Texture Compression Quality (WebP):"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Texture Options"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Please specify some files!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "At least one file needed for Atlas."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Error importing:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Only one file is required for large texture."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Max Texture Size:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Textures for Atlas (2D)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Cell Size:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Large Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Large Textures (2D)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Source Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Base Atlas Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Source Texture(s)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Textures for 2D"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Textures for 3D"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Textures"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "2D Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "3D Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Atlas Texture"
-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 ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Crop empty space."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Large Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Load Source Image"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Slicing"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Inserting"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Saving"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Couldn't save large texture:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Build Atlas For:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Loading Image:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Couldn't load image:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Converting Images"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Cropping Images"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Blitting Images"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Couldn't save atlas image:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Couldn't save converted texture:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Invalid source!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Invalid translation source!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Column"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-#: tools/editor/script_create_dialog.cpp
-msgid "Language"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "No items to import!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "No target path!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Import Translations"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Couldn't import!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Import Translation"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Source CSV:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Ignore First Row"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Compress"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Add to Project (engine.cfg)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Import Languages:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Translation"
-msgstr ""
-
-#: tools/editor/multi_node_edit.cpp
-msgid "MultiNode Set"
-msgstr ""
-
-#: tools/editor/node_dock.cpp
-msgid "Groups"
-msgstr ""
-
-#: tools/editor/node_dock.cpp
-msgid "Select a Node to edit Signals and Groups."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Toggle Autoplay"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "New Animation Name:"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "New Anim"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Change Animation Name:"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Remove Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: Invalid animation name!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: Animation name already exists!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Rename Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Blend Next Changed"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Change Blend Time"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Load Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Duplicate Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: No animation to copy!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: No animation resource on clipboard!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Pasted Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Paste Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: No animation to edit!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Stop animation playback. (S)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Play selected animation from current pos. (D)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation position (in seconds)."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Scale animation playback globally for the node."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Create new animation in player."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Load animation from disk."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Load an animation from disk."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Save the current animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Save As"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Display list of animations in player."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Autoplay on Load"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Edit Target Blend Times"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation Tools"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Copy Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Create New Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation Name:"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
-msgid "Error!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Blend Times:"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Next (Auto Queue):"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Cross-Animation Blend Times"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "New name:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Scale:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Fade In (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Fade Out (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Mix"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Auto Restart:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Restart (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Random Restart (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Start!"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Amount:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend 0:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend 1:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "X-Fade Time (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Current:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Add Input"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Clear Auto-Advance"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Set Auto-Advance"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Delete Input"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Rename"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Animation tree is valid."
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Animation tree is invalid."
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Animation Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "OneShot Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Mix Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend2 Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend3 Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend4 Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "TimeScale Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "TimeSeek Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Transition Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Import Animations.."
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Edit Node Filters"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Filters.."
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Parsing %d Triangles:"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Triangle #"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Light Baker Setup:"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Parsing Geometry"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Fixing Lights"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Making BVH"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Creating Light Octree"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Creating Octree Texture"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Transfer to Lightmaps:"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Allocating Texture #"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Baking Triangle #"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Post-Processing Texture #"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_editor_plugin.cpp
-msgid "Bake!"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_editor_plugin.cpp
-msgid "Reset the lightmap octree baking process (start over)."
-msgstr ""
-
-#: tools/editor/plugins/camera_editor_plugin.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Preview"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Configure Snap"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid Offset:"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid Step:"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotation Offset:"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotation Step:"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move Pivot"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move Action"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Edit IK Chain"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Edit CanvasItem"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Change Anchors"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom (%):"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Paste Pose"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Select Mode"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Drag: Rotate"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Alt+Drag: Move"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Alt+RMB: Depth list selection"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move Mode"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate Mode"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid ""
-"Show a list of all objects at the position clicked\n"
-"(same as Alt+RMB in select mode)."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Click to change object's rotation pivot."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Pan Mode"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Unlock the selected object (can be moved)."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Makes sure the object's children are not selectable."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Restores the object's children's ability to be selected."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Use Snap"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Show Grid"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Rotation Snap"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Snap Relative"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Configure Snap.."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Pixel Snap"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Expand to Parent"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Skeleton.."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Make Bones"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Clear Bones"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Bones"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Make IK Chain"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Clear IK Chain"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom Reset"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom Set.."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Center Selection"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Frame Selection"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Anchor"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Insert Keys"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Insert Key"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Insert Key (Existing Tracks)"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Copy Pose"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Clear Pose"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Set a Value"
-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 ""
-
-#: 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
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Create Poly"
-msgstr ""
-
-#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Edit Poly"
-msgstr ""
-
-#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Edit Poly (Remove Point)"
-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
-msgid "Create a new polygon from scratch."
-msgstr ""
-
-#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
-msgid "Create Poly3D"
-msgstr ""
-
-#: tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
-msgid "Set Handle"
-msgstr ""
-
-#: tools/editor/plugins/color_ramp_editor_plugin.cpp
-msgid "Add/Remove Color Ramp Point"
-msgstr ""
-
-#: tools/editor/plugins/color_ramp_editor_plugin.cpp
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Modify Color Ramp"
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Creating Mesh Library"
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Thumbnail.."
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Remove item %d?"
-msgstr ""
-
-#: 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 ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Remove Selected Item"
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Import from Scene"
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Update from Scene"
-msgstr ""
-
-#: tools/editor/plugins/item_list_editor_plugin.cpp
-msgid "Item %d"
-msgstr ""
-
-#: tools/editor/plugins/item_list_editor_plugin.cpp
-msgid "Items"
-msgstr ""
-
-#: tools/editor/plugins/item_list_editor_plugin.cpp
-msgid "Item List Editor"
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-msgid "Create Occluder Polygon"
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "Edit existing polygon:"
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "LMB: Move Point."
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "Ctrl+LMB: Split Segment."
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "RMB: Erase Point."
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh is empty!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Static Trimesh Body"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Static Convex Body"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "This doesn't work on scene root!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Shape"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Convex Shape"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Navigation Mesh"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "MeshInstance lacks a Mesh!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh has not surface to create outlines from!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Could not create outline!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Static Body"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Convex Static Body"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Collision Sibling"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Convex Collision Sibling"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline Mesh.."
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline Mesh"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Outline Size:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (invalid path)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "No surface source specified."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Surface source is invalid (invalid path)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Surface source is invalid (no geometry)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Surface source is invalid (no faces)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Parent has no solid faces to populate."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Couldn't map area."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Select a Source Mesh:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Select a Target Surface:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate Surface"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate MultiMesh"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Target Surface:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Source Mesh:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "X-Axis"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Y-Axis"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Z-Axis"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh Up Axis:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Rotation:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Tilt:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Scale:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate"
-msgstr ""
-
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "Create Navigation Polygon"
-msgstr ""
-
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "Remove Poly And Point"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Error loading image:"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "No pixels with transparency > 128 in image.."
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generated Point Count:"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Node does not contain geometry."
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Node does not contain geometry (faces)."
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Faces contain no area!"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "No faces!"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Generate AABB"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emitter From Mesh"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emitter From Node"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emitter"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Emission Positions:"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Emission Fill:"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Surface"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Volume"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Remove Point from Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Add Point to Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move Point in Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move In-Control in Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move Out-Control in Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Select Points"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Shift+Drag: Select Control Points"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Click: Add Point"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Right Click: Delete Point"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Select Control Points (Shift+Drag)"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Add Point (in empty space)"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Split Segment (in curve)"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Delete Point"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Close Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Curve Point #"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Set Curve Point Pos"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Set Curve In Pos"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Set Curve Out Pos"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Split Path"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Remove Path Point"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Create UV Map"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Transform UV Map"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon 2D UV Editor"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Move Point"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Shift: Move All"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Shift+Ctrl: Scale"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Move Polygon"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Rotate Polygon"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Scale Polygon"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Clear UV"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Snap"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Enable Snap"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "ERROR: Couldn't load resource!"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Add Resource"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Rename Resource"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Delete Resource"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Resource clipboard is empty!"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Load Resource"
-msgstr ""
-
-#: tools/editor/plugins/rich_text_editor_plugin.cpp
-msgid "Parse BBCode"
-msgstr ""
-
-#: tools/editor/plugins/sample_editor_plugin.cpp
-msgid "Length:"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Open Sample File(s)"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "ERROR: Couldn't load sample!"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Add Sample"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Rename Sample"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Delete Sample"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "16 Bits"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "8 Bits"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Stereo"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Mono"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Format"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Pitch"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Error while saving theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Error saving"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Error importing theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Error importing"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Import Theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save Theme As.."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Next script"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Previous script"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/project_export.cpp
-msgid "File"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/property_editor.cpp
-msgid "New"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save All"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Soft Reload Script"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "History Prev"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "History Next"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Reload Theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save Theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save Theme As"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Close Docs"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Close All"
-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 ""
-
-#: 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 ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Debug"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Step Over"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Step Into"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Break"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Continue"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Keep Debugger Open"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Window"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Move Left"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Move Right"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Tutorials"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Open https://godotengine.org at tutorials section."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Classes"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Search the class hierarchy."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Search the reference documentation."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Go to previous edited document."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Go to next edited document."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Create Script"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid ""
-"The following files are newer on disk.\n"
-"What action should be taken?:"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Reload"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Resave"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Debugger"
-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 ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Pick Color"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
-msgid "Move Up"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
-msgid "Move Down"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Indent Left"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Indent Right"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Toggle Comment"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Clone Down"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Complete Symbol"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Trim Trailing Whitespace"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Auto Indent"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Remove All Breakpoints"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Goto Next Breakpoint"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Goto Previous Breakpoint"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Find Previous"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Replace.."
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Goto Function.."
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Goto Line.."
-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 ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Scalar Constant"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Constant"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change RGB Constant"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Scalar Operator"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Operator"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Scalar Operator"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change RGB Operator"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Toggle Rot Only"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Scalar Function"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Function"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Scalar Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change RGB Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Default Value"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change XForm Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Texture Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Cubemap Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Comment"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Add/Remove to Color Ramp"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Add/Remove to Curve Map"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Modify Curve Map"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Input Name"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Connect Graph Nodes"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Disconnect Graph Nodes"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Remove Shader Graph Node"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Move Shader Graph Node"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Duplicate Graph Node(s)"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Delete Shader Graph Node(s)"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Error: Cyclic Connection Link"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Error: Missing Input Connections"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Add Shader Graph Node"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Orthogonal"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Perspective"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Aborted."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "X-Axis Transform."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Y-Axis Transform."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Z-Axis Transform."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Plane Transform."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Scaling to %s%%."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotating %s degrees."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Top View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Top"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Front View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Left View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Right View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Keying is disabled (no key inserted)."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Animation Key Inserted."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Environment"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Audio Listener"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Gizmos"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "XForm Dialog"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "No scene selected to instance!"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Instance at Cursor"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Could not instance scene!"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Move Mode (W)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotate Mode (E)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Scale Mode (R)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Top View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Front View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Left View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Right View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Switch Perspective/Orthogonal view"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Insert Animation Key"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Focus Origin"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Focus Selection"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Align Selection With View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Dialog.."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Use Default Light"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Use Default sRGB"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "1 Viewport"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "2 Viewports"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "2 Viewports (Alt)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "3 Viewports"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "3 Viewports (Alt)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "4 Viewports"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Normal"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Wireframe"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Overdraw"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Shadeless"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Origin"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Grid"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Snap Settings"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Translate Snap:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotate Snap (deg.):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Scale Snap (%):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Viewport Settings"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Default Light Normal:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Ambient Light Color:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Perspective FOV (deg.):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Z-Near:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Z-Far:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Change"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Translate:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotate (deg.):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Scale (ratio):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Type"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Pre"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Post"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "ERROR: Couldn't load frame resource!"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Frame"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Resource clipboard is empty or not a texture!"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Paste Frame"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Empty"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation FPS"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "(empty)"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Animations"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Animation Frames"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Insert Empty (Before)"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Insert Empty (After)"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Up"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Down"
-msgstr ""
-
-#: tools/editor/plugins/style_box_editor_plugin.cpp
-msgid "StyleBox Preview:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Snap Mode:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "<None>"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Pixel Snap"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Grid Snap"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Auto Slice"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Offset:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Step:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Separation:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Can't save theme to file:"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Add All Items"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Add All"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Remove Item"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Theme"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Add Class Items"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Remove Class Items"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Create Empty Template"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Create Empty Editor Template"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "CheckBox Radio1"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "CheckBox Radio2"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Item"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Check Item"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Checked Item"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Has"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Many"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp tools/editor/project_export.cpp
-msgid "Options"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Have,Many,Several,Options!"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 1"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 2"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 3"
-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 ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Data Type:"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Icon"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Style"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Color"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Paint TileMap"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-#: tools/editor/scene_tree_dock.cpp
-msgid "Duplicate"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Erase TileMap"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Erase selection"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Find tile"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Transpose"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Mirror X"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Mirror Y"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Bucket"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Pick Tile"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Select"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rotate 0 degrees"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rotate 90 degrees"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rotate 180 degrees"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rotate 270 degrees"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Could not find tile:"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Item name or ID:"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Create from scene?"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Merge from scene?"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Create from Scene"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Merge from Scene"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Error"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Edit Script Options"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Please export outside the project folder!"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Error exporting project!"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Error writing the project PCK!"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "No exporter for platform '%s' yet."
-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 ""
-
-#: tools/editor/project_export.cpp
-msgid "Atlas Preview"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Project Export Settings"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Target"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export to Platform"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Resources"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export selected resources (including dependencies)."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export all resources in the project."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export all files in the project directory."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export Mode:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Resources to Export:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Action"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid ""
-"Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Convert text scenes to binary on export."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Images"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Keep Original"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress for Disk (Lossy, WebP)"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress for RAM (BC/PVRTC/ETC)"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Convert Images (*.png):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress for Disk (Lossy) Quality:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Shrink All Images:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress Formats:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Image Groups"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Groups:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress Disk"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress RAM"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress Mode:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Lossy Quality:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Atlas:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Shrink By:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Preview Atlas"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Image Filter:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Images:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Select None"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Group"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Samples"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Sample Conversion Mode: (.wav files):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Keep"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress (RAM - IMA-ADPCM)"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Sampling Rate Limit (Hz):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Trim"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Trailing Silence:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Script"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Script Export Mode:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Text"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compiled"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Encrypted (Provide Key Below)"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Script Encryption Key (256-bits as hex):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export PCK/Zip"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export Project PCK"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export.."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Project Export"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export Preset:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Invalid project path, the path must exist!"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Invalid project path, engine.cfg must not exist."
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Invalid project path, engine.cfg must exist."
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Imported Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Invalid project path (changed anything?)."
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Couldn't create engine.cfg in project path."
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "The following files failed extraction from package:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Package Installed Successfully!"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Import Existing Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project Path (Must Exist):"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project Name:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Create New Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project Path:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Install Project:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Install"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Browse"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "New Game Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "That's a BINGO!"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Unnamed Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Are you sure to open more than one project?"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Are you sure to run more than one project?"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Remove project from the list? (Folder contents will not be modified)"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid ""
-"You are about the scan %s folders for existing Godot projects. Do you "
-"confirm?"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project Manager"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project List"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Run"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Scan"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Select a Folder to Scan"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "New Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Exit"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Key "
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Joy Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Joy Axis"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Mouse Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Invalid action (anything goes but '/' or ':')."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Action '%s' already exists!"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Rename Input Action Event"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add Input Action Event"
-msgstr ""
-
-#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
-msgid "Control+"
-msgstr ""
-
-#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
-msgid "Press a Key.."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Mouse Button Index:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Left Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Right Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Middle Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Wheel Up Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Wheel Down Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Button 6"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Button 7"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Button 8"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Button 9"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Joystick Axis Index:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Joystick Button Index:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add Input Action"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-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 ""
-
-#: tools/editor/project_settings.cpp
-msgid "Settings saved OK."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add Translation"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remove Translation"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add Remapped Path"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Resource Remap Add Remap"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Change Resource Remap Language"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remove Resource Remap"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remove Resource Remap Option"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Project Settings (engine.cfg)"
-msgstr ""
-
-#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
-msgid "General"
-msgstr ""
-
-#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
-msgid "Property:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Del"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Copy To Platform.."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Input Map"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Action:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Device:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Index:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Localization"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Translations"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Translations:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add.."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remaps"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Resources:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remaps by Locale:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Locale"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "AutoLoad"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Plugins"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Preset.."
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Ease In"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Ease Out"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Zero"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Easing In-Out"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Easing Out-In"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "File.."
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Dir.."
-msgstr ""
-
-#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
-msgid "Load"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Assign"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "New Script"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Error loading file: Not a resource!"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Couldn't load image"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Bit %d, val %d."
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "On"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Properties:"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
-#: tools/editor/property_selector.cpp
-msgid "Select Property"
-msgstr ""
-
-#: tools/editor/property_selector.cpp
-msgid "Select Method"
-msgstr ""
-
-#: tools/editor/pvrtc_compress.cpp
-msgid "Could not execute PVRTC tool:"
-msgstr ""
-
-#: tools/editor/pvrtc_compress.cpp
-msgid "Can't load back converted image using PVRTC tool:"
-msgstr ""
-
-#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
-msgid "Reparent Node"
-msgstr ""
-
-#: tools/editor/reparent_dialog.cpp
-msgid "Reparent Location (Select new Parent):"
-msgstr ""
-
-#: tools/editor/reparent_dialog.cpp
-msgid "Keep Global Transform"
-msgstr ""
-
-#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
-msgid "Reparent"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Create New Resource"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Open Resource"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Save Resource"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Resource Tools"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Make Local"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Run Mode:"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Current Scene"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Main Scene"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Main Scene Arguments:"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Scene Run Settings"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance the scenes at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Error loading scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Ok"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid ""
-"Cannot instance the scene '%s' because the current scene exists within one "
-"of its nodes."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Scene(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "This operation can't be done on the tree root."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Move Node In Parent"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Move Nodes In Parent"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Duplicate Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)?"
-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 can't be done on instanced scenes."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Save New Scene As.."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Makes Sense!"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Can't operate on nodes from a foreign scene!"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Can't operate on nodes the current scene inherits from!"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Remove Node(s)"
-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 ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Error duplicating scene to save it."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Add Child Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Change Type"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-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 ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Save Branch as Scene"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Delete (No Confirm)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Add/Create a New Node"
-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 "Attach a new or existing script for the selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Clear a 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_editor.cpp
-msgid "Toggle Spatial Visible"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Toggle CanvasItem Visible"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Instance:"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Rename Node"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Scene Tree (Nodes):"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Editable Children"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Load As Placeholder"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Discard Instancing"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Open in Editor"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Clear Inheritance"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Clear Inheritance? (No Undo!)"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Clear!"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Select a Node"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid parent class name"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Valid chars:"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid class name"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Valid name"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "N/A"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Class name is invalid!"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Parent class name is invalid!"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid path!"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-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 ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Path is not local"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid base path"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-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:"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Built-In Script"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Attach Node Script"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Bytes:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Warning"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Error:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Source:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Function:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Errors"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Child Process Connected"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Inspect Previous Instance"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Inspect Next Instance"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Stack Frames"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Variable"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Errors:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Stack Trace (if applicable):"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Remote Inspector"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Live Scene Tree:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Remote Object Properties: "
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Profiler"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Monitor"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Value"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Monitors"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "List of Video Memory Usage by Resource:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Total:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Video Mem"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Resource Path"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Type"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Usage"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Misc"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Clicked Control:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Clicked Control Type:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Live Edit Root:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Set From Tree"
-msgstr ""
-
-#: tools/editor/settings_config_dialog.cpp
-msgid "Shortcuts"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Light Radius"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Camera FOV"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Camera Size"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Sphere Shape Radius"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Box Shape Extents"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Capsule Shape Radius"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Capsule Shape Height"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Ray Shape Length"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Notifier Extents"
-msgstr ""
diff --git a/tools/translations/it.po b/tools/translations/it.po
index 6ead708110..f49c953a7d 100644
--- a/tools/translations/it.po
+++ b/tools/translations/it.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-10-29 12:53+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.9-dev\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -627,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 "
@@ -1878,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:"
@@ -2896,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:"
@@ -3127,9 +3129,8 @@ msgid "Auto"
msgstr "Auto"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Root Node Name:"
-msgstr "Nome Nodo:"
+msgstr "Nome Nodo di Root:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
@@ -4040,13 +4041,12 @@ msgid "Snap (Pixels):"
msgstr "Snap (Pixels):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add %s"
-msgstr "Aggiungi Tutti"
+msgstr "Aggiungi %s"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "Aggiungendo %s..."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
@@ -4074,15 +4074,16 @@ msgid "This operation requires a single selected node."
msgstr "Questa operazione richiede un solo nodo selezionato."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change default type"
-msgstr "Cambia Valore di Default"
+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
@@ -4954,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"
@@ -5728,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"
@@ -6193,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."
@@ -6373,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:"
@@ -6565,14 +6611,12 @@ msgid "Change Type"
msgstr "Cambia Tipo"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach Script"
-msgstr "Aggiungi Script"
+msgstr "Allega Script"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear Script"
-msgstr "Crea Script"
+msgstr "Svuota Script"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6599,22 +6643,12 @@ msgstr ""
"root esiste."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script for the selected node."
-msgstr "Crea un nuovo script per il nodo selezionato."
+msgstr "Allega un nuovo script o uno esistente al nodo selezionato."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear a script for the selected node."
-msgstr "Crea un nuovo script per il 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."
+msgstr "Svuota uno script per il nodo selezionato."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6709,9 +6743,8 @@ msgid "Could not create script in filesystem."
msgstr "Impossibile creare script in filesystem."
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Error loading script from %s"
-msgstr "Errore caricamento scena da %s"
+msgstr "Errore caricamento script da %s"
#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
@@ -6730,14 +6763,12 @@ msgid "Invalid extension"
msgstr "Estensione Invalida"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Create new script"
-msgstr "Crea Script"
+msgstr "Crea nuovo script"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Load existing script"
-msgstr "Script successivo"
+msgstr "Carica script esistente"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6748,9 +6779,8 @@ msgid "Built-In Script"
msgstr "Built-In Script"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Attach Node Script"
-msgstr "Crea Script Nodo"
+msgstr "Allega Script Nodo"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6916,6 +6946,36 @@ 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://'"
diff --git a/tools/translations/ja.po b/tools/translations/ja.po
index 7939e7b65e..279f59c9c8 100644
--- a/tools/translations/ja.po
+++ b/tools/translations/ja.po
@@ -607,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 "
@@ -1847,6 +1843,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
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 ""
@@ -4877,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 ""
@@ -5651,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 ""
@@ -6110,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 ""
@@ -6290,10 +6335,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6519,12 +6560,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6822,6 +6857,10 @@ msgstr ""
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://', "
diff --git a/tools/translations/ko.po b/tools/translations/ko.po
index e67a9b310a..ea2b130d37 100644
--- a/tools/translations/ko.po
+++ b/tools/translations/ko.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-10-29 00:43+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
@@ -383,7 +383,7 @@ msgstr ""
#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
-msgstr ""
+msgstr "인증서 파일을 읽을 수 없습니다. 경로와 비밀번호가 정확합니까?"
#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
@@ -391,21 +391,23 @@ msgstr "서명 오브젝트 생성중 에러."
#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr ""
+msgstr "패키지 서명을 생성하는 중 에러가 발생했습니다."
#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
+"내보내기 템플릿을 찾을 수 없습니다.\n"
+"내보내기 템플릿을 다운로드하여 설치하십시요."
#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr ""
+msgstr "커스텀 디버그 패키지를 찾을 수 없습니다."
#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr ""
+msgstr "커스텀 릴리즈 패키지를 찾을 수 없습니다."
#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
@@ -425,31 +427,32 @@ msgstr "유요하지 않은 배경 색상."
#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (50x50 이어야 합니다)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (44x44 이어야 합니다)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (71x71 이어야 합니다)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (150x150 이어야 합니다)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (310x310 이어야 합니다)."
#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
+msgstr "유효하지 않은 로고 이미지 크기입니다 (310x150 이어야 합니다)."
#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
msgstr ""
+"유효하지 않은 스플래쉬 스크린 이미지 크기입니다 (620x300 이어야 합니다)."
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -581,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 "
@@ -1179,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"
@@ -1386,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:"
@@ -1405,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:"
@@ -1818,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 "함수 설명:"
@@ -2473,7 +2479,7 @@ msgstr "변경사항만 갱신"
#: tools/editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "업데이트 스피너 비활성화"
#: tools/editor/editor_node.cpp
msgid "Inspector"
@@ -2825,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 "대상 경로:"
@@ -3056,9 +3063,8 @@ msgid "Auto"
msgstr "자동"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Root Node Name:"
-msgstr "노드 이름:"
+msgstr "루트 노드 이름:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
@@ -3966,13 +3972,12 @@ msgid "Snap (Pixels):"
msgstr "스냅 (픽셀):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add %s"
-msgstr "모두 추가"
+msgstr "%s 추가"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "%s 추가중..."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
@@ -4000,15 +4005,16 @@ msgid "This operation requires a single selected node."
msgstr "이 작업은 하나의 선택된 노드를 필요로 합니다."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change default type"
-msgstr "기본값 변경"
+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
@@ -4876,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 상수 변경"
@@ -5650,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 "포함"
@@ -5983,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"
@@ -6110,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 "설정 저장 중 에러."
@@ -6290,10 +6345,6 @@ msgid "Properties:"
msgstr "속성:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Global"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "부문:"
@@ -6479,14 +6530,12 @@ msgid "Change Type"
msgstr "타입 변경"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach Script"
-msgstr "스크립트 추가"
+msgstr "스크립트 붙이기"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear Script"
-msgstr "스크립트 만들기"
+msgstr "스크립트 제거"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6512,22 +6561,12 @@ msgstr ""
"씬 파일을 노드로 추가합니다. 루트 노드가 없을 경우, 상속씬으로 만들어집니다."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script for the selected node."
-msgstr "선택된 노드에 새로운 스크립트를 생성합니다."
+msgstr "선택된 노드에 새로운 스크립트를 생성하거나 기존 스크립트를 로드합니다."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear a 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 ""
-"부모 노드가 숨겨져 있기 때문에 이 항목을 보이도록 만들 수 없습니다. 부모 노드"
-"를 먼저 보이도록 하세요."
+msgstr "선택된 노드의 스크립트를 제거합니다."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6622,9 +6661,8 @@ msgid "Could not create script in filesystem."
msgstr "파일 시스템에 스크립트를 생성할 수 없습니다."
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Error loading script from %s"
-msgstr "'%s' 로부터 씬 로딩 중 에러"
+msgstr "'%s' 스크립트 로딩 중 에러"
#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
@@ -6643,14 +6681,12 @@ msgid "Invalid extension"
msgstr "확장자가 유요하지 않음"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Create new script"
-msgstr "스크립트 만들기"
+msgstr "새 스크립트 만들기"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Load existing script"
-msgstr "다음 스크립트"
+msgstr "기존 스크립트 로드하기"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6661,9 +6697,8 @@ msgid "Built-In Script"
msgstr "내장 스크립트"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Attach Node Script"
-msgstr "노드 스크립트 생성"
+msgstr "노드 스크립트 붙이기"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6829,6 +6864,36 @@ 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://'"
diff --git a/tools/translations/nb.po b/tools/translations/nb.po
index 22016abab0..ff659eae8b 100644
--- a/tools/translations/nb.po
+++ b/tools/translations/nb.po
@@ -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 "
@@ -1757,6 +1753,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2733,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 ""
@@ -4770,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 ""
@@ -5544,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 ""
@@ -6003,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 ""
@@ -6183,10 +6226,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6409,12 +6448,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6709,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 19dad131dc..465fbe133d 100644
--- a/tools/translations/pl.po
+++ b/tools/translations/pl.po
@@ -2,6 +2,7 @@
# 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.
@@ -14,8 +15,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2016-10-29 09:04+0000\n"
-"Last-Translator: Kajetan Kuszczyński <kajetanek99@gmail.com>\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"
@@ -23,25 +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.9-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!"
+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"
@@ -610,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 "
@@ -1850,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:"
@@ -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:"
@@ -4918,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 ""
@@ -5693,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"
@@ -6152,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ń."
@@ -6333,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 ""
@@ -6372,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"
@@ -6438,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)"
@@ -6462,7 +6512,7 @@ msgstr "Ta operacja nie może zostać wykonana bez sceny."
#: 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.."
@@ -6489,14 +6539,17 @@ 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"
@@ -6565,20 +6618,12 @@ 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 ""
-"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_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:"
@@ -6598,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"
@@ -6872,6 +6918,24 @@ 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://'"
diff --git a/tools/translations/pr.po b/tools/translations/pr.po
index 7780f64f31..f8a9505066 100644
--- a/tools/translations/pr.po
+++ b/tools/translations/pr.po
@@ -568,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 "
@@ -1775,6 +1771,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2751,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 ""
@@ -4788,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 ""
@@ -5562,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 ""
@@ -6021,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 ""
@@ -6201,10 +6244,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6427,12 +6466,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6728,6 +6761,10 @@ msgstr ""
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://'"
diff --git a/tools/translations/pt_BR.po b/tools/translations/pt_BR.po
index 0fb180291b..106142b4ea 100644
--- a/tools/translations/pt_BR.po
+++ b/tools/translations/pt_BR.po
@@ -610,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 "
@@ -1853,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:"
@@ -2866,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:"
@@ -4932,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"
@@ -5708,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"
@@ -6174,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."
@@ -6355,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:"
@@ -6594,14 +6641,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr "Alternar Spatial Visível"
@@ -6901,6 +6940,36 @@ 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"
diff --git a/tools/translations/pt_PT.po b/tools/translations/pt_PT.po
index 495603adda..7b3c814f8c 100644
--- a/tools/translations/pt_PT.po
+++ b/tools/translations/pt_PT.po
@@ -563,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 "
@@ -1770,6 +1766,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2746,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 ""
@@ -4784,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 ""
@@ -5558,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 ""
@@ -6017,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 ""
@@ -6197,10 +6240,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6424,12 +6463,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6724,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/ro.po b/tools/translations/ro.po
deleted file mode 100644
index d472659d44..0000000000
--- a/tools/translations/ro.po
+++ /dev/null
@@ -1,6705 +0,0 @@
-# Romanian 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.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Godot Engine editor\n"
-"Language: ro\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
-
-#: modules/gdscript/gd_functions.cpp
-#: modules/visual_script/visual_script_builtin_funcs.cpp
-msgid "Invalid type argument to convert(), use TYPE_* constants."
-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 ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "step argument is zero!"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Not a script with an instance"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Not based on a script"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Not based on a resource file"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Invalid instance dictionary format (missing @path)"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Invalid instance dictionary format (can't load script at @path)"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr ""
-
-#: modules/gdscript/gd_functions.cpp
-msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"A node yielded without working memory, please read the docs on how to yield "
-"properly!"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"Node yielded, but did not return a function state in the first working "
-"memory."
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid ""
-"Return value must be assigned to first element of node working memory! Fix "
-"your node please."
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Node returned an invalid sequence output: "
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Found sequence bit but not the node in the stack, report bug!"
-msgstr ""
-
-#: modules/visual_script/visual_script.cpp
-msgid "Stack overflow with stack depth: "
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Functions:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Variables:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp
-msgid "Signals:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Name is not a valid identifier:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Name already in use by another func/var/signal:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Variable"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Rename Signal"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Variable"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Signal"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Remove Function"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Remove Variable"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Editing Variable:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Remove Signal"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Editing Signal:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Change Expression"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Meta to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Meta to drop a simple reference to the node."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Meta to drop a Variable Setter."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Preload Node"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Node(s) From Tree"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Getter Property"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Add Setter Property"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Condition"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Sequence"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Switch"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Iterator"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "While"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Return"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
-msgid "Call"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Get"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#: tools/editor/property_editor.cpp
-msgid "Set"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/project_manager.cpp
-msgid "Edit"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Base Type:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp tools/editor/editor_help.cpp
-msgid "Members:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Available Nodes:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Select or create a function to edit graph"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp tools/editor/call_dialog.cpp
-#: tools/editor/connections_dialog.cpp
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-#: 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 ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Edit Signal Arguments:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Edit Variable:"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Change"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Delete Selected"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Toggle Breakpoint"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Find Node Type"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Copy Nodes"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Cut Nodes"
-msgstr ""
-
-#: modules/visual_script/visual_script_editor.cpp
-msgid "Paste Nodes"
-msgstr ""
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Input type not iterable: "
-msgstr ""
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Iterator became invalid"
-msgstr ""
-
-#: modules/visual_script/visual_script_flow_control.cpp
-msgid "Iterator became invalid: "
-msgstr ""
-
-#: modules/visual_script/visual_script_func_nodes.cpp
-msgid "Invalid index property name."
-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
-msgid "Path does not lead Node!"
-msgstr ""
-
-#: modules/visual_script/visual_script_func_nodes.cpp
-msgid "Invalid index property name '%s' in node %s."
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ": Invalid argument of type: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ": Invalid arguments: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "VariableGet not found in script: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "VariableSet not found in script: "
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "Custom node has no _step() method, can't process graph."
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid ""
-"Invalid return value from _step(), must be integer (seq out), or string "
-"(error)."
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "just pressed"
-msgstr ""
-
-#: modules/visual_script/visual_script_nodes.cpp
-msgid "just released"
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid ""
-"Couldn't read the certficate file. Are the path and password both correct?"
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Error creating the signature object."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Error creating the package signature."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid ""
-"No export templates found.\n"
-"Download and install export templates."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Custom debug package not found."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Custom release package not found."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid unique name."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid product GUID."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid publisher GUID."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid background color."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr ""
-
-#: platform/uwp/export/export.cpp
-msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: scene/2d/collision_polygon_2d.cpp
-msgid ""
-"CollisionPolygon2D only serves to provide a collision shape to a "
-"CollisionObject2D derived node. Please only use it as a child of Area2D, "
-"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
-msgstr ""
-
-#: scene/2d/collision_polygon_2d.cpp
-msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr ""
-
-#: scene/2d/collision_shape_2d.cpp
-msgid ""
-"CollisionShape2D only serves to provide a collision shape to a "
-"CollisionObject2D derived node. Please only use it as a child of Area2D, "
-"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
-msgstr ""
-
-#: scene/2d/collision_shape_2d.cpp
-msgid ""
-"A shape must be provided for CollisionShape2D to function. Please create a "
-"shape resource for it!"
-msgstr ""
-
-#: scene/2d/light_2d.cpp
-msgid ""
-"A texture with the shape of the light must be supplied to the 'texture' "
-"property."
-msgstr ""
-
-#: scene/2d/light_occluder_2d.cpp
-msgid ""
-"An occluder polygon must be set (or drawn) for this occluder to take effect."
-msgstr ""
-
-#: scene/2d/light_occluder_2d.cpp
-msgid "The occluder polygon for this occluder is empty. Please draw a polygon!"
-msgstr ""
-
-#: 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 ""
-
-#: scene/2d/navigation_polygon.cpp
-msgid ""
-"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
-"node. It only provides navigation data."
-msgstr ""
-
-#: scene/2d/parallax_layer.cpp
-msgid ""
-"ParallaxLayer node only works when set as child of a ParallaxBackground node."
-msgstr ""
-
-#: scene/2d/particles_2d.cpp
-msgid "Path property must point to a valid Particles2D node to work."
-msgstr ""
-
-#: scene/2d/path_2d.cpp
-msgid "PathFollow2D only works when set as a child of a Path2D node."
-msgstr ""
-
-#: scene/2d/remote_transform_2d.cpp
-msgid "Path property must point to a valid Node2D node to work."
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: scene/3d/body_shape.cpp
-msgid ""
-"CollisionShape only serves to provide a collision shape to a CollisionObject "
-"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
-"KinematicBody, etc. to give them a shape."
-msgstr ""
-
-#: scene/3d/body_shape.cpp
-msgid ""
-"A shape must be provided for CollisionShape to function. Please create a "
-"shape resource for it!"
-msgstr ""
-
-#: scene/3d/collision_polygon.cpp
-msgid ""
-"CollisionPolygon only serves to provide a collision shape to a "
-"CollisionObject derived node. Please only use it as a child of Area, "
-"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
-msgstr ""
-
-#: scene/3d/collision_polygon.cpp
-msgid "An empty CollisionPolygon has no effect on collision."
-msgstr ""
-
-#: scene/3d/navigation_mesh.cpp
-msgid "A NavigationMesh resource must be set or created for this node to work."
-msgstr ""
-
-#: scene/3d/navigation_mesh.cpp
-msgid ""
-"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
-"It only provides navigation data."
-msgstr ""
-
-#: scene/3d/remote_transform.cpp
-msgid "Path property must point to a valid Spatial node to work."
-msgstr ""
-
-#: scene/3d/scenario_fx.cpp
-msgid ""
-"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: scene/gui/dialogs.cpp tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/scene_tree_dock.cpp
-msgid "OK"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
-msgid "Alert!"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
-msgid "Please Confirm..."
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "File Exists, Overwrite?"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "All Recognized"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "All Files (*)"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
-#: tools/editor/filesystem_dock.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/property_selector.cpp tools/editor/quick_open.cpp
-msgid "Open"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp
-msgid "Open a File"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp
-msgid "Open File(s)"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp
-msgid "Open a Directory"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp
-msgid "Open a File or Directory"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Save a File"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
-#: tools/editor/editor_file_dialog.cpp
-msgid "Create Folder"
-msgstr ""
-
-#: 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 ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Directories & Files:"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "File:"
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Filter:"
-msgstr ""
-
-#: 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 ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_dir_dialog.cpp
-#: tools/editor/editor_file_dialog.cpp
-msgid "Could not create folder."
-msgstr ""
-
-#: scene/gui/file_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Must use a valid extension."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-#: tools/editor/settings_config_dialog.cpp
-msgid "Shift+"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-#: tools/editor/settings_config_dialog.cpp
-msgid "Alt+"
-msgstr ""
-
-#: scene/gui/input_action.cpp
-msgid "Ctrl+"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-#: tools/editor/settings_config_dialog.cpp
-msgid "Meta+"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Device"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Button"
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Left Button."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Right Button."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Middle Button."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Wheel Up."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Wheel Down."
-msgstr ""
-
-#: scene/gui/input_action.cpp tools/editor/project_settings.cpp
-msgid "Axis"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Cut"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
-msgid "Copy"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-#: tools/editor/property_editor.cpp tools/editor/resources_dock.cpp
-msgid "Paste"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/project_export.cpp
-msgid "Select All"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp tools/editor/editor_log.cpp
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-#: tools/editor/plugins/rich_text_editor_plugin.cpp
-#: tools/editor/property_editor.cpp tools/editor/script_editor_debugger.cpp
-msgid "Clear"
-msgstr ""
-
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp tools/editor/editor_node.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Undo"
-msgstr ""
-
-#: scene/gui/popup.cpp
-msgid ""
-"Popups will hide by default unless you call popup() or any of the popup*() "
-"functions. Making them visible for editing is fine though, but they will "
-"hide upon running."
-msgstr ""
-
-#: scene/main/viewport.cpp
-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 "
-"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
-"texture to some node for display."
-msgstr ""
-
-#: scene/resources/dynamic_font.cpp
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Error initializing FreeType."
-msgstr ""
-
-#: scene/resources/dynamic_font.cpp
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Unknown font format."
-msgstr ""
-
-#: scene/resources/dynamic_font.cpp
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Error loading font."
-msgstr ""
-
-#: scene/resources/dynamic_font.cpp
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Invalid font size."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Disabled"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "All Selection"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Change Transition"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Change Transform"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Change Value"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Change Call"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Add Track"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Duplicate Keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move Anim Track Up"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move Anim Track Down"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove Anim Track"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Set Transitions to:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Track Rename"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Track Change Interpolation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Track Change Value Mode"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Edit Node Curve"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Edit Selection Curve"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Delete Keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Duplicate Selection"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Duplicate Transposed"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove Selection"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Continuous"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Discrete"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Trigger"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Add Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Move Keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Scale Selection"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Scale From Cursor"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Goto Next Step"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Goto Prev Step"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp tools/editor/property_editor.cpp
-msgid "Linear"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Constant"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "In"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Out"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "In-Out"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Out-In"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Transitions"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Optimize Animation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Clean-Up Animation"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Create NEW track for %s and insert key?"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Create %d NEW tracks and insert keys?"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp tools/editor/create_dialog.cpp
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-#: tools/editor/plugins/particles_editor_plugin.cpp
-#: tools/editor/project_manager.cpp tools/editor/script_create_dialog.cpp
-msgid "Create"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Create & Insert"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Insert Track & Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Insert Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Change Anim Len"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Change Anim Loop"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Create Typed Value Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Insert"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Scale Keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim Add Call Track"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Animation zoom."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Length (s):"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Animation length (in seconds)."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Step (s):"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Cursor step snap (in seconds)."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Enable/Disable looping in animation."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Add new tracks."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move current track up."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Move current track down."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove selected track."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Track tools"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Enable editing of individual keys by clicking them."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Anim. Optimizer"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Max. Linear Error:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Max. Angular Error:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Max Optimizable Angle:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Optimize"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Key"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Transition"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Scale Ratio:"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Call Functions in Which Node?"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove invalid keys"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Remove unresolved and empty tracks"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Clean-up all animations"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
-
-#: tools/editor/animation_editor.cpp
-msgid "Clean-Up"
-msgstr ""
-
-#: tools/editor/array_property_edit.cpp
-msgid "Resize Array"
-msgstr ""
-
-#: tools/editor/array_property_edit.cpp
-msgid "Change Array Value Type"
-msgstr ""
-
-#: tools/editor/array_property_edit.cpp
-msgid "Change Array Value"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp tools/editor/create_dialog.cpp
-#: tools/editor/editor_help.cpp tools/editor/editor_node.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/property_selector.cpp tools/editor/quick_open.cpp
-#: tools/editor/settings_config_dialog.cpp
-msgid "Search:"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Sort:"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Reverse"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-#: tools/editor/project_settings.cpp
-msgid "Category:"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "All"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Site:"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Support.."
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Official"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Community"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Testing"
-msgstr ""
-
-#: tools/editor/asset_library_editor_plugin.cpp
-msgid "Assets ZIP File"
-msgstr ""
-
-#: tools/editor/call_dialog.cpp
-msgid "Method List For '%s':"
-msgstr ""
-
-#: tools/editor/call_dialog.cpp
-msgid "Method List:"
-msgstr ""
-
-#: tools/editor/call_dialog.cpp
-msgid "Arguments:"
-msgstr ""
-
-#: tools/editor/call_dialog.cpp
-msgid "Return:"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Go to Line"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Line Number:"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "No Matches"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replaced %d Ocurrence(s)."
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replace"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replace All"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Match Case"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Whole Words"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Selection Only"
-msgstr ""
-
-#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-#: tools/editor/project_settings.cpp
-msgid "Search"
-msgstr ""
-
-#: tools/editor/code_editor.cpp tools/editor/editor_help.cpp
-msgid "Find"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Next"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replaced %d ocurrence(s)."
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Not found!"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Replace By"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Case Sensitive"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Backwards"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Prompt On Replace"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Skip"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom In"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom Out"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Reset Zoom"
-msgstr ""
-
-#: tools/editor/code_editor.cpp tools/editor/script_editor_debugger.cpp
-msgid "Line:"
-msgstr ""
-
-#: tools/editor/code_editor.cpp
-msgid "Col:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Method in target Node must be specified!"
-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 ""
-
-#: tools/editor/connections_dialog.cpp
-#: tools/editor/editor_autoload_settings.cpp tools/editor/groups_editor.cpp
-#: tools/editor/plugins/item_list_editor_plugin.cpp
-#: tools/editor/plugins/theme_editor_plugin.cpp
-#: tools/editor/project_settings.cpp
-msgid "Add"
-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 ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Add Extra Call Argument:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Extra Call Arguments:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Path to Node:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Make Function"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Deferred"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Oneshot"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Connect"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Connect '%s' to '%s'"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Connecting Signal:"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-msgid "Connect.."
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Disconnect"
-msgstr ""
-
-#: tools/editor/connections_dialog.cpp tools/editor/node_dock.cpp
-msgid "Signals"
-msgstr ""
-
-#: tools/editor/create_dialog.cpp
-msgid "Create New"
-msgstr ""
-
-#: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp
-#: tools/editor/filesystem_dock.cpp
-msgid "Favorites:"
-msgstr ""
-
-#: tools/editor/create_dialog.cpp tools/editor/editor_file_dialog.cpp
-msgid "Recent:"
-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 ""
-
-#: tools/editor/create_dialog.cpp tools/editor/editor_help.cpp
-#: tools/editor/property_selector.cpp tools/editor/script_editor_debugger.cpp
-msgid "Description:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Search Replacement For:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Dependencies For:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid ""
-"Scene '%s' is currently being edited.\n"
-"Changes will not take effect unless reloaded."
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid ""
-"Resource '%s' is in use.\n"
-"Changes will take effect when reloaded."
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Dependencies"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Resource"
-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 ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Dependencies:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Fix Broken"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Dependency Editor"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Search Replacement Resource:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Owners Of:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid ""
-"The files being removed are required by other resources in order for them to "
-"work.\n"
-"Remove them anyway? (no undo)"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Remove selected files from the project? (no undo)"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Error loading:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Scene failed to load due to missing dependencies:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Open Anyway"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Which action should be taken?"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Fix Dependencies"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Errors loading!"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Owns"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Resources Without Explicit Ownership:"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp tools/editor/editor_node.cpp
-msgid "Orphan Resource Explorer"
-msgstr ""
-
-#: tools/editor/dependency_editor.cpp
-msgid "Delete selected files?"
-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 ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Invalid name."
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Valid characters:"
-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 ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "File does not exist."
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Not in resource path."
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Add AutoLoad"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Autoload '%s' already exists!"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Rename Autoload"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Toggle AutoLoad Globals"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Move Autoload"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Remove Autoload"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Enable"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Rearrange Autoloads"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Node Name:"
-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 ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "Singleton"
-msgstr ""
-
-#: tools/editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
-#: tools/editor/editor_data.cpp
-msgid "Updating Scene"
-msgstr ""
-
-#: tools/editor/editor_data.cpp
-msgid "Storing local changes.."
-msgstr ""
-
-#: tools/editor/editor_data.cpp
-msgid "Updating scene.."
-msgstr ""
-
-#: tools/editor/editor_dir_dialog.cpp
-msgid "Choose a Directory"
-msgstr ""
-
-#: tools/editor/editor_dir_dialog.cpp
-msgid "Choose"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Go Back"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Go Forward"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Go Up"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Toggle Hidden Files"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Toggle Favorite"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Toggle Mode"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Focus Path"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Move Favorite Up"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Move Favorite Down"
-msgstr ""
-
-#: tools/editor/editor_file_dialog.cpp
-msgid "Preview:"
-msgstr ""
-
-#: tools/editor/editor_file_system.cpp
-msgid "ScanSources"
-msgstr ""
-
-#: tools/editor/editor_help.cpp tools/editor/plugins/script_editor_plugin.cpp
-msgid "Search Help"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Class List:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Search Classes"
-msgstr ""
-
-#: tools/editor/editor_help.cpp tools/editor/property_editor.cpp
-msgid "Class:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp tools/editor/scene_tree_editor.cpp
-#: tools/editor/script_create_dialog.cpp
-msgid "Inherits:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Inherited by:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Brief Description:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Public Methods:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "GUI Theme Items:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Constants:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Method Description:"
-msgstr ""
-
-#: tools/editor/editor_help.cpp
-msgid "Search Text"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Added:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Removed:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp tools/editor/project_export.cpp
-msgid "Error saving atlas:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Could not save atlas subtexture:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Storing File:"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Packing"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Exporting for %s"
-msgstr ""
-
-#: tools/editor/editor_import_export.cpp
-msgid "Setting Up.."
-msgstr ""
-
-#: tools/editor/editor_log.cpp
-msgid " Output:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
-msgid "Re-Importing"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Importing:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Node From Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/resources_dock.cpp
-msgid "Error saving resource!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/resources_dock.cpp
-msgid "Save Resource As.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/scene_tree_dock.cpp
-msgid "I see.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't open file for writing:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Requested file format unknown:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error while saving."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Saving Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Analyzing"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Creating Thumbnail"
-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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't load MeshLibrary for merging!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error saving MeshLibrary!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't load TileSet for merging!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error saving TileSet!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't open export templates zip."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Loading Export Templates"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error trying to save layout!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Default editor layout overridden."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Layout name not found!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Restored default layout to base settings."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Copy Params"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Paste Params"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Paste Resource"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Copy Resource"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Make Built-In"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Make Sub-Resources Unique"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open in Help"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "There is no defined scene to run."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"No main scene has ever been defined, select one?\n"
-"You can change it later in later in \"Project Settings\" under the "
-"'application' category."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"Selected scene '%s' does not exist, select a valid one?\n"
-"You can change it later in \"Project Settings\" under the 'application' "
-"category."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"Selected scene '%s' is not a scene file, select a valid one?\n"
-"You can change it later in \"Project Settings\" under the 'application' "
-"category."
-msgstr ""
-
-#: 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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open Base Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quick Open Scene.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quick Open Script.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Yes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Close scene? (Unsaved changes will be lost)"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save Scene As.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "This scene has never been saved. Save before running?"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Please save the scene first."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save Translatable Strings"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Export Mesh Library"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Export Tile Set"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quit"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Exit the editor?"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Current scene not saved. Open anyway?"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Can't reload a scene that was never saved."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Revert"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "This action cannot be undone. Revert anyway?"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quick Run Scene.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"Open Project Manager? \n"
-"(Unsaved changes will be lost)"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Pick a Main Scene"
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Error loading scene."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Scene '%s' has broken dependencies:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Delete Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
-msgid "Default"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Switch Scene Tab"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "%d more file(s)"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "%d more file(s) or folder(s)"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Go to previously opened scene."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Next tab"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Previous tab"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Operations with scene files."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "New Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "New Inherited Scene.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open Scene.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save all Scenes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Close Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Close Goto Prev. Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open Recent"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quick Filter Files.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Convert To.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Translatable Strings.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "MeshLibrary.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "TileSet.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Redo"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Run Script"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Project Settings"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Revert Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Quit to Project List"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Distraction Free Mode"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Import assets to the project."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-#: 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
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-#: tools/editor/project_manager.cpp
-msgid "Import"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Miscellaneous project or scene-wide tools."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Tools"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Export the project to many platforms."
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
-msgid "Export"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play the project."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Play"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Pause the scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Pause Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Stop the scene."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Stop"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play the edited scene."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play custom scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Play Custom Scene"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Debug options"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Deploy with Remote Debug"
-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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Small Deploy with Network FS"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"When this option is enabled, export or deploy will produce a minimal "
-"executable.\n"
-"The filesystem will be provided from the project by the editor over the "
-"network.\n"
-"On Android, deploy will use the USB cable for faster performance. This "
-"option speeds up testing for games with a large footprint."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Visible Collision Shapes"
-msgstr ""
-
-#: 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 ""
-
-#: tools/editor/editor_node.cpp
-msgid "Visible Navigation"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"Navigation meshes and polygons will be visible on the running game if this "
-"option is turned on."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Sync Scene Changes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"When this option is turned on, any changes made to the scene in the editor "
-"will be replicated in the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Sync Script Changes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid ""
-"When this option is turned on, any script that is saved will be reloaded on "
-"the running game.\n"
-"When used remotely on a device, this is more efficient with network "
-"filesystem."
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Settings"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/settings_config_dialog.cpp
-msgid "Editor Settings"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Editor Layout"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Toggle Fullscreen"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Install Export Templates"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "About"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Alerts when an external resource has changed."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Spins when the editor window repaints!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Update Always"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Update Changes"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Disable Update Spinner"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Inspector"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Create a new resource in memory and edit it."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Load an existing resource from disk and edit it."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Save the currently edited resource."
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save As.."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Go to the previous edited object in history."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Go to the next edited object in history."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "History of recently edited objects."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Object properties."
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "FileSystem"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/node_dock.cpp
-msgid "Node"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Output"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/editor_reimport_dialog.cpp
-msgid "Re-Import"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/editor_plugin_settings.cpp
-msgid "Update"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Thanks from the Godot community!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Thanks!"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Import Templates From ZIP File"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
-msgid "Export Project"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Export Library"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Merge With Existing"
-msgstr ""
-
-#: tools/editor/editor_node.cpp tools/editor/project_export.cpp
-msgid "Password:"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Open & Run a Script"
-msgstr ""
-
-#: tools/editor/editor_node.cpp
-msgid "Load Errors"
-msgstr ""
-
-#: tools/editor/editor_plugin_settings.cpp
-msgid "Installed Plugins:"
-msgstr ""
-
-#: tools/editor/editor_plugin_settings.cpp
-msgid "Version:"
-msgstr ""
-
-#: tools/editor/editor_plugin_settings.cpp
-msgid "Author:"
-msgstr ""
-
-#: tools/editor/editor_plugin_settings.cpp
-msgid "Status:"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Stop Profiling"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Start Profiling"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Measure:"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Frame Time (sec)"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Average Time (sec)"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Frame %"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Fixed Frame %"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp tools/editor/script_editor_debugger.cpp
-msgid "Time:"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Inclusive"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Self"
-msgstr ""
-
-#: tools/editor/editor_profiler.cpp
-msgid "Frame #:"
-msgstr ""
-
-#: tools/editor/editor_reimport_dialog.cpp
-msgid "Please wait for scan to complete."
-msgstr ""
-
-#: tools/editor/editor_reimport_dialog.cpp
-msgid "Current scene must be saved to re-import."
-msgstr ""
-
-#: tools/editor/editor_reimport_dialog.cpp
-msgid "Save & Re-Import"
-msgstr ""
-
-#: tools/editor/editor_reimport_dialog.cpp
-msgid "Re-Import Changed Resources"
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Write your logic in the _run() method."
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "There is an edited scene already."
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Couldn't instance script:"
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Did you forget the 'tool' keyword?"
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Couldn't run script:"
-msgstr ""
-
-#: tools/editor/editor_run_script.cpp
-msgid "Did you forget the '_run' method?"
-msgstr ""
-
-#: tools/editor/editor_settings.cpp
-msgid "Default (Same as Editor)"
-msgstr ""
-
-#: tools/editor/editor_sub_scene.cpp
-msgid "Select Node(s) to Import"
-msgstr ""
-
-#: tools/editor/editor_sub_scene.cpp
-msgid "Scene Path:"
-msgstr ""
-
-#: tools/editor/editor_sub_scene.cpp
-msgid "Import From Node:"
-msgstr ""
-
-#: tools/editor/file_type_cache.cpp
-msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Same source and destination files, doing nothing."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Same source and destination paths, doing nothing."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Can't move directories to within themselves."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Can't operate on '..'"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Pick New Name and Location For:"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "No files selected!"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Instance"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Edit Dependencies.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "View Owners.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Rename or Move.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Move To.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Info"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Re-Import.."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Previous Directory"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Next Directory"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Re-Scan Filesystem"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Toggle folder status as Favorite"
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Instance the selected scene(s) as child of the selected node."
-msgstr ""
-
-#: tools/editor/filesystem_dock.cpp
-msgid "Move"
-msgstr ""
-
-#: tools/editor/groups_editor.cpp
-msgid "Add to Group"
-msgstr ""
-
-#: tools/editor/groups_editor.cpp
-msgid "Remove from Group"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-msgid "No bit masks to import!"
-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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-msgid "Import BitMasks"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Source Texture(s):"
-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
-#: 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
-msgid "Target Path:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-#: tools/editor/io_plugins/editor_font_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
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Accept"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
-msgid "Bit Mask"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "No source font file!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "No target font resource!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid ""
-"Invalid file extension.\n"
-"Please use .fnt."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Can't load/process source font."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Couldn't save font."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Source Font:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Source Font Size:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Dest Resource:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "The quick brown fox jumps over the lazy dog."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Test:"
-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 ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Font Import"
-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 ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Failed opening as BMFont file."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-msgid "Invalid font custom source."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_font_import_plugin.cpp
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Font"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-msgid "No meshes to import!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-msgid "Single Mesh Import"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-msgid "Source Mesh(es):"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_mesh_import_plugin.cpp
-msgid "Surface %d"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
-msgid "No samples to import!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
-msgid "Import Audio Samples"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
-msgid "Source Sample(s):"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_sample_import_plugin.cpp
-msgid "Audio Sample"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "New Clip"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Animation Options"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Flags"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Bake FPS:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Optimizer"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Max Linear Error"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Max Angular Error"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Max Angle"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Clips"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Start(s)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "End(s)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Loop"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Filters"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Source path is empty."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Couldn't load post-import script."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Error importing scene."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Import 3D Scene"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Source Scene:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Same as Target Scene"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Shared"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Target Texture Folder:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Post-Process Script:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Custom Root Node Type:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-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 ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Import Anyway"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Import & Open"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Edited scene has not been saved, open imported scene anyway?"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Import Scene"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Importing Scene.."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Running Custom Script.."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Couldn't load post-import script:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Error running post-import script:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Import Image:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Can't import a file over itself:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Couldn't localize path: %s (already local)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "Saving.."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-msgid "3D Scene Animation"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Uncompressed"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Compress Lossless (PNG)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Compress Lossy (WebP)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Compress (VRAM)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Texture Format"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Texture Compression Quality (WebP):"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Texture Options"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Please specify some files!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "At least one file needed for Atlas."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Error importing:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Only one file is required for large texture."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Max Texture Size:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Textures for Atlas (2D)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Cell Size:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Large Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Large Textures (2D)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Source Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Base Atlas Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Source Texture(s)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Textures for 2D"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Textures for 3D"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Textures"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "2D Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "3D Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Atlas Texture"
-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 ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Crop empty space."
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Import Large Texture"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Load Source Image"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Slicing"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Inserting"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Saving"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Couldn't save large texture:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Build Atlas For:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Loading Image:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Couldn't load image:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Converting Images"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Cropping Images"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Blitting Images"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Couldn't save atlas image:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_texture_import_plugin.cpp
-msgid "Couldn't save converted texture:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Invalid source!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Invalid translation source!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Column"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-#: tools/editor/script_create_dialog.cpp
-msgid "Language"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "No items to import!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "No target path!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Import Translations"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Couldn't import!"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Import Translation"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Source CSV:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Ignore First Row"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Compress"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Add to Project (engine.cfg)"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Import Languages:"
-msgstr ""
-
-#: tools/editor/io_plugins/editor_translation_import_plugin.cpp
-msgid "Translation"
-msgstr ""
-
-#: tools/editor/multi_node_edit.cpp
-msgid "MultiNode Set"
-msgstr ""
-
-#: tools/editor/node_dock.cpp
-msgid "Groups"
-msgstr ""
-
-#: tools/editor/node_dock.cpp
-msgid "Select a Node to edit Signals and Groups."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Toggle Autoplay"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "New Animation Name:"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "New Anim"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Change Animation Name:"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Remove Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: Invalid animation name!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: Animation name already exists!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Rename Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Blend Next Changed"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Change Blend Time"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Load Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Duplicate Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: No animation to copy!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: No animation resource on clipboard!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Pasted Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Paste Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "ERROR: No animation to edit!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Stop animation playback. (S)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Play selected animation from current pos. (D)"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation position (in seconds)."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Scale animation playback globally for the node."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Create new animation in player."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Load animation from disk."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Load an animation from disk."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Save the current animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Save As"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Display list of animations in player."
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Autoplay on Load"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Edit Target Blend Times"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation Tools"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Copy Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Create New Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Animation Name:"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
-msgid "Error!"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Blend Times:"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Next (Auto Queue):"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-msgid "Cross-Animation Blend Times"
-msgstr ""
-
-#: tools/editor/plugins/animation_player_editor_plugin.cpp
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Animation"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "New name:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Scale:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Fade In (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Fade Out (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Mix"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Auto Restart:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Restart (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Random Restart (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Start!"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Amount:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend 0:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend 1:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "X-Fade Time (s):"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Current:"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Add Input"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Clear Auto-Advance"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Set Auto-Advance"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Delete Input"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Rename"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Animation tree is valid."
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Animation tree is invalid."
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Animation Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "OneShot Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Mix Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend2 Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend3 Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Blend4 Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "TimeScale Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "TimeSeek Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Transition Node"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Import Animations.."
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Edit Node Filters"
-msgstr ""
-
-#: tools/editor/plugins/animation_tree_editor_plugin.cpp
-msgid "Filters.."
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Parsing %d Triangles:"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Triangle #"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Light Baker Setup:"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Parsing Geometry"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Fixing Lights"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Making BVH"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Creating Light Octree"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Creating Octree Texture"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Transfer to Lightmaps:"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Allocating Texture #"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Baking Triangle #"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_baker.cpp
-msgid "Post-Processing Texture #"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_editor_plugin.cpp
-msgid "Bake!"
-msgstr ""
-
-#: tools/editor/plugins/baked_light_editor_plugin.cpp
-msgid "Reset the lightmap octree baking process (start over)."
-msgstr ""
-
-#: tools/editor/plugins/camera_editor_plugin.cpp
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Preview"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Configure Snap"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid Offset:"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid Step:"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotation Offset:"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotation Step:"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move Pivot"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move Action"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Edit IK Chain"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Edit CanvasItem"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Change Anchors"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom (%):"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Paste Pose"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Select Mode"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Drag: Rotate"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Alt+Drag: Move"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Alt+RMB: Depth list selection"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Move Mode"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Rotate Mode"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid ""
-"Show a list of all objects at the position clicked\n"
-"(same as Alt+RMB in select mode)."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Click to change object's rotation pivot."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Pan Mode"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Unlock the selected object (can be moved)."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Makes sure the object's children are not selectable."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Restores the object's children's ability to be selected."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Use Snap"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Show Grid"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Rotation Snap"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Snap Relative"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Configure Snap.."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Use Pixel Snap"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Expand to Parent"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Skeleton.."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Make Bones"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Clear Bones"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Show Bones"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Make IK Chain"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Clear IK Chain"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom Reset"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Zoom Set.."
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Center Selection"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Frame Selection"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Anchor"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Insert Keys"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Insert Key"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Insert Key (Existing Tracks)"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Copy Pose"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Clear Pose"
-msgstr ""
-
-#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-msgid "Set a Value"
-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 ""
-
-#: 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
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Create Poly"
-msgstr ""
-
-#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Edit Poly"
-msgstr ""
-
-#: tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Edit Poly (Remove Point)"
-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
-msgid "Create a new polygon from scratch."
-msgstr ""
-
-#: tools/editor/plugins/collision_polygon_editor_plugin.cpp
-msgid "Create Poly3D"
-msgstr ""
-
-#: tools/editor/plugins/collision_shape_2d_editor_plugin.cpp
-msgid "Set Handle"
-msgstr ""
-
-#: tools/editor/plugins/color_ramp_editor_plugin.cpp
-msgid "Add/Remove Color Ramp Point"
-msgstr ""
-
-#: tools/editor/plugins/color_ramp_editor_plugin.cpp
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Modify Color Ramp"
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Creating Mesh Library"
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Thumbnail.."
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Remove item %d?"
-msgstr ""
-
-#: 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 ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Remove Selected Item"
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Import from Scene"
-msgstr ""
-
-#: tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
-msgid "Update from Scene"
-msgstr ""
-
-#: tools/editor/plugins/item_list_editor_plugin.cpp
-msgid "Item %d"
-msgstr ""
-
-#: tools/editor/plugins/item_list_editor_plugin.cpp
-msgid "Items"
-msgstr ""
-
-#: tools/editor/plugins/item_list_editor_plugin.cpp
-msgid "Item List Editor"
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-msgid "Create Occluder Polygon"
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "Edit existing polygon:"
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "LMB: Move Point."
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "Ctrl+LMB: Split Segment."
-msgstr ""
-
-#: tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "RMB: Erase Point."
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh is empty!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Static Trimesh Body"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Static Convex Body"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "This doesn't work on scene root!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Shape"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Convex Shape"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Navigation Mesh"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "MeshInstance lacks a Mesh!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh has not surface to create outlines from!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Could not create outline!"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Static Body"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Convex Static Body"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Trimesh Collision Sibling"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Convex Collision Sibling"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline Mesh.."
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Create Outline Mesh"
-msgstr ""
-
-#: tools/editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Outline Size:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (invalid path)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "No surface source specified."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Surface source is invalid (invalid path)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Surface source is invalid (no geometry)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Surface source is invalid (no faces)."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Parent has no solid faces to populate."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Couldn't map area."
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Select a Source Mesh:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Select a Target Surface:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate Surface"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate MultiMesh"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Target Surface:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Source Mesh:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "X-Axis"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Y-Axis"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Z-Axis"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Mesh Up Axis:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Rotation:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Tilt:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Random Scale:"
-msgstr ""
-
-#: tools/editor/plugins/multimesh_editor_plugin.cpp
-msgid "Populate"
-msgstr ""
-
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "Create Navigation Polygon"
-msgstr ""
-
-#: tools/editor/plugins/navigation_polygon_editor_plugin.cpp
-msgid "Remove Poly And Point"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Error loading image:"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "No pixels with transparency > 128 in image.."
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
-msgstr ""
-
-#: tools/editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generated Point Count:"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Node does not contain geometry."
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Node does not contain geometry (faces)."
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Faces contain no area!"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "No faces!"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Generate AABB"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emitter From Mesh"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emitter From Node"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Create Emitter"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Emission Positions:"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Emission Fill:"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Surface"
-msgstr ""
-
-#: tools/editor/plugins/particles_editor_plugin.cpp
-msgid "Volume"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Remove Point from Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Add Point to Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move Point in Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move In-Control in Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Move Out-Control in Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Select Points"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Shift+Drag: Select Control Points"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Click: Add Point"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Right Click: Delete Point"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-msgid "Select Control Points (Shift+Drag)"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Add Point (in empty space)"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Split Segment (in curve)"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Delete Point"
-msgstr ""
-
-#: tools/editor/plugins/path_2d_editor_plugin.cpp
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Close Curve"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Curve Point #"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Set Curve Point Pos"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Set Curve In Pos"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Set Curve Out Pos"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Split Path"
-msgstr ""
-
-#: tools/editor/plugins/path_editor_plugin.cpp
-msgid "Remove Path Point"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Create UV Map"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Transform UV Map"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon 2D UV Editor"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Move Point"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Ctrl: Rotate"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Shift: Move All"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Shift+Ctrl: Scale"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Move Polygon"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Rotate Polygon"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Scale Polygon"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Polygon->UV"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "UV->Polygon"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Clear UV"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Snap"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Enable Snap"
-msgstr ""
-
-#: tools/editor/plugins/polygon_2d_editor_plugin.cpp
-msgid "Grid"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "ERROR: Couldn't load resource!"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Add Resource"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Rename Resource"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Delete Resource"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-msgid "Resource clipboard is empty!"
-msgstr ""
-
-#: tools/editor/plugins/resource_preloader_editor_plugin.cpp
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Load Resource"
-msgstr ""
-
-#: tools/editor/plugins/rich_text_editor_plugin.cpp
-msgid "Parse BBCode"
-msgstr ""
-
-#: tools/editor/plugins/sample_editor_plugin.cpp
-msgid "Length:"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Open Sample File(s)"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "ERROR: Couldn't load sample!"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Add Sample"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Rename Sample"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Delete Sample"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "16 Bits"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "8 Bits"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Stereo"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Mono"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Format"
-msgstr ""
-
-#: tools/editor/plugins/sample_library_editor_plugin.cpp
-msgid "Pitch"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Error while saving theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Error saving"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Error importing theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Error importing"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Import Theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save Theme As.."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Next script"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Previous script"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/project_export.cpp
-msgid "File"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/property_editor.cpp
-msgid "New"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save All"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Soft Reload Script"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "History Prev"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "History Next"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Reload Theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save Theme"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Save Theme As"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Close Docs"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Close All"
-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 ""
-
-#: 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 ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Debug"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Step Over"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Step Into"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Break"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Continue"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Keep Debugger Open"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Window"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Move Left"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Move Right"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Tutorials"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Open https://godotengine.org at tutorials section."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Classes"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Search the class hierarchy."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Search the reference documentation."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Go to previous edited document."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Go to next edited document."
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Create Script"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid ""
-"The following files are newer on disk.\n"
-"What action should be taken?:"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Reload"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-msgid "Resave"
-msgstr ""
-
-#: tools/editor/plugins/script_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Debugger"
-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 ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Pick Color"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
-msgid "Move Up"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp tools/editor/scene_tree_dock.cpp
-msgid "Move Down"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Indent Left"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Indent Right"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Toggle Comment"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Clone Down"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Complete Symbol"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Trim Trailing Whitespace"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Auto Indent"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Remove All Breakpoints"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Goto Next Breakpoint"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Goto Previous Breakpoint"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Find Previous"
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Replace.."
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-msgid "Goto Function.."
-msgstr ""
-
-#: tools/editor/plugins/script_text_editor.cpp
-#: tools/editor/plugins/shader_editor_plugin.cpp
-msgid "Goto Line.."
-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 ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Scalar Constant"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Constant"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change RGB Constant"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Scalar Operator"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Operator"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Scalar Operator"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change RGB Operator"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Toggle Rot Only"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Scalar Function"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Function"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Scalar Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Vec Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change RGB Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Default Value"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change XForm Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Texture Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Cubemap Uniform"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Comment"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Add/Remove to Color Ramp"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Add/Remove to Curve Map"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Modify Curve Map"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Change Input Name"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Connect Graph Nodes"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Disconnect Graph Nodes"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Remove Shader Graph Node"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Move Shader Graph Node"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Duplicate Graph Node(s)"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Delete Shader Graph Node(s)"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Error: Cyclic Connection Link"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Error: Missing Input Connections"
-msgstr ""
-
-#: tools/editor/plugins/shader_graph_editor_plugin.cpp
-msgid "Add Shader Graph Node"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Orthogonal"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Perspective"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Aborted."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "X-Axis Transform."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Y-Axis Transform."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Z-Axis Transform."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Plane Transform."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Scaling to %s%%."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotating %s degrees."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Top View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Top"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Front View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Front"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Left View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Left"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Right View."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Right"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Keying is disabled (no key inserted)."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Animation Key Inserted."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Align with view"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Environment"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Audio Listener"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Gizmos"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "XForm Dialog"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "No scene selected to instance!"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Instance at Cursor"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Could not instance scene!"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Move Mode (W)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotate Mode (E)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Scale Mode (R)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Bottom View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Top View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rear View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Front View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Left View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Right View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Switch Perspective/Orthogonal view"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Insert Animation Key"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Focus Origin"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Focus Selection"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Align Selection With View"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Dialog.."
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Use Default Light"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Use Default sRGB"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "1 Viewport"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "2 Viewports"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "2 Viewports (Alt)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "3 Viewports"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "3 Viewports (Alt)"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "4 Viewports"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Normal"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Wireframe"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Overdraw"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Display Shadeless"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Origin"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Grid"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Snap Settings"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Translate Snap:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotate Snap (deg.):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Scale Snap (%):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Viewport Settings"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Default Light Normal:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Ambient Light Color:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Perspective FOV (deg.):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Z-Near:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "View Z-Far:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Change"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Translate:"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Rotate (deg.):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Scale (ratio):"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Transform Type"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Pre"
-msgstr ""
-
-#: tools/editor/plugins/spatial_editor_plugin.cpp
-msgid "Post"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "ERROR: Couldn't load frame resource!"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Frame"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Resource clipboard is empty or not a texture!"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Paste Frame"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Add Empty"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation Loop"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Change Animation FPS"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "(empty)"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Animations"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Speed (FPS):"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Animation Frames"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Insert Empty (Before)"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Insert Empty (After)"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Up"
-msgstr ""
-
-#: tools/editor/plugins/sprite_frames_editor_plugin.cpp
-msgid "Down"
-msgstr ""
-
-#: tools/editor/plugins/style_box_editor_plugin.cpp
-msgid "StyleBox Preview:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Snap Mode:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "<None>"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Pixel Snap"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Grid Snap"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Auto Slice"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Offset:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Step:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Separation:"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region"
-msgstr ""
-
-#: tools/editor/plugins/texture_region_editor_plugin.cpp
-msgid "Texture Region Editor"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Can't save theme to file:"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Add All Items"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Add All"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Remove Item"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Theme"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Add Class Items"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Remove Class Items"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Create Empty Template"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Create Empty Editor Template"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "CheckBox Radio1"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "CheckBox Radio2"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Item"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Check Item"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Checked Item"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Has"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Many"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp tools/editor/project_export.cpp
-msgid "Options"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Have,Many,Several,Options!"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 1"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 2"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Tab 3"
-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 ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Data Type:"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Icon"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Style"
-msgstr ""
-
-#: tools/editor/plugins/theme_editor_plugin.cpp
-msgid "Color"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Paint TileMap"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-#: tools/editor/scene_tree_dock.cpp
-msgid "Duplicate"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Erase TileMap"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Erase selection"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Find tile"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Transpose"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Mirror X"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Mirror Y"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Bucket"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Pick Tile"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Select"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rotate 0 degrees"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rotate 90 degrees"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rotate 180 degrees"
-msgstr ""
-
-#: tools/editor/plugins/tile_map_editor_plugin.cpp
-msgid "Rotate 270 degrees"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Could not find tile:"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Item name or ID:"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Create from scene?"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Merge from scene?"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Create from Scene"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-msgid "Merge from Scene"
-msgstr ""
-
-#: tools/editor/plugins/tile_set_editor_plugin.cpp
-#: tools/editor/script_editor_debugger.cpp
-msgid "Error"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Edit Script Options"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Please export outside the project folder!"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Error exporting project!"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Error writing the project PCK!"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "No exporter for platform '%s' yet."
-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 ""
-
-#: tools/editor/project_export.cpp
-msgid "Atlas Preview"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Project Export Settings"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Target"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export to Platform"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Resources"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export selected resources (including dependencies)."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export all resources in the project."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export all files in the project directory."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export Mode:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Resources to Export:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Action"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid ""
-"Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Convert text scenes to binary on export."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Images"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Keep Original"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress for Disk (Lossy, WebP)"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress for RAM (BC/PVRTC/ETC)"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Convert Images (*.png):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress for Disk (Lossy) Quality:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Shrink All Images:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress Formats:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Image Groups"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Groups:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress Disk"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress RAM"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress Mode:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Lossy Quality:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Atlas:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Shrink By:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Preview Atlas"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Image Filter:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Images:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Select None"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Group"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Samples"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Sample Conversion Mode: (.wav files):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Keep"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compress (RAM - IMA-ADPCM)"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Sampling Rate Limit (Hz):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Trim"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Trailing Silence:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Script"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Script Export Mode:"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Text"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Compiled"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Encrypted (Provide Key Below)"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Script Encryption Key (256-bits as hex):"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export PCK/Zip"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export Project PCK"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export.."
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Project Export"
-msgstr ""
-
-#: tools/editor/project_export.cpp
-msgid "Export Preset:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Invalid project path, the path must exist!"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Invalid project path, engine.cfg must not exist."
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Invalid project path, engine.cfg must exist."
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Imported Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Invalid project path (changed anything?)."
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Couldn't create engine.cfg in project path."
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "The following files failed extraction from package:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Package Installed Successfully!"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Import Existing Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project Path (Must Exist):"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project Name:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Create New Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project Path:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Install Project:"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Install"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Browse"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "New Game Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "That's a BINGO!"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Unnamed Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Are you sure to open more than one project?"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Are you sure to run more than one project?"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Remove project from the list? (Folder contents will not be modified)"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid ""
-"You are about the scan %s folders for existing Godot projects. Do you "
-"confirm?"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project Manager"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Project List"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Run"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Scan"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Select a Folder to Scan"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "New Project"
-msgstr ""
-
-#: tools/editor/project_manager.cpp
-msgid "Exit"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Key "
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Joy Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Joy Axis"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Mouse Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Invalid action (anything goes but '/' or ':')."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Action '%s' already exists!"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Rename Input Action Event"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add Input Action Event"
-msgstr ""
-
-#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
-msgid "Control+"
-msgstr ""
-
-#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
-msgid "Press a Key.."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Mouse Button Index:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Left Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Right Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Middle Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Wheel Up Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Wheel Down Button"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Button 6"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Button 7"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Button 8"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Button 9"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Joystick Axis Index:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Joystick Button Index:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add Input Action"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-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 ""
-
-#: tools/editor/project_settings.cpp
-msgid "Settings saved OK."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add Translation"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remove Translation"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add Remapped Path"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Resource Remap Add Remap"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Change Resource Remap Language"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remove Resource Remap"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remove Resource Remap Option"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Project Settings (engine.cfg)"
-msgstr ""
-
-#: tools/editor/project_settings.cpp tools/editor/settings_config_dialog.cpp
-msgid "General"
-msgstr ""
-
-#: tools/editor/project_settings.cpp tools/editor/property_editor.cpp
-msgid "Property:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Del"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Copy To Platform.."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Input Map"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Action:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Device:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Index:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Localization"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Translations"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Translations:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Add.."
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remaps"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Resources:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Remaps by Locale:"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Locale"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "AutoLoad"
-msgstr ""
-
-#: tools/editor/project_settings.cpp
-msgid "Plugins"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Preset.."
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Ease In"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Ease Out"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Zero"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Easing In-Out"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Easing Out-In"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "File.."
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Dir.."
-msgstr ""
-
-#: tools/editor/property_editor.cpp tools/editor/script_create_dialog.cpp
-msgid "Load"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Assign"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "New Script"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Error loading file: Not a resource!"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Couldn't load image"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Bit %d, val %d."
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "On"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Properties:"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
-#: tools/editor/property_selector.cpp
-msgid "Select Property"
-msgstr ""
-
-#: tools/editor/property_selector.cpp
-msgid "Select Method"
-msgstr ""
-
-#: tools/editor/pvrtc_compress.cpp
-msgid "Could not execute PVRTC tool:"
-msgstr ""
-
-#: tools/editor/pvrtc_compress.cpp
-msgid "Can't load back converted image using PVRTC tool:"
-msgstr ""
-
-#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
-msgid "Reparent Node"
-msgstr ""
-
-#: tools/editor/reparent_dialog.cpp
-msgid "Reparent Location (Select new Parent):"
-msgstr ""
-
-#: tools/editor/reparent_dialog.cpp
-msgid "Keep Global Transform"
-msgstr ""
-
-#: tools/editor/reparent_dialog.cpp tools/editor/scene_tree_dock.cpp
-msgid "Reparent"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Create New Resource"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Open Resource"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Save Resource"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Resource Tools"
-msgstr ""
-
-#: tools/editor/resources_dock.cpp
-msgid "Make Local"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Run Mode:"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Current Scene"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Main Scene"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Main Scene Arguments:"
-msgstr ""
-
-#: tools/editor/run_settings_dialog.cpp
-msgid "Scene Run Settings"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "No parent to instance the scenes at."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Error loading scene from %s"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Ok"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid ""
-"Cannot instance the scene '%s' because the current scene exists within one "
-"of its nodes."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Scene(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "This operation can't be done on the tree root."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Move Node In Parent"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Move Nodes In Parent"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Duplicate Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)?"
-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 can't be done on instanced scenes."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Save New Scene As.."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Makes Sense!"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Can't operate on nodes from a foreign scene!"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Can't operate on nodes the current scene inherits from!"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Remove Node(s)"
-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 ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Error duplicating scene to save it."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Groups"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Edit Connections"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Delete Node(s)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Add Child Node"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Instance Child Scene"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Change Type"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-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 ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Save Branch as Scene"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Delete (No Confirm)"
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Add/Create a New Node"
-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 "Attach a new or existing script for the selected node."
-msgstr ""
-
-#: tools/editor/scene_tree_dock.cpp
-msgid "Clear a 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_editor.cpp
-msgid "Toggle Spatial Visible"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Toggle CanvasItem Visible"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Instance:"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Rename Node"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Scene Tree (Nodes):"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Editable Children"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Load As Placeholder"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Discard Instancing"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Open in Editor"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Clear Inheritance"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Clear Inheritance? (No Undo!)"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Clear!"
-msgstr ""
-
-#: tools/editor/scene_tree_editor.cpp
-msgid "Select a Node"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid parent class name"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Valid chars:"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid class name"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Valid name"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "N/A"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Class name is invalid!"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Parent class name is invalid!"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid path!"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-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 ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Path is not local"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid base path"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Invalid extension"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-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:"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Built-In Script"
-msgstr ""
-
-#: tools/editor/script_create_dialog.cpp
-msgid "Attach Node Script"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Bytes:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Warning"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Error:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Source:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Function:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Errors"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Child Process Connected"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Inspect Previous Instance"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Inspect Next Instance"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Stack Frames"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Variable"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Errors:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Stack Trace (if applicable):"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Remote Inspector"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Live Scene Tree:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Remote Object Properties: "
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Profiler"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Monitor"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Value"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Monitors"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "List of Video Memory Usage by Resource:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Total:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Video Mem"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Resource Path"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Type"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Usage"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Misc"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Clicked Control:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Clicked Control Type:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Live Edit Root:"
-msgstr ""
-
-#: tools/editor/script_editor_debugger.cpp
-msgid "Set From Tree"
-msgstr ""
-
-#: tools/editor/settings_config_dialog.cpp
-msgid "Shortcuts"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Light Radius"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Camera FOV"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Camera Size"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Sphere Shape Radius"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Box Shape Extents"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Capsule Shape Radius"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Capsule Shape Height"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Ray Shape Length"
-msgstr ""
-
-#: tools/editor/spatial_editor_gizmos.cpp
-msgid "Change Notifier Extents"
-msgstr ""
diff --git a/tools/translations/ru.po b/tools/translations/ru.po
index 3060567126..73262dbd5e 100644
--- a/tools/translations/ru.po
+++ b/tools/translations/ru.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-10-17 19:47+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.9-dev\n"
+"X-Generator: Weblate 2.10-dev\n"
#: modules/gdscript/gd_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -609,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 "
@@ -1012,7 +1008,7 @@ msgstr "Дублировать перемещённый"
#: tools/editor/animation_editor.cpp
msgid "Remove Selection"
-msgstr "Убрать выделение"
+msgstr "Удалить выделенное"
#: tools/editor/animation_editor.cpp
msgid "Continuous"
@@ -1855,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 "Описание методов:"
@@ -2868,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 "Целевой путь:"
@@ -3101,9 +3103,8 @@ msgid "Auto"
msgstr "Авто"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Root Node Name:"
-msgstr "Имя Узла:"
+msgstr "Имя корневого узла:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
msgid "The Following Files are Missing:"
@@ -3454,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"
@@ -4017,13 +4018,12 @@ msgid "Snap (Pixels):"
msgstr "Привязка (пиксели):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add %s"
-msgstr "Добавить все"
+msgstr "Добавить %s"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "Добавление %s..."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
@@ -4043,7 +4043,7 @@ msgstr "Ок :("
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "No parent to instance a child at."
-msgstr "Нет родителя для добавления потомка."
+msgstr "Не выбран родитель для добавления потомка."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
@@ -4051,15 +4051,16 @@ msgid "This operation requires a single selected node."
msgstr "Эта операция требует одного выбранного узла."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change default type"
-msgstr "Изменено стандартное значение"
+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
@@ -4929,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 "Изменена числовая константа"
@@ -5703,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 "Включить"
@@ -6166,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 "Ошибка сохранения настроек."
@@ -6346,10 +6396,6 @@ msgid "Properties:"
msgstr "Свойства:"
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr "Глобальные"
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr "Разделы:"
@@ -6540,14 +6586,12 @@ msgid "Change Type"
msgstr "Изменить тип"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach Script"
-msgstr "Добавить скрипт"
+msgstr "Прикрепить скрипт"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear Script"
-msgstr "Создать скрипт"
+msgstr "Убрать скрипт"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6574,22 +6618,12 @@ msgstr ""
"не существует."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script for the selected node."
-msgstr "Создать новый скрипт для выбранного узла."
+msgstr "Прикрепить новый или существующий скрипт к выбранному узлу."
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear a 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 ""
-"Этот объект не может быть отображён, потому что его родитель скрыт. "
-"Отобразите сначала родительский узел."
+msgstr "Убрать скрипт у выбранного узла."
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6684,13 +6718,12 @@ msgid "Could not create script in filesystem."
msgstr "Не удалось создать скрипт в файловой системе."
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Error loading script from %s"
-msgstr "Ошибка при загрузке сцены из %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"
@@ -6705,14 +6738,12 @@ msgid "Invalid extension"
msgstr "Недопустимое расширение"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Create new script"
-msgstr "Создать скрипт"
+msgstr "Создать новый скрипт"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Load existing script"
-msgstr "Следующий скрипт"
+msgstr "Загрузить существующий скрипт"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6723,9 +6754,8 @@ msgid "Built-In Script"
msgstr "Встроенный Скрипт"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Attach Node Script"
-msgstr "Создать скрипт для узла"
+msgstr "Добавление скрипта"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6891,6 +6921,36 @@ 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://'"
diff --git a/tools/translations/sk.po b/tools/translations/sk.po
index bd363a7eb3..f1bd9f1300 100644
--- a/tools/translations/sk.po
+++ b/tools/translations/sk.po
@@ -563,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 "
@@ -1771,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 ""
@@ -2748,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 ""
@@ -4786,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 ""
@@ -5563,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 ""
@@ -6022,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 ""
@@ -6203,10 +6248,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6431,12 +6472,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6734,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 caf7920f96..12903cba83 100644
--- a/tools/translations/sl.po
+++ b/tools/translations/sl.po
@@ -575,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 "
@@ -1782,6 +1778,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2758,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 ""
@@ -4796,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 ""
@@ -5570,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 ""
@@ -6029,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 ""
@@ -6209,10 +6252,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6436,12 +6475,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6737,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 1c53e86cd8..447067beb3 100644
--- a/tools/translations/tools.pot
+++ b/tools/translations/tools.pot
@@ -544,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 "
@@ -1751,6 +1747,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2727,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 ""
@@ -4764,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 ""
@@ -5538,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 ""
@@ -5997,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 ""
@@ -6177,10 +6220,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6403,12 +6442,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6703,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 7b0c06f584..b930e302f2 100644
--- a/tools/translations/tr.po
+++ b/tools/translations/tr.po
@@ -2,67 +2,69 @@
# 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-11-11 12:37+0000\n"
-"Last-Translator: Ceyhun Can Ulker <ceyhuncanu@gmail.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.9\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() icin geçersiz tip argümanı, TYPE_* sabtilerini kullanın."
+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 "Geçersiz format ya da kod çözmek için yetersiz byte sayısı."
+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 "Adım argümanı sıfır!"
+msgstr "adım değiştirgeni sıfır!"
#: modules/gdscript/gd_functions.cpp
msgid "Not a script with an instance"
-msgstr "Örneği mevcut olan bir bir kod değil"
+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 "Geçersiz örnek sözlük formatı (@path eksik)"
+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 "Geçersiz örnek sözlük formatı (kod @path 'tan yüklenemiyor)"
+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 "Geçersiz örnek sözlük formatı (@path 'taki kod geçersiz)"
+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 "Geçersiz örnek sözlüğü (geçersiz altsınıflar)"
+msgstr "Geçersiz örnek sözlüğü (geçersiz altbölütler)"
#: modules/visual_script/visual_script.cpp
-#, fuzzy
msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
@@ -75,6 +77,8 @@ 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 ""
@@ -90,7 +94,7 @@ 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 "Dizi bulundu fakat yığındaki düğüm değil, hata raporlayın!"
+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: "
@@ -98,7 +102,7 @@ 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,11 +158,11 @@ 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"
@@ -171,14 +175,14 @@ 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ı fonksiyon (Getter) bırakmak için Alt'a basılı tutun. Genelgeçer imzaya "
-"sahip bir fonksiyon bırakmak için Shift'e basılı tutun."
+"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ı fonksiyon (Getter) bırakmak için Ctrl'e basılı tutun. Genelgeçer "
-"imzaya sahip bir fonksiyon bırakmak için Shift'e basılı tutun."
+"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."
@@ -197,9 +201,8 @@ msgid "Hold Ctrl to drop a Variable Setter."
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"
@@ -214,9 +217,8 @@ 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"
@@ -224,7 +226,7 @@ msgstr "Dizi"
#: modules/visual_script/visual_script_editor.cpp
msgid "Switch"
-msgstr "Şalter"
+msgstr "Değiştir"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
@@ -232,7 +234,7 @@ msgstr "Yineleyici"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "İken"
#: modules/visual_script/visual_script_editor.cpp
msgid "Return"
@@ -262,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:"
@@ -270,11 +272,11 @@ msgstr "Üyeler:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Available Nodes:"
-msgstr "Mevcut Düğümler:"
+msgstr "Kullanışlı Düğümler:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit graph"
-msgstr "Çizgeyi düzenlemek için bir fonksiyon seçin ya da yaratın"
+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
@@ -291,7 +293,7 @@ msgstr "Kapat"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Signal Arguments:"
-msgstr "Sinyal Argümanlarını Düzenle:"
+msgstr "İşaret Değiştirgenlerini Düzenle:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Variable:"
@@ -308,15 +310,15 @@ msgstr "Seçilenleri Sil"
#: modules/visual_script/visual_script_editor.cpp
#: tools/editor/plugins/script_text_editor.cpp
msgid "Toggle Breakpoint"
-msgstr "Kesme Noktası Aç/Kapa"
+msgstr "Kesme Noktası Aç/Kapat"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr "Düğüm Tipi Bul"
+msgstr "Düğüm Türü Bul"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
-msgstr "Düğümleri Kopyala"
+msgstr "Düğümleri Tıpkıla"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
@@ -328,15 +330,15 @@ msgstr "Düğümleri Yapıştır"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr "Girdi tipi yinelenebilir değil: "
+msgstr "Girdi türü yinelenebilir değil: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr "Yineleyici geçersiz hale geldi"
+msgstr "Yineleyici geçersiz durumda"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr "Yineleyici geçersiz hale geldi: "
+msgstr "Yineleyici geçersiz durumda: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
@@ -352,87 +354,85 @@ 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 "Geçersiz dizin özelliği adı '%s', %s düğümünde."
+msgstr "%s düğümünde geçersiz dizin özelliği adı '%s'."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ": Şu tip için geçersiz argüman: "
+msgstr ": Şu tür için geçersiz değiştirgen: "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
-msgstr ": Geçersiz argümanlar: "
+msgstr ": Geçersiz değiştirgenler: "
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "VariableGet not found in script: "
-msgstr "DeğilkenAl kodda bulunmadı: "
+msgstr "VariableGet betikte bulunamadı: "
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
msgid "VariableSet not found in script: "
-msgstr "DeğişkenAta kodda bulunmadı: "
+msgstr "VariableSet betikte bulunamadı: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
-msgstr "Özel düğüm _step() (adım) yöntemine sahip değil, çizgeyi işleyemez."
+msgstr "Özel düğüm _step() yöntemine sahip değil, çizgeyi işleyemez."
#: modules/visual_script/visual_script_nodes.cpp
-#, fuzzy
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 (hata) "
-"olmalı."
+"_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 "henüz basıldı"
+msgstr "yeni basıldı"
#: modules/visual_script/visual_script_nodes.cpp
msgid "just released"
-msgstr "henüz bırakıldı"
+msgstr "yeni bırakıldı"
#: platform/uwp/export/export.cpp
msgid ""
"Couldn't read the certficate file. Are the path and password both correct?"
-msgstr "Sertifika dosyası okunamadı. Yol ve şifrenin her ikisi de doğru mu?"
+msgstr ""
+"Onay belgesi dizeci okunamadı. Yol ve gizyazının her ikisi de doğru mu?"
#: platform/uwp/export/export.cpp
msgid "Error creating the signature object."
-msgstr "İmza nesnesini yaratmada hata."
+msgstr "İmza nesnesini oluşturmada sorun."
#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
-msgstr "Paket imzasını yaratmada hata."
+msgstr "Çıkın imzasını oluşturmada sorun."
#: platform/uwp/export/export.cpp
msgid ""
"No export templates found.\n"
"Download and install export templates."
msgstr ""
-"Hiçbir dışa aktarım şablonu bulunmadı.\n"
-"Dışa aktarım şabloları indirin ve yükleyin.."
+"Hiçbir dışa aktarım kalıbı bulunamadı.\n"
+"Dışa aktarım kalıplarını indirin ve yükleyin.."
#: platform/uwp/export/export.cpp
msgid "Custom debug package not found."
-msgstr "Özel yanlış ayıklama paketi bulunmadı."
+msgstr "Özel kusur ayıklama çıkını bulunmadı."
#: platform/uwp/export/export.cpp
msgid "Custom release package not found."
-msgstr "Özel yayım paketi bulunmadı."
+msgstr "Özel yayınlama çıkını bulunamadı."
#: platform/uwp/export/export.cpp
msgid "Invalid unique name."
-msgstr "Geçersiz benzersiz isim."
+msgstr "Benzersiz Ad Geçersiz."
#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
-msgstr "Geçersiz ürün GUID'i (küresel benzersiz tanıtıcı)."
+msgstr "Geçersiz ürün GUID'i."
#: platform/uwp/export/export.cpp
msgid "Invalid publisher GUID."
-msgstr "Geçersiz yayıncı GUID'i (küresel benzersiz tanıtıcı)."
+msgstr "Geçersiz yayıncı GUID'i."
#: platform/uwp/export/export.cpp
msgid "Invalid background color."
@@ -440,47 +440,47 @@ msgstr "Geçersiz arkaplan rengi."
#: platform/uwp/export/export.cpp
msgid "Invalid Store Logo image dimensions (should be 50x50)."
-msgstr "Geçersiz Dükkan Logo resim boyutları (50x50 olmalı)."
+msgstr "Geçersiz Yığım Belirtkesi, bedizin boyutları (50x50 olmalı)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 44x44 logo image dimensions (should be 44x44)."
-msgstr "Geçersiz kare 44x44 logo resim boyutları (44x44 olmalı)."
+msgstr "Geçersiz kare 44x44 belirtkenin bediz boyutları (44x44 olmalı)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 71x71 logo image dimensions (should be 71x71)."
-msgstr "Geçersiz kare 71x71 logo resim boyutları (71x71 olmalı)."
+msgstr "Geçersiz kare 71x71 belirtkenin bediz boyutları (71x71 olmalı)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 150x150 logo image dimensions (should be 150x150)."
-msgstr "Geçersiz kare 150x150 logo resim boyutları (150x150 olmalı)."
+msgstr "Geçersiz kare 150x150 belirtkenin bediz boyutları (150x150 olmalı)."
#: platform/uwp/export/export.cpp
msgid "Invalid square 310x310 logo image dimensions (should be 310x310)."
-msgstr "Geçersiz kare 310x310 logo resim boyutları (310x310 olmalı)."
+msgstr "Geçersiz kare 310x310 belirtkenin bediz boyutları (310x310 olmalı)."
#: platform/uwp/export/export.cpp
msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)."
-msgstr "Geçersiz kare 310x150 logo resim boyutları (310x150 olmalı)."
+msgstr "Geçersiz kare 310x150 belirtkenin bediz boyutları (310x150 olmalı)."
#: platform/uwp/export/export.cpp
msgid "Invalid splash screen image dimensions (should be 620x300)."
-msgstr "Geçersiz açılış erkanı resim boyutları (620x300 olmalı)."
+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ğı yaratılmalı ya da 'Kareler' özelliğine atanmalı ki "
-"AnimatedSprite kareleri gösterebilsin."
+"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 grup örneklenmiş sahneler için) yalnızca bir görünür "
-"CanvasModulate'e izin verilir. İlk yaratılan çalışırken diğerleri ihmal "
+"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
@@ -490,8 +490,9 @@ msgid ""
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
"CollisionPolygon2D yalnızca CollisionObject2D'den türeyen düğümlere bir "
-"şekil temin etmeye hizmet eder. Lütfen onu yalnızca Area2D, StaticBody2D, "
-"RigidBody2D, KinematicBody2D vs.'ye bir şekil vermek için kullanın."
+"ş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."
@@ -504,88 +505,106 @@ msgid ""
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
"CollisionShape2D yalnızca CollisionObject2D'den türeyen düğümlere bir şekil "
-"temin etmeye hizmet eder. Lütfen onu yalnızca Area2D, StaticBody2D, "
-"RigidBody2D, KinematicBody2D vs.'ye bir şekil vermek için kullanın."
+"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ş görebilmesi için ona bir şekil temin edilmesi "
-"gerekmektedir. Lütfen onun için bir şekil kaynağı yaratın!"
+"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 ""
@@ -593,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 ""
@@ -606,45 +630,60 @@ 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/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
@@ -657,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
@@ -681,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
@@ -704,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."
@@ -767,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"
@@ -808,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
@@ -845,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 ""
@@ -853,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"
@@ -880,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"
@@ -977,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"
@@ -1010,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
@@ -1055,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):"
@@ -1099,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):"
@@ -1107,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"
@@ -1207,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
@@ -1228,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"
@@ -1236,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.."
@@ -1252,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"
@@ -1288,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
@@ -1316,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"
@@ -1328,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!"
@@ -1336,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"
@@ -1357,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
@@ -1366,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
@@ -1407,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.."
@@ -1456,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"
@@ -1465,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:"
@@ -1484,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"
@@ -1515,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 ""
@@ -1543,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"
@@ -1573,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
@@ -1604,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."
@@ -1628,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"
@@ -1665,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:"
@@ -1676,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"
@@ -1724,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"
@@ -1760,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"
@@ -1813,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:"
@@ -1841,27 +1896,27 @@ 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/plugins/canvas_item_editor_plugin.cpp
@@ -1871,15 +1926,15 @@ 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"
@@ -1887,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"
@@ -1957,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"
@@ -1982,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 ""
@@ -1989,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 ""
@@ -1996,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!"
@@ -2027,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?"
@@ -2047,166 +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/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
@@ -2214,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
@@ -2252,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"
@@ -2260,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"
@@ -2268,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
@@ -2302,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 ""
@@ -2335,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 ""
@@ -2367,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 ""
@@ -2379,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"
@@ -2386,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"
@@ -2418,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."
@@ -2462,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:"
@@ -2534,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."
@@ -2582,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"
@@ -2594,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:"
@@ -2614,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"
@@ -2635,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"
@@ -2675,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.."
@@ -2691,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"
@@ -2707,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"
@@ -2723,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
@@ -2775,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
@@ -2789,677 +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
-#, fuzzy
msgid "Root Node Name:"
-msgstr "Düğüm adı:"
+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
@@ -3467,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
@@ -3775,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.."
@@ -3837,127 +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 ""
+msgstr "Yapış (Noktalara):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
-msgstr ""
+msgstr "Ekle %s"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "Ekliyor %s.."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr ""
+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 ""
+msgstr "%s sahne örnekleme sorunu"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
#: tools/editor/scene_tree_dock.cpp
msgid "OK :("
-msgstr ""
+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 ""
+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 ""
+msgstr "Bu işlem, seçilmiş tek bir düğüm gerektirir."
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change default type"
-msgstr "Dizinin türünü degistir"
+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
@@ -3966,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
@@ -3975,2551 +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/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 ""
+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 ""
+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 ""
+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 ""
+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
-#, fuzzy
msgid "Attach Script"
-msgstr "Betiği Çalıştır"
+msgstr "Betik İliştir"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear Script"
-msgstr "Betiği Çalıştır"
+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 "Attach a new or existing script for the selected node."
-msgstr ""
+msgstr "Seçili düğüm için yeni veya mevcut bir betik iliştir."
#: tools/editor/scene_tree_dock.cpp
msgid "Clear a 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 ""
+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!"
@@ -6529,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!"
@@ -6562,23 +6703,21 @@ 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
-#, fuzzy
msgid "Error loading script from %s"
-msgstr "Yazı tipi yüklerken hata."
+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"
@@ -6587,26 +6726,24 @@ msgid "Invalid extension"
msgstr "Geçersiz uzantı"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Create new script"
-msgstr "Düğüm Betiği Oluştur"
+msgstr "Yeni Betik Oluştur"
#: tools/editor/script_create_dialog.cpp
msgid "Load existing script"
-msgstr ""
+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
-#, fuzzy
msgid "Attach Node Script"
-msgstr "Düğüm Betiği Oluştur"
+msgstr "Düğüm Betiği İliştir"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6618,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:"
@@ -6626,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"
@@ -6654,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"
@@ -6686,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:"
@@ -6698,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"
@@ -6714,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"
@@ -6742,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"
@@ -6754,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"
@@ -6762,15 +6899,45 @@ 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://', "
diff --git a/tools/translations/ur_PK.po b/tools/translations/ur_PK.po
index 112d792821..0eed08b52a 100644
--- a/tools/translations/ur_PK.po
+++ b/tools/translations/ur_PK.po
@@ -554,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 "
@@ -1765,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 ""
@@ -2742,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 ""
@@ -4781,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 ""
@@ -5557,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 ""
@@ -6016,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 ""
@@ -6197,10 +6241,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6425,12 +6465,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6728,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 c64154ea74..58f79fac56 100644
--- a/tools/translations/zh_CN.po
+++ b/tools/translations/zh_CN.po
@@ -6,7 +6,7 @@
# 孤月蓝风 <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.
@@ -15,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2016-10-28 04:51+0000\n"
-"Last-Translator: ageazrael <ageazrael@gmail.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"
@@ -24,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
@@ -172,12 +172,10 @@ msgid "Add Node"
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键放置一个Getter节点,按住Shift键放置一个通用签名。"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr "按住Ctrl键放置一个Getter节点。按住Shift键放置一个通用签名。"
@@ -202,7 +200,6 @@ msgid "Add Preload Node"
msgstr "添加Preload节点"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Node(s) From Tree"
msgstr "从场景导入节点"
@@ -298,9 +295,8 @@ msgid "Edit Variable:"
msgstr "编辑变量:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change"
-msgstr "更改类型"
+msgstr "更改"
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
@@ -340,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."
@@ -385,11 +379,11 @@ msgstr "_step()的返回值无效,必须是整形(seq out)或字符串(e
#: 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/uwp/export/export.cpp
msgid ""
@@ -397,9 +391,8 @@ msgid ""
msgstr "无法读取证书文件。路径和密码是否都正确?"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Error creating the signature object."
-msgstr "写入项目PCK文件出错!"
+msgstr "创建包(PCK)签名对象出错。"
#: platform/uwp/export/export.cpp
msgid "Error creating the package signature."
@@ -422,19 +415,16 @@ msgid "Custom release package not found."
msgstr ""
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid unique name."
msgstr "名称非法:"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid product GUID."
-msgstr "字体大小非法。"
+msgstr "产品GUID非法。"
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid publisher GUID."
-msgstr "父路径非法"
+msgstr "发布GUID非法"
#: platform/uwp/export/export.cpp
msgid "Invalid background color."
@@ -589,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 "
@@ -635,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 ""
@@ -867,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 "
@@ -903,7 +887,6 @@ msgid "Disabled"
msgstr "已禁用"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "All Selection"
msgstr "所有选中项"
@@ -956,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 "轨道修改为值模式"
@@ -1101,7 +1082,6 @@ msgid "Change Anim Loop"
msgstr "修改动画循环"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Anim Create Typed Value Key"
msgstr "创建输入值的动画关键帧"
@@ -1170,7 +1150,6 @@ msgid "Anim. Optimizer"
msgstr "优化动画"
#: tools/editor/animation_editor.cpp
-#, fuzzy
msgid "Max. Linear Error:"
msgstr "最大线性错误:"
@@ -1451,7 +1430,6 @@ msgid "Make Function"
msgstr "创建方法"
#: tools/editor/connections_dialog.cpp
-#, fuzzy
msgid "Deferred"
msgstr "延时"
@@ -1472,7 +1450,6 @@ msgid "Connecting Signal:"
msgstr "连接事件:"
#: tools/editor/connections_dialog.cpp
-#, fuzzy
msgid "Create Subscription"
msgstr "创建订阅"
@@ -1821,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 "方法描述:"
@@ -1985,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 "使子资源唯一化"
@@ -2263,7 +2243,6 @@ msgid "Quit to Project List"
msgstr "退出到项目列表"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Distraction Free Mode"
msgstr "无干扰模式"
@@ -2284,7 +2263,6 @@ msgid "Import"
msgstr "导入"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Miscellaneous project or scene-wide tools."
msgstr "其他工程或全场景工具"
@@ -2436,7 +2414,6 @@ msgid "Editor Layout"
msgstr "编辑器布局"
#: tools/editor/editor_node.cpp
-#, fuzzy
msgid "Toggle Fullscreen"
msgstr "全屏模式"
@@ -2609,12 +2586,10 @@ msgid "Time:"
msgstr "时间:"
#: tools/editor/editor_profiler.cpp
-#, fuzzy
msgid "Inclusive"
msgstr "包含"
#: tools/editor/editor_profiler.cpp
-#, fuzzy
msgid "Self"
msgstr "自身"
@@ -2820,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 "目标路径:"
@@ -2845,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."
@@ -2951,7 +2926,6 @@ msgid "Audio Sample"
msgstr "音效"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "New Clip"
msgstr "新片段"
@@ -2972,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 "终点"
@@ -3015,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 "后导入脚本被损坏或不合法"
@@ -3049,7 +3015,6 @@ msgid "Target Texture Folder:"
msgstr "目标贴图目录:"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Post-Process Script:"
msgstr "后处理脚本:"
@@ -3062,7 +3027,6 @@ msgid "Auto"
msgstr "自动"
#: tools/editor/io_plugins/editor_scene_import_plugin.cpp
-#, fuzzy
msgid "Root Node Name:"
msgstr "节点名称:"
@@ -3096,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 "后处理脚本运行发生错误"
@@ -3363,7 +3324,6 @@ msgid "Translation"
msgstr "语言"
#: tools/editor/multi_node_edit.cpp
-#, fuzzy
msgid "MultiNode Set"
msgstr "多节点组"
@@ -3475,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 "节点全局缩放动画回放"
@@ -3806,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"
@@ -3827,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
@@ -3911,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"
@@ -3977,9 +3932,8 @@ msgid "Snap (Pixels):"
msgstr "吸附(像素):"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Add %s"
-msgstr "添加所有"
+msgstr "添加 %s"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
@@ -4011,7 +3965,6 @@ msgid "This operation requires a single selected node."
msgstr "此操作只能应用于单个选中节点。"
#: tools/editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change default type"
msgstr "修改默认值"
@@ -4695,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
@@ -4812,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"
@@ -4890,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"
@@ -4964,11 +4902,11 @@ 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"
@@ -5167,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 "显示原点"
@@ -5468,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"
@@ -5669,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 "包含"
@@ -5986,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 "您确定要执行多个项目吗?"
@@ -6003,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"
@@ -6022,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"
@@ -6036,7 +6031,7 @@ msgstr "退出"
#: tools/editor/project_settings.cpp
msgid "Key "
-msgstr "键"
+msgstr "键 "
#: tools/editor/project_settings.cpp
msgid "Joy Button"
@@ -6052,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!"
@@ -6131,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 "保存设置出错。"
@@ -6251,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 "缓入缓出"
@@ -6291,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!"
@@ -6316,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:"
@@ -6398,7 +6378,6 @@ msgid "Scene Run Settings"
msgstr "场景运行设置"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "No parent to instance the scenes at."
msgstr "没有选中节点来添加实例。"
@@ -6507,14 +6486,12 @@ msgid "Change Type"
msgstr "更改类型"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach Script"
msgstr "添加脚本"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear Script"
-msgstr "创建脚本"
+msgstr "清除脚本"
#: tools/editor/scene_tree_dock.cpp
msgid "Merge From Scene"
@@ -6525,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"
@@ -6540,20 +6516,12 @@ msgid ""
msgstr "实例化场景文件为一个节点,如果没有根节点则创建一个继承自该文件的场景。"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Attach a new or existing script for the selected node."
-msgstr "将选中的场景实例为选中节点的子节点。"
+msgstr "为选中节点创建或设置脚本"
#: tools/editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Clear a 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 "无法显示此节点,请先取消隐藏其父节点。"
+msgstr "清除选中节点的脚本"
#: tools/editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
@@ -6648,9 +6616,8 @@ msgid "Could not create script in filesystem."
msgstr "无法创建脚本。"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Error loading script from %s"
-msgstr "从%s加载场景出错!"
+msgstr "从%s加载脚本出错!"
#: tools/editor/script_create_dialog.cpp
msgid "Path is empty"
@@ -6669,14 +6636,12 @@ msgid "Invalid extension"
msgstr "扩展名非法"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Create new script"
-msgstr "创建脚本"
+msgstr "创建新脚本"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Load existing script"
-msgstr "下一个脚本"
+msgstr "加载现有脚本"
#: tools/editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -6687,9 +6652,8 @@ msgid "Built-In Script"
msgstr "内置脚本"
#: tools/editor/script_create_dialog.cpp
-#, fuzzy
msgid "Attach Node Script"
-msgstr "创建脚本"
+msgstr "设置节点的脚本"
#: tools/editor/script_editor_debugger.cpp
msgid "Bytes:"
@@ -6753,7 +6717,7 @@ msgstr "即时场景树:"
#: tools/editor/script_editor_debugger.cpp
msgid "Remote Object Properties: "
-msgstr "远程对象属性。"
+msgstr "远程对象属性: "
#: tools/editor/script_editor_debugger.cpp
msgid "Profiler"
@@ -6836,7 +6800,6 @@ msgid "Change Sphere Shape Radius"
msgstr "更改球体半径"
#: tools/editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Box Shape Extents"
msgstr "改变方框大小"
@@ -6849,15 +6812,38 @@ 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://'"
diff --git a/tools/translations/zh_HK.po b/tools/translations/zh_HK.po
index ae12af5d34..60f2b51464 100644
--- a/tools/translations/zh_HK.po
+++ b/tools/translations/zh_HK.po
@@ -562,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 "
@@ -1780,6 +1776,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2760,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 ""
@@ -4799,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 ""
@@ -5574,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 "包括"
@@ -6033,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 ""
@@ -6214,10 +6263,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6444,12 +6489,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6750,6 +6789,10 @@ msgstr ""
msgid "Change Notifier Extents"
msgstr ""
+#: tools/editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
#~ msgid "File exists"
#~ msgstr "檔案已存在"
diff --git a/tools/translations/zh_TW.po b/tools/translations/zh_TW.po
index 8ff2f3e4d2..efad7ee167 100644
--- a/tools/translations/zh_TW.po
+++ b/tools/translations/zh_TW.po
@@ -564,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 "
@@ -1771,6 +1767,10 @@ msgid "Constants:"
msgstr ""
#: tools/editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: tools/editor/editor_help.cpp
msgid "Method Description:"
msgstr ""
@@ -2747,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 ""
@@ -4784,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 ""
@@ -5558,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 ""
@@ -6017,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 ""
@@ -6197,10 +6240,6 @@ msgid "Properties:"
msgstr ""
#: tools/editor/property_editor.cpp
-msgid "Global"
-msgstr ""
-
-#: tools/editor/property_editor.cpp
msgid "Sections:"
msgstr ""
@@ -6423,12 +6462,6 @@ msgid "Clear a 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_editor.cpp
msgid "Toggle Spatial Visible"
msgstr ""
@@ -6728,6 +6761,11 @@ msgstr ""
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://'"